From 88ebeaa9b5641fb2be73782137b40ff31725bce3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 19:12:32 +0000 Subject: [PATCH] chore: release main --- .release-please-manifest.json | 2 +- CHANGELOG.md | 472 ++++++++++++++++++++++++++++++++++ cli/CHANGELOG.md | 70 +++++ cli/package.json | 4 +- compiler/CHANGELOG.md | 432 +++++++++++++++++++++++++++++++ compiler/dune-project | 2 +- compiler/esy.json | 2 +- compiler/package.json | 2 +- package-lock.json | 4 +- package.json | 2 +- stdlib/CHANGELOG.md | 294 +++++++++++++++++++++ stdlib/package.json | 2 +- 12 files changed, 1278 insertions(+), 10 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 7d53572674..a710b3d1fc 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{".":"0.5.13","cli":"0.5.13","compiler":"0.5.13","stdlib":"0.5.13"} \ No newline at end of file +{".":"0.6.0","cli":"0.6.0","compiler":"0.6.0","stdlib":"0.6.0"} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 17b167b800..206b162828 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,477 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/grain-v0.5.13...grain-v0.6.0) (2024-02-24) + + +### ⚠ BREAKING CHANGES + +* **compiler:** Update include syntax ([#2043](https://github.com/alex-snezhko/grain/issues/2043)) +* **stdlib:** Remove `sin`, `cos`, `tan`, `gamma`, `factorial` from `Number` module ([#2046](https://github.com/alex-snezhko/grain/issues/2046)) +* **compiler:** Update use syntax ([#2041](https://github.com/alex-snezhko/grain/issues/2041)) +* **grainfmt:** Implement new formatter ([#1976](https://github.com/alex-snezhko/grain/issues/1976)) +* **stdlib:** Use default arguments in more of stdlib ([#1772](https://github.com/alex-snezhko/grain/issues/1772)) +* **stdlib:** Add `print` suffix default argument ([#1768](https://github.com/alex-snezhko/grain/issues/1768)) +* **graindoc:** Allow `@since` and `@returns` once per export ([#1946](https://github.com/alex-snezhko/grain/issues/1946)) +* **graindoc:** Improve docgen for labeled & default arguments ([#1776](https://github.com/alex-snezhko/grain/issues/1776)) +* **stdlib:** Replace `Float64` arithmatic/comparison functions with operators ([#1957](https://github.com/alex-snezhko/grain/issues/1957)) +* **stdlib:** Replace `Float32` arithmatic/comparison functions with operators ([#1954](https://github.com/alex-snezhko/grain/issues/1954)) +* **stdlib:** Replace `Int64` arithmatic functions with operators ([#1935](https://github.com/alex-snezhko/grain/issues/1935)) +* **stdlib:** Replace `Int32` arithmatic functions with operators ([#1936](https://github.com/alex-snezhko/grain/issues/1936)) +* **stdlib:** Switch to using records for `getInternalStats` ([#1898](https://github.com/alex-snezhko/grain/issues/1898)) +* **cli:** Ensure `--use-start-section` can only be used with compile command ([#1871](https://github.com/alex-snezhko/grain/issues/1871)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) +* **compiler:** Require `module` prefix on `use`/`provide` for modules ([#1868](https://github.com/alex-snezhko/grain/issues/1868)) +* **stdlib:** Reorder parameters to `List.insert` ([#1857](https://github.com/alex-snezhko/grain/issues/1857)) +* **stdlib:** Handle printing of reference cycles ([#1844](https://github.com/alex-snezhko/grain/issues/1844)) +* **compiler:** Change `->` to `=>` in type signatures ([#1855](https://github.com/alex-snezhko/grain/issues/1855)) +* **compiler:** Make types nonrecursive by default ([#1826](https://github.com/alex-snezhko/grain/issues/1826)) +* **compiler:** Remove static runtime pointers ([#1806](https://github.com/alex-snezhko/grain/issues/1806)) +* **compiler:** Remove memory import from _genv ([#1830](https://github.com/alex-snezhko/grain/issues/1830)) +* **compiler:** Changed comma to `and` in mutually rec types +* **compiler:** Changed comma to `and` in recursive types and bindings ([#1827](https://github.com/alex-snezhko/grain/issues/1827)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) +* **stdlib:** Replace `Result`/`Option` `and`/`or` functions with operators ([#1821](https://github.com/alex-snezhko/grain/issues/1821)) +* **compiler:** Reduce size of runtime heap ([#1807](https://github.com/alex-snezhko/grain/issues/1807)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) +* **stdlib:** Ensure `Array.fillRange` works with negative indexing & throws IndexOutOfBound ([#1761](https://github.com/alex-snezhko/grain/issues/1761)) +* **compiler:** Disallow enum variants with parens but no types ([#1809](https://github.com/alex-snezhko/grain/issues/1809)) +* **stdlib:** Remove extra space when converting Bytes to String ([#1800](https://github.com/alex-snezhko/grain/issues/1800)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) +* **stdlib:** Use Array length as default end in `Array.slice` function ([#1762](https://github.com/alex-snezhko/grain/issues/1762)) +* **compiler:** Remove recursive_types and principal config ([#1751](https://github.com/alex-snezhko/grain/issues/1751)) +* **stdlib:** Use String length as default end in `String.slice` function ([#1748](https://github.com/alex-snezhko/grain/issues/1748)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) +* **stdlib:** Group mutable/immutable data structures ([#1652](https://github.com/alex-snezhko/grain/issues/1652)) +* **compiler:** Optimize type metadata loading ([#1741](https://github.com/alex-snezhko/grain/issues/1741)) +* **compiler:** Labeled and default arguments ([#1623](https://github.com/alex-snezhko/grain/issues/1623)) +* **compiler:** Remove built-in FileDescriptor type ([#1747](https://github.com/alex-snezhko/grain/issues/1747)) +* **compiler:** Enable tail calls by default ([#1589](https://github.com/alex-snezhko/grain/issues/1589)) +* **stdlib:** Replace bigint/number arithmetic functions with operators ([#1742](https://github.com/alex-snezhko/grain/issues/1742)) +* **stdlib:** Update Operator `uint` operator Names ([#1738](https://github.com/alex-snezhko/grain/issues/1738)) +* **stdlib:** Provide empty byte array from Bytes.make ([#1729](https://github.com/alex-snezhko/grain/issues/1729)) +* **stdlib:** Add optimization for `Number.pow(Rational, Int)` ([#1716](https://github.com/alex-snezhko/grain/issues/1716)) +* **compiler:** Custom box printing ([#1713](https://github.com/alex-snezhko/grain/issues/1713)) +* **stdlib:** Update Buffer/Bytes to use new integer types ([#1704](https://github.com/alex-snezhko/grain/issues/1704)) +* **compiler:** Require floats always have a digit on left & right of dot ([#1703](https://github.com/alex-snezhko/grain/issues/1703)) +* **compiler:** Remove 32-bit numbers from `Number` type ([#1683](https://github.com/alex-snezhko/grain/issues/1683)) +* **compiler:** Short integer values ([#1669](https://github.com/alex-snezhko/grain/issues/1669)) +* **compiler:** Supply primitive types via the compiler ([#1667](https://github.com/alex-snezhko/grain/issues/1667)) +* **compiler:** Allocate closures only when necessary ([#1660](https://github.com/alex-snezhko/grain/issues/1660)) +* **stdlib:** Add `**` (pow) operator to Pervasives module ([#1690](https://github.com/alex-snezhko/grain/issues/1690)) +* **compiler:** Remove Exclusive/Inclusive Ranges, provide as record via compiler ([#1616](https://github.com/alex-snezhko/grain/issues/1616)) +* **stdlib:** Make queue and stack mutable & provide Immutable submodules ([#1479](https://github.com/alex-snezhko/grain/issues/1479)) +* **compiler:** Disallow multiple `provide`s of the same value ([#1689](https://github.com/alex-snezhko/grain/issues/1689)) +* **graindoc:** Only use original doc blocks when re-providing ([#1687](https://github.com/alex-snezhko/grain/issues/1687)) +* **graindoc:** Support docblocks on submodules ([#1684](https://github.com/alex-snezhko/grain/issues/1684)) +* **graindoc:** Remove section attribute ([#1681](https://github.com/alex-snezhko/grain/issues/1681)) +* **compiler:** Explicit abstract types ([#1680](https://github.com/alex-snezhko/grain/issues/1680)) +* **compiler:** Add Uint32 and Uint64 types ([#1531](https://github.com/alex-snezhko/grain/issues/1531)) +* **stdlib:** Remove `cons` and `empty` from Pervasives ([#1657](https://github.com/alex-snezhko/grain/issues/1657)) +* **stdlib:** Sys/File reading and writing operate on Bytes ([#1655](https://github.com/alex-snezhko/grain/issues/1655)) +* **compiler:** Make List a language-supplied type ([#1648](https://github.com/alex-snezhko/grain/issues/1648)) +* **stdlib:** Use correct casing for BigInt module name +* **graindoc:** Replace module attribute with docblock on module header ([#1647](https://github.com/alex-snezhko/grain/issues/1647)) +* **compiler:** Apply correct rules for parsing Unicode whitespace ([#1554](https://github.com/alex-snezhko/grain/issues/1554)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) +* **compiler:** Change Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) +* **compiler:** Inline record constructors ([#1586](https://github.com/alex-snezhko/grain/issues/1586)) +* **stdlib:** Replace Number.nan & Number.infinity constants with keywords ([#1618](https://github.com/alex-snezhko/grain/issues/1618)) +* **compiler:** Remove support of single-argument tuples ([#1608](https://github.com/alex-snezhko/grain/issues/1608)) +* **compiler:** Rename `_grainEnv` to `_genv` ([#1607](https://github.com/alex-snezhko/grain/issues/1607)) +* **compiler:** Add `yield` and `macro` reserved keywords ([#1471](https://github.com/alex-snezhko/grain/issues/1471)) +* **compiler:** Implement `Infinity` and `NaN` syntax ([#1472](https://github.com/alex-snezhko/grain/issues/1472)) +* **stdlib:** `List.rotate` wraparound for count > length ([#1558](https://github.com/alex-snezhko/grain/issues/1558)) +* **compiler:** Early return ([#1464](https://github.com/alex-snezhko/grain/issues/1464)) +* **compiler:** Include Option and Result as language-supplied types ([#1591](https://github.com/alex-snezhko/grain/issues/1591)) +* **stdlib:** Change array rotation direction ([#1552](https://github.com/alex-snezhko/grain/issues/1552)) +* **stdlib:** Support zipping arrays of different sizes ([#1402](https://github.com/alex-snezhko/grain/issues/1402)) +* Remove --parser-debug-level ([#1311](https://github.com/alex-snezhko/grain/issues/1311)) (#1447) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/alex-snezhko/grain/issues/1301)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/alex-snezhko/grain/issues/1300)) +* **stdlib:** Ensure Void return for forEach functions in List module ([#1307](https://github.com/alex-snezhko/grain/issues/1307)) +* **stdlib:** Provide correct types for BigInt operations ([#1297](https://github.com/alex-snezhko/grain/issues/1297)) +* **compiler:** Remove `--lsp` flag from grainc executable +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/alex-snezhko/grain/issues/1131)) +* **cli:** Simplify version output ([#1291](https://github.com/alex-snezhko/grain/issues/1291)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/alex-snezhko/grain/issues/1285)) +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/alex-snezhko/grain/issues/1275)) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged ([#1268](https://github.com/alex-snezhko/grain/issues/1268)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/alex-snezhko/grain/issues/1270)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/alex-snezhko/grain/issues/1167)) +* Switch from yarn to npm ([#1226](https://github.com/alex-snezhko/grain/issues/1226)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) +* **stdlib:** Add explicit void return type on Set.forEach ([#1225](https://github.com/alex-snezhko/grain/issues/1225)) +* **stdlib:** Add explicit void return type on Map.forEach ([#1220](https://github.com/alex-snezhko/grain/issues/1220)) +* **compiler:** Selectively include functions in the global function table ([#1183](https://github.com/alex-snezhko/grain/issues/1183)) +* **compiler:** Add interface for compile module to hide resume +* **compiler:** Disallow end-of-line before `=>` ([#1178](https://github.com/alex-snezhko/grain/issues/1178)) +* **stdlib:** Add type aliases to regex lib ([#1036](https://github.com/alex-snezhko/grain/issues/1036)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/alex-snezhko/grain/issues/1103)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/alex-snezhko/grain/issues/1136)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) + +### Features + +* Add `exception` opentype implementation to `Oprint` ([#1896](https://github.com/alex-snezhko/grain/issues/1896)) ([51d53f7](https://github.com/alex-snezhko/grain/commit/51d53f7e1f3f3bdb6508a8ad925887f9854cd84f)) +* Add Hex Exponent Decimals ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* Arm64 docker builds ([#1368](https://github.com/alex-snezhko/grain/issues/1368)) ([5837df6](https://github.com/alex-snezhko/grain/commit/5837df6f39a35416e23f162b42f2f0a9088e1807)) +* **ci:** Add builds for preview binaries ([#1777](https://github.com/alex-snezhko/grain/issues/1777)) ([d512c5a](https://github.com/alex-snezhko/grain/commit/d512c5ae7c314d4dd34394a81c8746c0641aff38)) +* **ci:** Link all versions during release ([#1290](https://github.com/alex-snezhko/grain/issues/1290)) ([ceb8dac](https://github.com/alex-snezhko/grain/commit/ceb8dac2e3d3bf7eb92f91daf29173a779a4aa7e)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) ([fb8fbf2](https://github.com/alex-snezhko/grain/commit/fb8fbf2b8ca2a024e3983d25b52443337ec9746a)) +* **cli:** Improve error handling around `grain run` ([#1913](https://github.com/alex-snezhko/grain/issues/1913)) ([fc9b434](https://github.com/alex-snezhko/grain/commit/fc9b434995a5521b6346534afe58cd38fdd7c59e)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) ([0680826](https://github.com/alex-snezhko/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add `[@unsafe](https://github.com/unsafe)` attribute for low-level code ([#1074](https://github.com/alex-snezhko/grain/issues/1074)) ([212faca](https://github.com/alex-snezhko/grain/commit/212faca9a8363002cfc0cb4e3ea293180cbe5b1c)) +* **compiler:** Add `magic` primitive ([#1766](https://github.com/alex-snezhko/grain/issues/1766)) ([a28ebb4](https://github.com/alex-snezhko/grain/commit/a28ebb4e7404b3badb01dad40dc74c2919a4f79b)) +* **compiler:** Add `yield` and `macro` reserved keywords ([#1471](https://github.com/alex-snezhko/grain/issues/1471)) ([f0e29c5](https://github.com/alex-snezhko/grain/commit/f0e29c5e6d2fc3a4deb884816014fa4d90ee8f1b)) +* **compiler:** Add ability to match on low level wasm types ([#1588](https://github.com/alex-snezhko/grain/issues/1588)) ([0d30888](https://github.com/alex-snezhko/grain/commit/0d3088846bcf865d8c3aa4298db9148b071664fc)) +* **compiler:** Add hex float syntax ([#1743](https://github.com/alex-snezhko/grain/issues/1743)) ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **compiler:** Add stack allocation information to small ints ([#1780](https://github.com/alex-snezhko/grain/issues/1780)) ([6f1a1a9](https://github.com/alex-snezhko/grain/commit/6f1a1a9adf2b7a9e732f7503a0955938c6e65543)) +* **compiler:** Add Uint32 and Uint64 types ([#1531](https://github.com/alex-snezhko/grain/issues/1531)) ([42ffdc4](https://github.com/alex-snezhko/grain/commit/42ffdc408096901696abb6e3fa862b65d3d7e2a2)) +* **compiler:** Add warning for calls to IntXX.fromNumber and FloatXX.fromNumber with literal integers/floats ([#1218](https://github.com/alex-snezhko/grain/issues/1218)) ([2fb86e5](https://github.com/alex-snezhko/grain/commit/2fb86e538a9d38241d6c149cec1a290817795b4b)) +* **compiler:** Allocate closures only when necessary ([#1660](https://github.com/alex-snezhko/grain/issues/1660)) ([c40df12](https://github.com/alex-snezhko/grain/commit/c40df12b95f6f3a74bf89d637d60c64714b1d31e)) +* **compiler:** Allow a newline character after 'as' when aliasing ([#1641](https://github.com/alex-snezhko/grain/issues/1641)) ([2719034](https://github.com/alex-snezhko/grain/commit/27190343160fe99957a9ca7169c48c0d673c81ef)) +* **compiler:** Allow arrays to do binary operation assignment ([#1928](https://github.com/alex-snezhko/grain/issues/1928)) ([8a335ae](https://github.com/alex-snezhko/grain/commit/8a335ae1e3d9874131f1c6402e3bc4de6a9cfdb3)) +* **compiler:** Allow compilation of empty programs ([#1336](https://github.com/alex-snezhko/grain/issues/1336)) ([32df14b](https://github.com/alex-snezhko/grain/commit/32df14b33325c39fd98c452fc2687b788ec35264)) +* **compiler:** Allow custom infix operators ([#1419](https://github.com/alex-snezhko/grain/issues/1419)) ([cc9b8b5](https://github.com/alex-snezhko/grain/commit/cc9b8b5f251268c59ff6739436bd3b8881e8fd56)) +* **compiler:** Allow function re-exports to use regular call instruction ([#1176](https://github.com/alex-snezhko/grain/issues/1176)) ([afce3aa](https://github.com/alex-snezhko/grain/commit/afce3aaa5382cde54b1e8fd9be3d2ee86daedbbb)) +* **compiler:** Allow importing a memory ([#1661](https://github.com/alex-snezhko/grain/issues/1661)) ([3140ba2](https://github.com/alex-snezhko/grain/commit/3140ba249f47de8e66af236ddc681f4e9f481e1b)) +* **compiler:** Allow lists and arrays on the left side of access expressions ([#1557](https://github.com/alex-snezhko/grain/issues/1557)) ([8c00750](https://github.com/alex-snezhko/grain/commit/8c00750c099587f8131ea30e346841137c52bd83)) +* **compiler:** Allow newline in or-patterns ([#1323](https://github.com/alex-snezhko/grain/issues/1323)) ([8fe8247](https://github.com/alex-snezhko/grain/commit/8fe8247ec6c08e04575b42281716eb34c46af97f)) +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/alex-snezhko/grain/issues/1167)) ([6f34de2](https://github.com/alex-snezhko/grain/commit/6f34de214b28358ea1df553685fa3a19336ddba9)) +* **compiler:** Bytes literals ([#1662](https://github.com/alex-snezhko/grain/issues/1662)) ([3d8e4c5](https://github.com/alex-snezhko/grain/commit/3d8e4c5ee074e393eebeed82d2c4bd0590a0ad31)) +* **compiler:** Cache parsetrees during compilation process ([#1548](https://github.com/alex-snezhko/grain/issues/1548)) ([7b53aab](https://github.com/alex-snezhko/grain/commit/7b53aaba74c6eb809cddcde5374f63eaa4a00d36)) +* **compiler:** Call known functions across module boundaries ([#1175](https://github.com/alex-snezhko/grain/issues/1175)) ([b2d7440](https://github.com/alex-snezhko/grain/commit/b2d744034ec7e0601554531c910e9d0f5451d464)) +* **compiler:** Change `->` to `=>` in type signatures ([#1855](https://github.com/alex-snezhko/grain/issues/1855)) ([b3d68a4](https://github.com/alex-snezhko/grain/commit/b3d68a4f2e99222a69d7066164892077f83ebf8c)) +* **compiler:** Change Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) ([58c9a51](https://github.com/alex-snezhko/grain/commit/58c9a5145a6c1c53e280657e4e41f79f2662eb8a)) +* **compiler:** Changed comma to `and` in mutually rec types ([923625d](https://github.com/alex-snezhko/grain/commit/923625dfaf276be894546e67db66a17d00df9f14)) +* **compiler:** Changed comma to `and` in recursive types and bindings ([#1827](https://github.com/alex-snezhko/grain/issues/1827)) ([923625d](https://github.com/alex-snezhko/grain/commit/923625dfaf276be894546e67db66a17d00df9f14)) +* **compiler:** Cleaner wasm output for low-level wasm types ([#1158](https://github.com/alex-snezhko/grain/issues/1158)) ([88060dd](https://github.com/alex-snezhko/grain/commit/88060ddb8119e2998d91f4d6770a1cfd101936cf)) +* **compiler:** Consolidate exe & js modes ([fc61950](https://github.com/alex-snezhko/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Convert `runtime/dataStructures.gr` to primitives ([#1145](https://github.com/alex-snezhko/grain/issues/1145)) ([2d43b28](https://github.com/alex-snezhko/grain/commit/2d43b286141df75f6b92300e48d2bc4804014872)) +* **compiler:** Convert Sys libraries to [@unsafe](https://github.com/unsafe) ([#1272](https://github.com/alex-snezhko/grain/issues/1272)) ([fcdfc2a](https://github.com/alex-snezhko/grain/commit/fcdfc2a815be889d5f0424a04dd5b2373dbd983b)) +* **compiler:** Custom box printing ([#1713](https://github.com/alex-snezhko/grain/issues/1713)) ([3c86e45](https://github.com/alex-snezhko/grain/commit/3c86e459235ad9bf0abbefb575021736ad45f310)) +* **compiler:** Don't close over global values ([#1134](https://github.com/alex-snezhko/grain/issues/1134)) ([e8caec6](https://github.com/alex-snezhko/grain/commit/e8caec6c2a5892e955c8827b18d8d436bebe6073)) +* **compiler:** Early return ([#1464](https://github.com/alex-snezhko/grain/issues/1464)) ([1bffc82](https://github.com/alex-snezhko/grain/commit/1bffc821002e10c6fcbfb0fcf65750cda5c1e29f)) +* **compiler:** Enable tail calls by default ([#1589](https://github.com/alex-snezhko/grain/issues/1589)) ([f6e5b00](https://github.com/alex-snezhko/grain/commit/f6e5b002475f62e04e9f1feb452ff8e9262dacbb)) +* **compiler:** Explicit abstract types ([#1680](https://github.com/alex-snezhko/grain/issues/1680)) ([58cd224](https://github.com/alex-snezhko/grain/commit/58cd2247441f16cfc95b415ad272da7a37b82fb5)) +* **compiler:** Implement `Infinity` and `NaN` syntax ([#1472](https://github.com/alex-snezhko/grain/issues/1472)) ([74a196d](https://github.com/alex-snezhko/grain/commit/74a196d947dea8a31e3f80154f952903f1f8bb89)) +* **compiler:** Include Option and Result as language-supplied types ([#1591](https://github.com/alex-snezhko/grain/issues/1591)) ([bd5403f](https://github.com/alex-snezhko/grain/commit/bd5403f94f30366adc7d3307adc3c6c4fa5e1803)) +* **compiler:** Inline record constructors ([#1586](https://github.com/alex-snezhko/grain/issues/1586)) ([43082f5](https://github.com/alex-snezhko/grain/commit/43082f52692d90b1419b6b72ebe66406a0a01d99)) +* **compiler:** Labeled and default arguments ([#1623](https://github.com/alex-snezhko/grain/issues/1623)) ([28a38ac](https://github.com/alex-snezhko/grain/commit/28a38ac149d396cd034b6c53b0aa3eb478ed29ed)) +* **compiler:** Lower stack usage ([#1542](https://github.com/alex-snezhko/grain/issues/1542)) ([ef43141](https://github.com/alex-snezhko/grain/commit/ef431412c310b4adffa4b5786581a6b18942a32e)) +* **compiler:** Make List a language-supplied type ([#1648](https://github.com/alex-snezhko/grain/issues/1648)) ([2ee1328](https://github.com/alex-snezhko/grain/commit/2ee13282427718d8849a334d085a3f833037127b)) +* **compiler:** Make types nonrecursive by default ([#1826](https://github.com/alex-snezhko/grain/issues/1826)) ([46b8a5a](https://github.com/alex-snezhko/grain/commit/46b8a5aaa384eb52b34b82faea5b0a06adc22568)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) ([752da69](https://github.com/alex-snezhko/grain/commit/752da69057b2b06a1415710d6da93fbb948e8185)) +* **compiler:** Name globals in wasm output ([#1184](https://github.com/alex-snezhko/grain/issues/1184)) ([51170e7](https://github.com/alex-snezhko/grain/commit/51170e7c892680f9c730b7f93cf744ffd6b7c15a)) +* **compiler:** Perform partial match checking on `let` bindings ([#1486](https://github.com/alex-snezhko/grain/issues/1486)) ([3678eb5](https://github.com/alex-snezhko/grain/commit/3678eb5dc4c4ef199c1313f8f280ce3de458005a)) +* **compiler:** Propagate attribute locations to Anftree ([#1642](https://github.com/alex-snezhko/grain/issues/1642)) ([cce2821](https://github.com/alex-snezhko/grain/commit/cce2821e3b4bedbe8eef5a9814fed3eb24d7eccd)) +* **compiler:** Providing, including, reproviding exceptions ([#1849](https://github.com/alex-snezhko/grain/issues/1849)) ([687e747](https://github.com/alex-snezhko/grain/commit/687e747fb5d4c242d3bfceec6541ade58f6863a8)) +* **compiler:** Rational number type ([#1603](https://github.com/alex-snezhko/grain/issues/1603)) ([350f850](https://github.com/alex-snezhko/grain/commit/350f8503c3e6976275aaa8ee4d8c02554e7c238a)) +* **compiler:** Record spread syntax ([#1565](https://github.com/alex-snezhko/grain/issues/1565)) ([ab60e12](https://github.com/alex-snezhko/grain/commit/ab60e1269f008daf1af343364e706312060a9122)) +* **compiler:** Reduce closure sizes by utilizing `$self` argument when possible ([#1152](https://github.com/alex-snezhko/grain/issues/1152)) ([ba6a84c](https://github.com/alex-snezhko/grain/commit/ba6a84cea191cf3c7932287c29b198001d490146)) +* **compiler:** Reduce size of runtime heap ([#1807](https://github.com/alex-snezhko/grain/issues/1807)) ([246f894](https://github.com/alex-snezhko/grain/commit/246f894951be6ee4f2cb13df3d851583efc1498d)) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) ([8d465b7](https://github.com/alex-snezhko/grain/commit/8d465b7cd73d9549eeb89c7d52083d592ebd66fd)) +* **compiler:** Refactor exports ([#1244](https://github.com/alex-snezhko/grain/issues/1244)) ([4637667](https://github.com/alex-snezhko/grain/commit/4637667cd669c0988cd01c2957534c6a35a3146c)) +* **compiler:** Remove 32-bit numbers from `Number` type ([#1683](https://github.com/alex-snezhko/grain/issues/1683)) ([50bf8ee](https://github.com/alex-snezhko/grain/commit/50bf8ee39d017805091fe1ae7536621e956c03ce)) +* **compiler:** Remove Exclusive/Inclusive Ranges, provide as record via compiler ([#1616](https://github.com/alex-snezhko/grain/issues/1616)) ([49a399d](https://github.com/alex-snezhko/grain/commit/49a399dbcfc24957a3875ae094ad0a2c4b636a32)) +* **compiler:** Remove Pervasives' dependency on toString when types are elided ([#1664](https://github.com/alex-snezhko/grain/issues/1664)) ([f703476](https://github.com/alex-snezhko/grain/commit/f703476db8d376d68a1c50fece48f335f455a791)) +* **compiler:** Remove support of single-argument tuples ([#1608](https://github.com/alex-snezhko/grain/issues/1608)) ([509cd85](https://github.com/alex-snezhko/grain/commit/509cd85801eb165c0ce65347047a0380f2304b25)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/alex-snezhko/grain/issues/1270)) ([1a27c12](https://github.com/alex-snezhko/grain/commit/1a27c127e8f0318c21fec7ab358ee8e1ad2378e9)) +* **compiler:** Require `module` prefix on `use`/`provide` for modules ([#1868](https://github.com/alex-snezhko/grain/issues/1868)) ([5efb54c](https://github.com/alex-snezhko/grain/commit/5efb54c199e674a3715779f97239b7b47744d88f)) +* **compiler:** Selectively include functions in the global function table ([#1183](https://github.com/alex-snezhko/grain/issues/1183)) ([67575f7](https://github.com/alex-snezhko/grain/commit/67575f712557bc36531f6e40044d1bbfff2454ff)) +* **compiler:** Short integer values ([#1669](https://github.com/alex-snezhko/grain/issues/1669)) ([fc4670d](https://github.com/alex-snezhko/grain/commit/fc4670de13c46dfac3def1ca59d718ffb36aca1c)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/alex-snezhko/grain/issues/1103)) ([095385e](https://github.com/alex-snezhko/grain/commit/095385e7c67bbc7a417a21acaf6f1c498c75ce63)) +* **compiler:** Streamlined reference counting ([#1714](https://github.com/alex-snezhko/grain/issues/1714)) ([0711868](https://github.com/alex-snezhko/grain/commit/071186801ccf7f6dc3eef653382f6d82b8b23b6c)) +* **compiler:** Supply primitive types via the compiler ([#1667](https://github.com/alex-snezhko/grain/issues/1667)) ([b41feb7](https://github.com/alex-snezhko/grain/commit/b41feb73976d4ef3d9c17c31f0dbcfc22df32d9d)) +* **compiler:** Support pattern aliases ([#1174](https://github.com/alex-snezhko/grain/issues/1174)) ([9ed093b](https://github.com/alex-snezhko/grain/commit/9ed093be353895bdde8282ee1681089d5fac68ab)) +* **compiler:** Support pattern matching "or" patterns ([#1173](https://github.com/alex-snezhko/grain/issues/1173)) ([0fb29c4](https://github.com/alex-snezhko/grain/commit/0fb29c4016e1b24b9e3b3b640cc9914b921ec376)) +* **compiler:** Support record field updating assignment ([#1320](https://github.com/alex-snezhko/grain/issues/1320)) ([cc5519c](https://github.com/alex-snezhko/grain/commit/cc5519ce36418623b05d297d577c2325ad9cbc7a)) +* **compiler:** Suppress warnings about using fromNumber for Int32/64 and Float32/64 tests ([#1638](https://github.com/alex-snezhko/grain/issues/1638)) ([b687e31](https://github.com/alex-snezhko/grain/commit/b687e31d6e5d82260cb31f355253934da407d3c5)) +* **compiler:** Unicode-aware lexing ([#1342](https://github.com/alex-snezhko/grain/issues/1342)) ([6dc0dd1](https://github.com/alex-snezhko/grain/commit/6dc0dd1bc80bbfa9da41f82e9f89569d5f0e6d01)) +* **compiler:** Update include syntax ([#2043](https://github.com/alex-snezhko/grain/issues/2043)) ([5f44d4e](https://github.com/alex-snezhko/grain/commit/5f44d4e5a1cd432faddcfb1a138ac6a7797423fd)) +* **compiler:** Update use syntax ([#2041](https://github.com/alex-snezhko/grain/issues/2041)) ([cd346ab](https://github.com/alex-snezhko/grain/commit/cd346ab761aaa5e8e7692ebce1bae4e5e7e47f45)) +* **compiler:** Upgrade binaryen to 0.15.0 to support Mac M1 arch ([#1151](https://github.com/alex-snezhko/grain/issues/1151)) ([fc61950](https://github.com/alex-snezhko/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Use symbol for equals sign ([#1128](https://github.com/alex-snezhko/grain/issues/1128)) ([3d7fc57](https://github.com/alex-snezhko/grain/commit/3d7fc5742ad3016d60e14112fdd68de02fc147f1)) +* **docs:** Update approvals process using CODEOWNERS ([#1541](https://github.com/alex-snezhko/grain/issues/1541)) ([3eb9f7d](https://github.com/alex-snezhko/grain/commit/3eb9f7de8a85f1d200cce6092826233257ae2579)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) ([0f681ea](https://github.com/alex-snezhko/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **graindoc:** Add attribute for exceptions that may be thrown ([#1492](https://github.com/alex-snezhko/grain/issues/1492)) ([b2e75c7](https://github.com/alex-snezhko/grain/commit/b2e75c7452ef2544c768729c7a45e21ff31616d0)) +* **graindoc:** Add test harness ([#1767](https://github.com/alex-snezhko/grain/issues/1767)) ([8a93ebe](https://github.com/alex-snezhko/grain/commit/8a93ebeebafe5938448e7e2968c6a48b90d43e3c)) +* **graindoc:** Allow `[@since](https://github.com/since)` and `[@returns](https://github.com/returns)` once per export ([#1946](https://github.com/alex-snezhko/grain/issues/1946)) ([ad977aa](https://github.com/alex-snezhko/grain/commit/ad977aa3aa191692606e59e4971f93058ede42c9)) +* **graindoc:** Allow directory input & output ([#1263](https://github.com/alex-snezhko/grain/issues/1263)) ([d4cb8ab](https://github.com/alex-snezhko/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **graindoc:** Allow doc comments on variants and record fields ([#1852](https://github.com/alex-snezhko/grain/issues/1852)) ([53f770c](https://github.com/alex-snezhko/grain/commit/53f770c24ef9057b7b5e63d3dda75b166c28536d)) +* **graindoc:** Improve docgen for labeled & default arguments ([#1776](https://github.com/alex-snezhko/grain/issues/1776)) ([be7ff9d](https://github.com/alex-snezhko/grain/commit/be7ff9d9ec2237ad5028f8d9e3e2f10a6bd3f9dd)) +* **graindoc:** Only use original doc blocks when re-providing ([#1687](https://github.com/alex-snezhko/grain/issues/1687)) ([97c7ce4](https://github.com/alex-snezhko/grain/commit/97c7ce4dfb7e4474358a62c3699dd3edc121c961)) +* **graindoc:** Refactored Graindoc parser ([#1658](https://github.com/alex-snezhko/grain/issues/1658)) ([b447ced](https://github.com/alex-snezhko/grain/commit/b447cedc648ece5c5c892ff66172d2f264831647)) +* **graindoc:** Replace module attribute with docblock on module header ([#1647](https://github.com/alex-snezhko/grain/issues/1647)) ([2ff9d9e](https://github.com/alex-snezhko/grain/commit/2ff9d9ec49c727778c6d0ee74219f746df8a11e2)) +* **graindoc:** Support deprecations on module docblocks ([#1498](https://github.com/alex-snezhko/grain/issues/1498)) ([b3dc85c](https://github.com/alex-snezhko/grain/commit/b3dc85c0fc311479de4e57774a075c3a922216ba)) +* **graindoc:** Support docblocks on submodules ([#1684](https://github.com/alex-snezhko/grain/issues/1684)) ([bc13017](https://github.com/alex-snezhko/grain/commit/bc1301751c90380e53c0ca9048a928468245d13c)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/alex-snezhko/grain/issues/1274)) ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Implement new formatter ([#1976](https://github.com/alex-snezhko/grain/issues/1976)) ([1568aa0](https://github.com/alex-snezhko/grain/commit/1568aa06f625c4d91d9151e3f969ec648e8d4231)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainlsp:** Implement goto definition ([#1787](https://github.com/alex-snezhko/grain/issues/1787)) ([3cb862a](https://github.com/alex-snezhko/grain/commit/3cb862a9b7c046aeab22796ebd88de63d4853525)) +* **grainlsp:** Implement inlay hints for module includes ([#1793](https://github.com/alex-snezhko/grain/issues/1793)) ([408da76](https://github.com/alex-snezhko/grain/commit/408da761bd5945892ea19bb21833a15c1506cf6d)) +* **grainlsp:** Provide hovers on use statements ([#1688](https://github.com/alex-snezhko/grain/issues/1688)) ([c5cd21f](https://github.com/alex-snezhko/grain/commit/c5cd21fc3a6b703bb9de2c7a4c7834bd27a743a9)) +* Implement Pervasives.compare ([#1399](https://github.com/alex-snezhko/grain/issues/1399)) ([ebd87e4](https://github.com/alex-snezhko/grain/commit/ebd87e4308a8950fd95f060ebc446833b064237c)) +* **lsp:** Add hover for submodules ([#2028](https://github.com/alex-snezhko/grain/issues/2028)) ([85d8768](https://github.com/alex-snezhko/grain/commit/85d876864b7ae5d69609138b1a33904689347743)) +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/alex-snezhko/grain/issues/1131)) ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **lsp:** Support goto definition on exceptions ([#1895](https://github.com/alex-snezhko/grain/issues/1895)) ([218b2f0](https://github.com/alex-snezhko/grain/commit/218b2f0f7f5f69d81c111abf9cbc2656e60a18be)) +* **lsp:** Support hover on `include` statements ([#1963](https://github.com/alex-snezhko/grain/issues/1963)) ([b6e1570](https://github.com/alex-snezhko/grain/commit/b6e15705c218b1f42b71da15e045e6472fad43cb)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) ([e10d612](https://github.com/alex-snezhko/grain/commit/e10d61295c42237b7b472cd3c5d07f2c5f28d79b)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **runtime:** Allow modulo on floating point numbers ([#1914](https://github.com/alex-snezhko/grain/issues/1914)) ([f90d8af](https://github.com/alex-snezhko/grain/commit/f90d8af2ee2373b5420655c9e80826f56fffaa91)) +* **runtime:** Optimize simple number comparison ([f7ceae7](https://github.com/alex-snezhko/grain/commit/f7ceae729260bc3c5eee017954aa7e242c3f8cb5)) +* **stdlib:** `List.rotate` wraparound for count > length ([#1558](https://github.com/alex-snezhko/grain/issues/1558)) ([6dd9680](https://github.com/alex-snezhko/grain/commit/6dd968009b5d700f2e31ed6f4b1074dbdc4299e7)) +* **stdlib:** Add `**` (pow) operator to Pervasives module ([#1690](https://github.com/alex-snezhko/grain/issues/1690)) ([b16b455](https://github.com/alex-snezhko/grain/commit/b16b4552952fd554657ac1b5bcc868dca0600476)) +* **stdlib:** Add `**` operator to `Int32` module ([#1938](https://github.com/alex-snezhko/grain/issues/1938)) ([32b9639](https://github.com/alex-snezhko/grain/commit/32b9639be58408d587f9c9c29a4b56857e6f328f)) +* **stdlib:** Add `**` operator to `Int64` module ([#1937](https://github.com/alex-snezhko/grain/issues/1937)) ([48de28b](https://github.com/alex-snezhko/grain/commit/48de28bba8be2e157cfb82e90e709759659ab3b4)) +* **stdlib:** Add `==` operator to `Queue` module ([#1931](https://github.com/alex-snezhko/grain/issues/1931)) ([3c0ea18](https://github.com/alex-snezhko/grain/commit/3c0ea189298d9bc4f14824a76814e9181e57a879)) +* **stdlib:** Add `addCharFromCodePoint` to Buffer module ([#1883](https://github.com/alex-snezhko/grain/issues/1883)) ([18b553a](https://github.com/alex-snezhko/grain/commit/18b553a6f69876941bc7153c4e44d4db5547d86b)) +* **stdlib:** Add `asin`, `acos`, `atan`, `isClose` to Number module ([#1699](https://github.com/alex-snezhko/grain/issues/1699)) ([353b544](https://github.com/alex-snezhko/grain/commit/353b544948861d39cbeef97273f661eed2e9748d)) +* **stdlib:** Add `charCodeAt` function to String module ([#1376](https://github.com/alex-snezhko/grain/issues/1376)) ([c3abbc9](https://github.com/alex-snezhko/grain/commit/c3abbc991c8b05e3de20e670d2bc3e491feebf8a)) +* **stdlib:** Add `chunk` function to Array module ([#1708](https://github.com/alex-snezhko/grain/issues/1708)) ([fba7c1d](https://github.com/alex-snezhko/grain/commit/fba7c1d18447917d7544e780353684452321b38e)) +* **stdlib:** Add `empty` constant to ImmutablePriorityQueue module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `empty` constant to Queue module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `empty` constant to Stack module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `exp` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `factorial` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `fromArray` to `Queue` module ([#1932](https://github.com/alex-snezhko/grain/issues/1932)) ([1c35a94](https://github.com/alex-snezhko/grain/commit/1c35a9438008d40c8d3a49810131c69d9b8b97a0)) +* **stdlib:** Add `gamma` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `ImmutableArray` module ([#1477](https://github.com/alex-snezhko/grain/issues/1477)) ([a34d8b9](https://github.com/alex-snezhko/grain/commit/a34d8b9e8ce629c40d65b99561c0f41fa400542e)) +* **stdlib:** Add `infinity` constant to the Number module ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Add `isEmpty` to `List` module ([#1860](https://github.com/alex-snezhko/grain/issues/1860)) ([7362189](https://github.com/alex-snezhko/grain/commit/736218950e7433512554f1b5fea4bc5cbfe97160)) +* **stdlib:** add `isEmpty` to `String` module ([#1861](https://github.com/alex-snezhko/grain/issues/1861)) ([e8cb932](https://github.com/alex-snezhko/grain/commit/e8cb93298cf8776876efc7972f09f0eef2d57c58)) +* **stdlib:** Add `lastIndexOf` function to String module ([#1372](https://github.com/alex-snezhko/grain/issues/1372)) ([b73d9bf](https://github.com/alex-snezhko/grain/commit/b73d9bf9ff3291b83e6f4263e392395d04dc9995)) +* **stdlib:** Add `linearInterpolate`, `linearMap` and `clamp` ([#1707](https://github.com/alex-snezhko/grain/issues/1707)) ([15842a1](https://github.com/alex-snezhko/grain/commit/15842a1030e9c0937d7cd697508b083ae06315a7)) +* **stdlib:** Add `nan` constant to the Number module ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Add `parse` function to Number module ([#1517](https://github.com/alex-snezhko/grain/issues/1517)) ([59e89d1](https://github.com/alex-snezhko/grain/commit/59e89d12b7fcf2626c8adb45c742a787171b7024)) +* **stdlib:** Add `parseFloat` function to Number module ([#1288](https://github.com/alex-snezhko/grain/issues/1288)) ([e21f2b1](https://github.com/alex-snezhko/grain/commit/e21f2b137f7dcd67cccf9debf695db852dc2afc5)) +* **stdlib:** Add `pow` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `print` suffix default argument ([#1768](https://github.com/alex-snezhko/grain/issues/1768)) ([6701170](https://github.com/alex-snezhko/grain/commit/6701170a1ecd91a8b7cb566d2ff99402d24c18e1)) +* **stdlib:** Add `replaceAll` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `replaceFirst` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `replaceLast` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `split` function to Regex module ([#1469](https://github.com/alex-snezhko/grain/issues/1469)) ([0c1eb73](https://github.com/alex-snezhko/grain/commit/0c1eb73d01e30f457138c6e3b603a9faddcf8e9b)) +* **stdlib:** Add `splitAll` function to Regex module ([0c1eb73](https://github.com/alex-snezhko/grain/commit/0c1eb73d01e30f457138c6e3b603a9faddcf8e9b)) +* **stdlib:** Add `tan` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `toArray` to `Queue` ([#1930](https://github.com/alex-snezhko/grain/issues/1930)) ([7c865a4](https://github.com/alex-snezhko/grain/commit/7c865a46811ee078325f55ebcaa054c9f1920ff6)) +* **stdlib:** Add `toDegrees` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `toIntegerRatio` and `fromIntegerRatio` to Rational Library ([#1746](https://github.com/alex-snezhko/grain/issues/1746)) ([008a735](https://github.com/alex-snezhko/grain/commit/008a735051c02fbcd7bd47d7735937a61afd0cd6)) +* **stdlib:** Add `toList` and `fromList` functions to `Queue` module ([#1866](https://github.com/alex-snezhko/grain/issues/1866)) ([7cdcf95](https://github.com/alex-snezhko/grain/commit/7cdcf953d451396e56122bcf062019171102d8d6)) +* **stdlib:** Add `toRadians` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add additional functions to Number module ([#1443](https://github.com/alex-snezhko/grain/issues/1443)) ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add ASCII utilities to String, Char ([#1975](https://github.com/alex-snezhko/grain/issues/1975)) ([f65002d](https://github.com/alex-snezhko/grain/commit/f65002d8c16c927577a4593351882c0734dd9897)) +* **stdlib:** Add module for pseudo-random number generation ([#921](https://github.com/alex-snezhko/grain/issues/921)) ([db1fa4e](https://github.com/alex-snezhko/grain/commit/db1fa4e491d35bb582beaba12157884647384a77)) +* **stdlib:** Add number constants to number libraries ([#1331](https://github.com/alex-snezhko/grain/issues/1331)) ([f640ec2](https://github.com/alex-snezhko/grain/commit/f640ec20aa507c83c9cde290b911d0adcb4e8254)) +* **stdlib:** Add optimization for `Number.pow(Rational, Int)` ([#1716](https://github.com/alex-snezhko/grain/issues/1716)) ([67bee5c](https://github.com/alex-snezhko/grain/commit/67bee5c0982d35f0d6a1350e002b7062a498afe7)) +* **stdlib:** Add Path module for working with system paths ([#1452](https://github.com/alex-snezhko/grain/issues/1452)) ([900e976](https://github.com/alex-snezhko/grain/commit/900e976654565b3618e2215e9b7cefbda873d9a8)) +* **stdlib:** Add replacement functions to String module ([#1441](https://github.com/alex-snezhko/grain/issues/1441)) ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add unsigned versions of Int32/Int64 comparison operations ([#831](https://github.com/alex-snezhko/grain/issues/831)) ([5f20868](https://github.com/alex-snezhko/grain/commit/5f20868e7b6e3f52d62c8531d99d1130ca84961e)) +* **stdlib:** Added `empty` constant to immutable data structures ([#1466](https://github.com/alex-snezhko/grain/issues/1466)) ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Added Bytes.clear function. Avoid allocation in Buffer.clear ([#1124](https://github.com/alex-snezhko/grain/issues/1124)) ([4afd17a](https://github.com/alex-snezhko/grain/commit/4afd17a91e59027fa7af0fe58977bdbe942f8072)) +* **stdlib:** Change array rotation direction ([#1552](https://github.com/alex-snezhko/grain/issues/1552)) ([bbe56ad](https://github.com/alex-snezhko/grain/commit/bbe56ade517bd685d52384d32aecb94d25d379f7)) +* **stdlib:** Convert runtime printing utils to [@unsafe](https://github.com/unsafe) ([#1135](https://github.com/alex-snezhko/grain/issues/1135)) ([403e1d2](https://github.com/alex-snezhko/grain/commit/403e1d20e2082fe2dcd2721f83f6c2b36d4154bf)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) ([114d17b](https://github.com/alex-snezhko/grain/commit/114d17be4463772bbc84ebc408e9cf2b482c6103)) +* **stdlib:** Handle printing of reference cycles ([#1844](https://github.com/alex-snezhko/grain/issues/1844)) ([49c854e](https://github.com/alex-snezhko/grain/commit/49c854eb428ebbe57db5a63d5e7f87faaded3159)) +* **stdlib:** Implement `fromArray` in PriorityQueue & ImmutablePriorityQueue modules ([#1451](https://github.com/alex-snezhko/grain/issues/1451)) ([d321f84](https://github.com/alex-snezhko/grain/commit/d321f84174fee2a340745a9f55994fbfa23f6c7a)) +* **stdlib:** Implement `isFloat`, `isInteger` & `isRational` in Number module ([#1393](https://github.com/alex-snezhko/grain/issues/1393)) ([0af0669](https://github.com/alex-snezhko/grain/commit/0af066993a2b80e417d2c625b27fd11cb1f1f55f)) +* **stdlib:** Implement ImmutableMap and ImmutableSet ([#1414](https://github.com/alex-snezhko/grain/issues/1414)) ([b31120d](https://github.com/alex-snezhko/grain/commit/b31120d41be668c48b9bca9f2b944616371a8ab4)) +* **stdlib:** Implement List.zip, List.unzip, List.zipWith, Array.reduceRight, Array.zipWith ([#1363](https://github.com/alex-snezhko/grain/issues/1363)) ([3e7c147](https://github.com/alex-snezhko/grain/commit/3e7c147fea2d2fb8b7c5a3d6b3eb1453f2861e36)) +* **stdlib:** Implement mutable/immutable priority queues ([#1397](https://github.com/alex-snezhko/grain/issues/1397)) ([244be1b](https://github.com/alex-snezhko/grain/commit/244be1b7254caf0b451902ac56413382eb196747)) +* **stdlib:** Implement Number.sin and Number.cos ([#1343](https://github.com/alex-snezhko/grain/issues/1343)) ([9357126](https://github.com/alex-snezhko/grain/commit/93571267b7df53e1cb9f61eaebf8748885e7392c)) +* **stdlib:** Improve performance in Array & List modules ([#1487](https://github.com/alex-snezhko/grain/issues/1487)) ([2168f6a](https://github.com/alex-snezhko/grain/commit/2168f6ade151548bc655debeb8a1bc09ce87cb77)) +* **stdlib:** Improve performance of `flatMap`, `some`, and `every` functions in Array module ([2168f6a](https://github.com/alex-snezhko/grain/commit/2168f6ade151548bc655debeb8a1bc09ce87cb77)) +* **stdlib:** Improve performance of `some` and `every` functions in List module ([2168f6a](https://github.com/alex-snezhko/grain/commit/2168f6ade151548bc655debeb8a1bc09ce87cb77)) +* **stdlib:** Improved efficiency of constructing a PriorityQueue from a List ([d321f84](https://github.com/alex-snezhko/grain/commit/d321f84174fee2a340745a9f55994fbfa23f6c7a)) +* **stdlib:** Make queue and stack mutable & provide Immutable submodules ([#1479](https://github.com/alex-snezhko/grain/issues/1479)) ([979a20c](https://github.com/alex-snezhko/grain/commit/979a20ce6b734b90bc38c11ee6a4534ea8e555b8)) +* **stdlib:** Marshal ([#1352](https://github.com/alex-snezhko/grain/issues/1352)) ([d659de2](https://github.com/alex-snezhko/grain/commit/d659de2d92260f7726164876827c639bfd9d0590)) +* **stdlib:** Optimize string trimming ([#1442](https://github.com/alex-snezhko/grain/issues/1442)) ([0212247](https://github.com/alex-snezhko/grain/commit/0212247a7fbf0d54085959de2853f3fe66cd8b12)) +* **stdlib:** Provide empty byte array from Bytes.make ([#1729](https://github.com/alex-snezhko/grain/issues/1729)) ([fde3064](https://github.com/alex-snezhko/grain/commit/fde3064428fa2244e73932d5992ac722a26ebfe4)) +* **stdlib:** Remove parseInt dependency on Pervasives ([#1649](https://github.com/alex-snezhko/grain/issues/1649)) ([9408568](https://github.com/alex-snezhko/grain/commit/9408568a3457c2084afc22f958334e87a4183ccf)) +* **stdlib:** Reorder parameters to `List.insert` ([#1857](https://github.com/alex-snezhko/grain/issues/1857)) ([973f3f3](https://github.com/alex-snezhko/grain/commit/973f3f34c39a4ac7a552e378b84020d5c647ce86)) +* **stdlib:** Replace `Float32` arithmatic/comparison functions with operators ([#1954](https://github.com/alex-snezhko/grain/issues/1954)) ([52cc15a](https://github.com/alex-snezhko/grain/commit/52cc15a5251cd0003fcfbe243c7b7c940a61d429)) +* **stdlib:** Replace `Float64` arithmatic/comparison functions with operators ([#1957](https://github.com/alex-snezhko/grain/issues/1957)) ([dea4cb5](https://github.com/alex-snezhko/grain/commit/dea4cb54d10b9cecbf54ed30048c0937bc38cea2)) +* **stdlib:** Replace `Int32` arithmatic functions with operators ([#1936](https://github.com/alex-snezhko/grain/issues/1936)) ([8a69dd3](https://github.com/alex-snezhko/grain/commit/8a69dd393e002585464029a42a4362b6edfee662)) +* **stdlib:** Replace `Int64` arithmatic functions with operators ([#1935](https://github.com/alex-snezhko/grain/issues/1935)) ([cfb909c](https://github.com/alex-snezhko/grain/commit/cfb909c60d55d94eb869c389da28a8b3a1bc502f)) +* **stdlib:** Replace `Result`/`Option` `and`/`or` functions with operators ([#1821](https://github.com/alex-snezhko/grain/issues/1821)) ([686de7e](https://github.com/alex-snezhko/grain/commit/686de7ec3c83d092c7a0407657695e1bc671abd7)) +* **stdlib:** Simplify `equal` using `Memory.compare` ([#1972](https://github.com/alex-snezhko/grain/issues/1972)) ([dc21976](https://github.com/alex-snezhko/grain/commit/dc219763ebc7bcfcd6c411d7b2b1f152e5e87d6e)) +* **stdlib:** Support zipping arrays of different sizes ([#1402](https://github.com/alex-snezhko/grain/issues/1402)) ([b8ae3d6](https://github.com/alex-snezhko/grain/commit/b8ae3d69c98ada45bc592fb3097f21bc8a0d40bd)) +* **stdlib:** Use Array length as default end in `Array.slice` function ([#1762](https://github.com/alex-snezhko/grain/issues/1762)) ([a698fdc](https://github.com/alex-snezhko/grain/commit/a698fdc55ef45e8b0d156d5bb3cacc9e21d758ac)) +* **stdlib:** Use String length as default end in `String.slice` function ([#1748](https://github.com/alex-snezhko/grain/issues/1748)) ([b7c41a6](https://github.com/alex-snezhko/grain/commit/b7c41a6421dd0392bfec9f1791d9314556af9318)) + + +### Bug Fixes + +* **ci:** Add a last-release-sha to release-please ([#1296](https://github.com/alex-snezhko/grain/issues/1296)) ([abf9749](https://github.com/alex-snezhko/grain/commit/abf9749d8188970a27bd6f60213261af352f2e6f)) +* **cli:** Correct typo in printing stack ([#1924](https://github.com/alex-snezhko/grain/issues/1924)) ([a4016f1](https://github.com/alex-snezhko/grain/commit/a4016f187e4d8148811459c0a8638c36bdff9349)) +* **cli:** Ensure `--use-start-section` can only be used with compile command ([#1871](https://github.com/alex-snezhko/grain/issues/1871)) ([d9227d7](https://github.com/alex-snezhko/grain/commit/d9227d7770b73338362d5699d2382e029fe3a5dc)) +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/alex-snezhko/grain/issues/1285)) ([1357e16](https://github.com/alex-snezhko/grain/commit/1357e162f7e939db21468186d16e6d720b557a57)) +* **compiler:** Allow defining _start when using --use-start-section ([#1349](https://github.com/alex-snezhko/grain/issues/1349)) ([944f71c](https://github.com/alex-snezhko/grain/commit/944f71ca8080b8a3228d27893b2fd5b84e4b6189)) +* **compiler:** Allow early return in let bindings ([#1727](https://github.com/alex-snezhko/grain/issues/1727)) ([43adefe](https://github.com/alex-snezhko/grain/commit/43adefe7ff7e4ca7ba6f6f80889f66b557451888)) +* **compiler:** Allow providing values of types provided later ([#1897](https://github.com/alex-snezhko/grain/issues/1897)) ([1c43bd6](https://github.com/alex-snezhko/grain/commit/1c43bd60395b9ff024d9e8ebbbe6d517c2e30051)) +* **compiler:** Allow reproviding from submodules ([#1888](https://github.com/alex-snezhko/grain/issues/1888)) ([97c00e1](https://github.com/alex-snezhko/grain/commit/97c00e1e47bc783c6dad71b605f4a0d2ae3d11b9)) +* **compiler:** Apply correct allocation type to numbers ([#1140](https://github.com/alex-snezhko/grain/issues/1140)) ([b9e9d59](https://github.com/alex-snezhko/grain/commit/b9e9d59143f529f7c0ae100b048988e6ba0e8d54)) +* **compiler:** Apply correct rules for parsing Unicode whitespace ([#1554](https://github.com/alex-snezhko/grain/issues/1554)) ([4f19d71](https://github.com/alex-snezhko/grain/commit/4f19d71b6bbe7f2094fadbb9fbd99f1fd62e80ae)) +* **compiler:** Apply list location to outer node ([#1387](https://github.com/alex-snezhko/grain/issues/1387)) ([06e79a8](https://github.com/alex-snezhko/grain/commit/06e79a80e5e61e5a8654654dfa15310a1bc363ea)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Correct error message for unbound type variables ([#1327](https://github.com/alex-snezhko/grain/issues/1327)) ([762362a](https://github.com/alex-snezhko/grain/commit/762362a06e1676540cd33df8200ea2a6b7006a5e)) +* **compiler:** Correct locations for data constructor idents ([#1752](https://github.com/alex-snezhko/grain/issues/1752)) ([d015a97](https://github.com/alex-snezhko/grain/commit/d015a978d7969994d09b7050f9f358fc5bba9d23)) +* **compiler:** Correct the warning suggestion for Float32 And Float64 values ([#1671](https://github.com/alex-snezhko/grain/issues/1671)) ([32e0397](https://github.com/alex-snezhko/grain/commit/32e03972660b451ad6f068281aee08ad0d958c27)) +* **compiler:** Correctly handle and backpatch mutually recursive closure scope functions ([#1808](https://github.com/alex-snezhko/grain/issues/1808)) ([c2a0c5b](https://github.com/alex-snezhko/grain/commit/c2a0c5baa7664a38ded3977455b8b9c2588c5034)) +* **compiler:** Correctly handle underscores in bigint literals ([0af0669](https://github.com/alex-snezhko/grain/commit/0af066993a2b80e417d2c625b27fd11cb1f1f55f)) +* **compiler:** Disallow enum variants with parens but no types ([#1809](https://github.com/alex-snezhko/grain/issues/1809)) ([25e4946](https://github.com/alex-snezhko/grain/commit/25e494680ac048125748e9f696df83de974b9e72)) +* **compiler:** Disallow multiple `provide`s of the same value ([#1689](https://github.com/alex-snezhko/grain/issues/1689)) ([7ab7ddc](https://github.com/alex-snezhko/grain/commit/7ab7ddc1c7e9eae221edcf787b733ef7acf97904)) +* **compiler:** Ensure constant number locations are propagated correctly when parsing ([#2044](https://github.com/alex-snezhko/grain/issues/2044)) ([53a33e6](https://github.com/alex-snezhko/grain/commit/53a33e6c97d5ddf17fc88480622d993b1c86e631)) +* **compiler:** Ensure refcounts are maintained when tail calls use arguments multiple times ([#1993](https://github.com/alex-snezhko/grain/issues/1993)) ([86c6e12](https://github.com/alex-snezhko/grain/commit/86c6e12e0ab1f48347cfd57d3cb328fe1f6fac15)) +* **compiler:** Fix compilation of closure scope mutable destructuring ([#1346](https://github.com/alex-snezhko/grain/issues/1346)) ([bdcdb3c](https://github.com/alex-snezhko/grain/commit/bdcdb3c66a9a60fc44956225491c12cc14250009)) +* **compiler:** Fix compilation of functions annotated with alias ([#1293](https://github.com/alex-snezhko/grain/issues/1293)) ([b3e1882](https://github.com/alex-snezhko/grain/commit/b3e188299be6af22bb64cf5ae9a41afa05e4c16f)) +* **compiler:** Fix dependency compilation of wasi polyfill ([#1563](https://github.com/alex-snezhko/grain/issues/1563)) ([fa8b209](https://github.com/alex-snezhko/grain/commit/fa8b209629deeb9f088d086311504dbde8371189)) +* **compiler:** Fix error location reporting of unbound modules and labels ([#1577](https://github.com/alex-snezhko/grain/issues/1577)) ([5146b14](https://github.com/alex-snezhko/grain/commit/5146b145468f280ea39af276d8b345c17a0595da)) +* **compiler:** fix formatter multiple data bug ([#1282](https://github.com/alex-snezhko/grain/issues/1282)) ([f6fd962](https://github.com/alex-snezhko/grain/commit/f6fd96250dbe95d6b6c56d663f6d7f2704b792b3)) +* **compiler:** Fix memory bug in universal exports ([#1663](https://github.com/alex-snezhko/grain/issues/1663)) ([87724f0](https://github.com/alex-snezhko/grain/commit/87724f0a2c1e0697a138ebb3f2ba98a337be88f5)) +* **compiler:** Fix precedence of `>>` operator ([#1515](https://github.com/alex-snezhko/grain/issues/1515)) ([1565c16](https://github.com/alex-snezhko/grain/commit/1565c16e98dd5c137fb852d23f890f8d7c70d352)) +* **compiler:** Fully expand types when finding concrete representation ([#1448](https://github.com/alex-snezhko/grain/issues/1448)) ([a5ff379](https://github.com/alex-snezhko/grain/commit/a5ff379f15a0839671d8d0e10c3334658e3fbafc)) +* **compiler:** Increase JS stack size ([#1532](https://github.com/alex-snezhko/grain/issues/1532)) ([9d1ff1f](https://github.com/alex-snezhko/grain/commit/9d1ff1f427f2b2a92aa7958cf84b2d1026b1bac5)) +* **compiler:** Inline record exception constructors ([#1709](https://github.com/alex-snezhko/grain/issues/1709)) ([ffd4d44](https://github.com/alex-snezhko/grain/commit/ffd4d44d0d341f9c835d24cbebe0ac4e317fe93b)) +* **compiler:** Iterate over guard clauses in typedTreeIter/typedTreeMap ([#1283](https://github.com/alex-snezhko/grain/issues/1283)) ([96e8ecb](https://github.com/alex-snezhko/grain/commit/96e8ecb9e84e54d0640bc775e23e25b93c4dda7c)) +* **compiler:** Move Filename usage to Filepath.String & normalize separators ([584bcad](https://github.com/alex-snezhko/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Panic immediately when out of memory ([#1450](https://github.com/alex-snezhko/grain/issues/1450)) ([943d47d](https://github.com/alex-snezhko/grain/commit/943d47dddde2d88fd96727e9d7ed8501efec42ef)) +* **compiler:** Preserve all configs when compiling ([#1207](https://github.com/alex-snezhko/grain/issues/1207)) ([d8ff903](https://github.com/alex-snezhko/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Prevent stack overflows when compiling long blocks ([#1534](https://github.com/alex-snezhko/grain/issues/1534)) ([dc6d699](https://github.com/alex-snezhko/grain/commit/dc6d699cffeefa71ef2898c484f840c991f66c7a)) +* **compiler:** Properly apply well-formedness checks on patterns ([#1989](https://github.com/alex-snezhko/grain/issues/1989)) ([00abee8](https://github.com/alex-snezhko/grain/commit/00abee89e5dd40d658ff44b72c8c9ffc576cd628)) +* **compiler:** Properly handle corrupted CMIs ([#1314](https://github.com/alex-snezhko/grain/issues/1314)) ([7f97410](https://github.com/alex-snezhko/grain/commit/7f9741016fac55bd63aa74d9bd2fef49dd34d03b)) +* **compiler:** Properly handle parsing return of negative number ([#1611](https://github.com/alex-snezhko/grain/issues/1611)) ([0a5a97c](https://github.com/alex-snezhko/grain/commit/0a5a97c8fb7cfd3f6ac068fb343e66457381fc13)) +* **compiler:** Properly handle types not imported ([#1329](https://github.com/alex-snezhko/grain/issues/1329)) ([75bbb93](https://github.com/alex-snezhko/grain/commit/75bbb9367a43c923fc97b25ea0ed9315190f5702)) +* **compiler:** Properly parse large hex numbers ([#1546](https://github.com/alex-snezhko/grain/issues/1546)) ([5f8d770](https://github.com/alex-snezhko/grain/commit/5f8d770ec60b686c3183bd8a200800c3f03e8e30)) +* **compiler:** Provide appropriate error during invalid array access ([#1556](https://github.com/alex-snezhko/grain/issues/1556)) ([3d7b9e3](https://github.com/alex-snezhko/grain/commit/3d7b9e3d99b2639b46080e1c564d1453cd80f666)) +* **compiler:** Provide appropriate error for empty char literals ([#1728](https://github.com/alex-snezhko/grain/issues/1728)) ([e4dcda8](https://github.com/alex-snezhko/grain/commit/e4dcda8615b0c611ec201ac5f315e99b3ba1bfb3)) +* **compiler:** Provide full module interface in intermediate wasm files ([#1756](https://github.com/alex-snezhko/grain/issues/1756)) ([683f803](https://github.com/alex-snezhko/grain/commit/683f803885e1ea073b7693dc1446b379fc49d311)) +* **compiler:** Raise appropriate error on unbound export ([#1528](https://github.com/alex-snezhko/grain/issues/1528)) ([43d512d](https://github.com/alex-snezhko/grain/commit/43d512dbcfb61cd10674a83658ed23b4e0ea8898)) +* **compiler:** Raise appropriate exception when modules are missing during dependency graph construction ([#1485](https://github.com/alex-snezhko/grain/issues/1485)) ([d8cd8f1](https://github.com/alex-snezhko/grain/commit/d8cd8f11aec66eb257bd1cfc9f7884dcd787efd6)) +* **compiler:** Re-providing types ([#1874](https://github.com/alex-snezhko/grain/issues/1874)) ([6df9eb2](https://github.com/alex-snezhko/grain/commit/6df9eb24b740975be179cccee2bf70bac2414f33)) +* **compiler:** Read custom sections in full ([#1243](https://github.com/alex-snezhko/grain/issues/1243)) ([f8a0891](https://github.com/alex-snezhko/grain/commit/f8a0891f253e33153feb2ec20afe6443391a1aa8)) +* **compiler:** Refactor WASI polyfill resolution ([#1261](https://github.com/alex-snezhko/grain/issues/1261)) ([a39b48f](https://github.com/alex-snezhko/grain/commit/a39b48ff95f4ef7ce5a4b5454dbc620ae4044c17)) +* **compiler:** Remove number constant folding optimization ([#1676](https://github.com/alex-snezhko/grain/issues/1676)) ([181798d](https://github.com/alex-snezhko/grain/commit/181798db69e708c69ca08a24785de7c03b9c45ab)) +* **compiler:** Remove static runtime pointers ([#1806](https://github.com/alex-snezhko/grain/issues/1806)) ([8d76dc9](https://github.com/alex-snezhko/grain/commit/8d76dc917cf109e3b8496faca565fd9904fa0b22)) +* **compiler:** Report binop locations properly ([#1271](https://github.com/alex-snezhko/grain/issues/1271)) ([4b9dd9c](https://github.com/alex-snezhko/grain/commit/4b9dd9c35969cf86f1d2d9a8013b7f6d347c508e)) +* **compiler:** Report Win32 instead of Cygwin in JS compiler ([#1251](https://github.com/alex-snezhko/grain/issues/1251)) ([584bcad](https://github.com/alex-snezhko/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Respect stack type when dropping statements ([#1138](https://github.com/alex-snezhko/grain/issues/1138)) ([5a44e93](https://github.com/alex-snezhko/grain/commit/5a44e93ab646f1e9998ce6c23245e41c4bf0019a)) +* **compiler:** Supply correct error for unbound record labels ([#1200](https://github.com/alex-snezhko/grain/issues/1200)) ([86e1bc0](https://github.com/alex-snezhko/grain/commit/86e1bc0ba099c5b48ba72e98530a634e15f6bb77)) +* **compiler:** Support deeply nested types in modules ([#1673](https://github.com/alex-snezhko/grain/issues/1673)) ([b6651bb](https://github.com/alex-snezhko/grain/commit/b6651bbc589810dcea123920d9257d339307ed3d)) +* **compiler:** Support printing tuple types in oprint ([#1324](https://github.com/alex-snezhko/grain/issues/1324)) ([c1d8907](https://github.com/alex-snezhko/grain/commit/c1d89076cad153ed4aa02593f628f4d152ff7139)) +* **compiler:** Type aliasing in `use` statements ([#1887](https://github.com/alex-snezhko/grain/issues/1887)) ([79ab814](https://github.com/alex-snezhko/grain/commit/79ab81404f38cc347c719ecd1c50b9658d424aaa)) +* **compiler:** Use option converter for `--profile` argument ([#1432](https://github.com/alex-snezhko/grain/issues/1432)) ([57776f2](https://github.com/alex-snezhko/grain/commit/57776f224904f2d422923a1a947b5acbe435cfa4)) +* Fix String.ReplaceAll ([#1705](https://github.com/alex-snezhko/grain/issues/1705)) ([d3af004](https://github.com/alex-snezhko/grain/commit/d3af0049f6910b10065ddd72c46e5364fe53c4ff)) +* **graindoc:** Add parens around infix operators in titles ([#1303](https://github.com/alex-snezhko/grain/issues/1303)) ([acba9c1](https://github.com/alex-snezhko/grain/commit/acba9c1757688756c3ca98b22a0a159b8d8f9e7d)) +* **graindoc:** Avoid singletons when building ordered comments ([#1208](https://github.com/alex-snezhko/grain/issues/1208)) ([3f28e6e](https://github.com/alex-snezhko/grain/commit/3f28e6e226bbd951aedc6f8783203152919c7d08)) +* **graindoc:** Enable printing of arrow types ([#1367](https://github.com/alex-snezhko/grain/issues/1367)) ([e2b28ab](https://github.com/alex-snezhko/grain/commit/e2b28ab66ecd9169c27a2680ba5e0fb79e589787)) +* **graindoc:** Escape * characters that would close markdown bold incorrectly ([3b6b5ca](https://github.com/alex-snezhko/grain/commit/3b6b5ca74e3b40a41206ba5f3d527166ea267ada)) +* **graindoc:** Escape * chars that would close markdown bold incorrectly ([#1685](https://github.com/alex-snezhko/grain/issues/1685)) ([3b6b5ca](https://github.com/alex-snezhko/grain/commit/3b6b5ca74e3b40a41206ba5f3d527166ea267ada)) +* **graindoc:** Fix type printing for types and abstract types ([#1238](https://github.com/alex-snezhko/grain/issues/1238)) ([aea3ea9](https://github.com/alex-snezhko/grain/commit/aea3ea9f6b72182dfffb8af4c9af83a444fb6a83)) +* **graindoc:** Improve location lookup so re-exports do not crash it ([#1280](https://github.com/alex-snezhko/grain/issues/1280)) ([6e782ee](https://github.com/alex-snezhko/grain/commit/6e782ee146e16aefd3b88441de500d82a20508be)) +* **graindoc:** Preserve indentation in Doc comments during trim ([#1119](https://github.com/alex-snezhko/grain/issues/1119)) ([b8a6d57](https://github.com/alex-snezhko/grain/commit/b8a6d57cce274bfbc2cc16c5b25215b042d4264c)) +* **graindoc:** Remove spaces between parens and infix idents ([#1302](https://github.com/alex-snezhko/grain/issues/1302)) ([95e596f](https://github.com/alex-snezhko/grain/commit/95e596fa3fdae5a8a0e07d76ff8c11eeab99e8d7)) +* **graindoc:** Use defined module name throughout generated doc ([#1406](https://github.com/alex-snezhko/grain/issues/1406)) ([c33a777](https://github.com/alex-snezhko/grain/commit/c33a777a93d5e40a081991db5e6ea61ade4fbabc)) +* **graindoc:** Use Markdown bold helper for each case of bolding ([#1695](https://github.com/alex-snezhko/grain/issues/1695)) ([d798433](https://github.com/alex-snezhko/grain/commit/d798433fbb99eace2f100c0cd94c78eb99b0cf93)) +* **graindoc:** Use value_descriptions and type_declarations defined by the module signature ([#1241](https://github.com/alex-snezhko/grain/issues/1241)) ([5896242](https://github.com/alex-snezhko/grain/commit/5896242c324622f3329c144bd2c9642aade9d049)) +* **grainfmt:** Add parentheses around some binops for precedence clarity ([#1514](https://github.com/alex-snezhko/grain/issues/1514)) ([3ac27cc](https://github.com/alex-snezhko/grain/commit/3ac27cc6e17b896dae0ef2cb5f5de510c7c2dd60)) +* **grainfmt:** Avoid duplicating comments inside records ([#1428](https://github.com/alex-snezhko/grain/issues/1428)) ([b993030](https://github.com/alex-snezhko/grain/commit/b99303013698312ff936519645698c05e1bfd807)) +* **grainfmt:** Fix grouping of expressions on LHS of fn application, record access etc ([#1562](https://github.com/alex-snezhko/grain/issues/1562)) ([6c46015](https://github.com/alex-snezhko/grain/commit/6c460156335cd3e864eb71f05f83fe6a8f8593ae)) +* **grainfmt:** Format rational numbers with parens when needed for precedence ([#1385](https://github.com/alex-snezhko/grain/issues/1385)) ([931bb42](https://github.com/alex-snezhko/grain/commit/931bb42b4a8bc610765d871947f7deaef354511b)) +* **grainfmt:** Group expressions inside array accessors ([#1462](https://github.com/alex-snezhko/grain/issues/1462)) ([dd11dd4](https://github.com/alex-snezhko/grain/commit/dd11dd4191f9369bff195dc71bd1660b57d222af)) +* **grainfmt:** Handle chained value bindings properly ([#1467](https://github.com/alex-snezhko/grain/issues/1467)) ([07bfcd3](https://github.com/alex-snezhko/grain/commit/07bfcd3f15c34ef99b05531591b1473f206b7395)) +* **grainfmt:** Handle comment in or near if conditionals better ([#1513](https://github.com/alex-snezhko/grain/issues/1513)) ([8a60985](https://github.com/alex-snezhko/grain/commit/8a609854ffe40f55e0d147655f6991b7efc3be50)) +* **grainfmt:** Handle comments after braces properly ([654ab8c](https://github.com/alex-snezhko/grain/commit/654ab8cd946ea99261e37d85ea76bc9a49325311)) +* **grainfmt:** Handle comments after braces properly when on one line ([#1578](https://github.com/alex-snezhko/grain/issues/1578)) ([654ab8c](https://github.com/alex-snezhko/grain/commit/654ab8cd946ea99261e37d85ea76bc9a49325311)) +* **grainfmt:** Handle comments within lists ([#1429](https://github.com/alex-snezhko/grain/issues/1429)) ([05b5f52](https://github.com/alex-snezhko/grain/commit/05b5f525fea50db20b49b4b5cb88c4b0259d2805)) +* **grainfmt:** Handle multiple line items and comments better ([#1460](https://github.com/alex-snezhko/grain/issues/1460)) ([5395fd4](https://github.com/alex-snezhko/grain/commit/5395fd45b79fb3bcf3dd1ec52a1d5973a23a4bdc)) +* **grainfmt:** Handle source files with no code, only comments ([#1411](https://github.com/alex-snezhko/grain/issues/1411)) ([a435d60](https://github.com/alex-snezhko/grain/commit/a435d60f4c8f8c85ec28ea8a29e76d0ceea0284b)) +* **grainfmt:** Indent lines when wrapping infix operators ([#1465](https://github.com/alex-snezhko/grain/issues/1465)) ([d705849](https://github.com/alex-snezhko/grain/commit/d705849ea8d9073e608576b77adeae834c454e0b)) +* **grainfmt:** Maintain comments in function arguments ([#1527](https://github.com/alex-snezhko/grain/issues/1527)) ([6ad6dc1](https://github.com/alex-snezhko/grain/commit/6ad6dc12a15d2166277d990bca49f66b5177e0f9)) +* **grainfmt:** Preserve the EOL characters of file ([#1216](https://github.com/alex-snezhko/grain/issues/1216)) ([ef2835a](https://github.com/alex-snezhko/grain/commit/ef2835a5608cb1d5de52b280b6d4fd5b563ce725)) +* **grainfmt:** Print comments found between comma-separated data statements ([#1430](https://github.com/alex-snezhko/grain/issues/1430)) ([be4b38d](https://github.com/alex-snezhko/grain/commit/be4b38d87b0ee6ff4544264b8bad4e36820808a2)) +* **grainfmt:** Properly format comments within a record ([#1435](https://github.com/alex-snezhko/grain/issues/1435)) ([3c56097](https://github.com/alex-snezhko/grain/commit/3c56097e867a83698f26e287dbaeaee7e831efb8)) +* **grainfmt:** Properly handle coalesing operator ([#1568](https://github.com/alex-snezhko/grain/issues/1568)) ([4595f97](https://github.com/alex-snezhko/grain/commit/4595f97d8013a57bccfd09138d3351e94887a6ba)) +* **grainfmt:** Properly handle if/then/else line breaks ([#1217](https://github.com/alex-snezhko/grain/issues/1217)) ([93fd3b5](https://github.com/alex-snezhko/grain/commit/93fd3b5d0a5ccbc11baaab08d0f65ff9ec98aead)) +* **grainfmt:** Reduce binop format time ([#1482](https://github.com/alex-snezhko/grain/issues/1482)) ([e850455](https://github.com/alex-snezhko/grain/commit/e850455ff8dff5844de128637b42e8b8dcb7daf0)) +* **grainfmt:** Remove parens around annotated types ([#1109](https://github.com/alex-snezhko/grain/issues/1109)) ([0ca66bd](https://github.com/alex-snezhko/grain/commit/0ca66bd43703826f86ef5b28b49d250af219fb0b)) +* **grainfmt:** Stop adding an extra line after block comments ([#1436](https://github.com/alex-snezhko/grain/issues/1436)) ([4e4903f](https://github.com/alex-snezhko/grain/commit/4e4903f238a3804e687b1a430ec7896f7a145271)) +* **grainfmt:** Support PPatOr and PPatAlias ([#1322](https://github.com/alex-snezhko/grain/issues/1322)) ([20050d2](https://github.com/alex-snezhko/grain/commit/20050d2c975f60ae7ead41c76871562f7636c499)) +* **grainfmt:** Use only the correct comments for constraints ([#1388](https://github.com/alex-snezhko/grain/issues/1388)) ([91d5cdf](https://github.com/alex-snezhko/grain/commit/91d5cdf63d7be8a68cf613c6ba217c5810cf3920)) +* **grainlsp:** Properly surface errors in other files ([#1490](https://github.com/alex-snezhko/grain/issues/1490)) ([6a09953](https://github.com/alex-snezhko/grain/commit/6a099533ffecb801f3ccbcc9c66a57a86737a90c)) +* **grainlsp:** Send empty response if file cannot be formatted ([#1386](https://github.com/alex-snezhko/grain/issues/1386)) ([38a3f58](https://github.com/alex-snezhko/grain/commit/38a3f58b5cf4b61654cc07f3fad0b9be10abb983)) +* **lsp:** Always respond to hover request ([#1328](https://github.com/alex-snezhko/grain/issues/1328)) ([fb947b5](https://github.com/alex-snezhko/grain/commit/fb947b5dc47f306f6399d2b4564fe8f33ffd80b1)) +* **lsp:** Fix lsp crash when hovering on function with default arg ([#1969](https://github.com/alex-snezhko/grain/issues/1969)) ([dd25d02](https://github.com/alex-snezhko/grain/commit/dd25d02675b93b36e17c1bfa37030c9cbff1dbb7)) +* **runtime:** Handle bigint mul/div within Number correctly ([#1475](https://github.com/alex-snezhko/grain/issues/1475)) ([0fe8aa6](https://github.com/alex-snezhko/grain/commit/0fe8aa6a96a9c5ebf2f2bf2e1f28578badfb337f)) +* **runtime:** Properly divide bigints in the number type ([59e89d1](https://github.com/alex-snezhko/grain/commit/59e89d12b7fcf2626c8adb45c742a787171b7024)) +* **stdlib:** Add explicit void return type on Map.forEach ([#1220](https://github.com/alex-snezhko/grain/issues/1220)) ([ab2066a](https://github.com/alex-snezhko/grain/commit/ab2066aadffa8813344d9df7c7a10ec0f76751b6)) +* **stdlib:** Add explicit void return type on Set.forEach ([#1225](https://github.com/alex-snezhko/grain/issues/1225)) ([694e6cf](https://github.com/alex-snezhko/grain/commit/694e6cf8fcd061a77b2915dc0ea9e9b1ae143ae4)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/alex-snezhko/grain/issues/1136)) ([0c7cb82](https://github.com/alex-snezhko/grain/commit/0c7cb820d49cda74598680cc614c0d893b4d2b40)) +* **stdlib:** Buffer.toBytes should not expose the raw instance of Bytes used by the buffer ([#1130](https://github.com/alex-snezhko/grain/issues/1130)) ([d2bb585](https://github.com/alex-snezhko/grain/commit/d2bb585d3e2092f1331a679f4e84a9500b8c87a5)) +* **stdlib:** Correctly promote numbers to bigints when left-shifting ([#1354](https://github.com/alex-snezhko/grain/issues/1354)) ([5280e98](https://github.com/alex-snezhko/grain/commit/5280e98a91a57fae074299fc7bad3c41f69fa2a3)) +* **stdlib:** Ensure `Array.fillRange` works with negative indexing & throws IndexOutOfBound ([#1761](https://github.com/alex-snezhko/grain/issues/1761)) ([3c3c4d9](https://github.com/alex-snezhko/grain/commit/3c3c4d9ced8168287ecbd23ee71948c5592e3b66)) +* **stdlib:** Ensure Void return for forEach functions in List module ([#1307](https://github.com/alex-snezhko/grain/issues/1307)) ([31f480c](https://github.com/alex-snezhko/grain/commit/31f480c22e0a39b347fc3a48e1d0b5bd40c2f19e)) +* **stdlib:** Fix anchoring behavior in Regex.replaceAll ([#1440](https://github.com/alex-snezhko/grain/issues/1440)) ([d513eff](https://github.com/alex-snezhko/grain/commit/d513effe569d0aa0d44c974596fd285f1ad8d57d)) +* **stdlib:** Fix float printing in dtoa ([#1165](https://github.com/alex-snezhko/grain/issues/1165)) ([2987210](https://github.com/alex-snezhko/grain/commit/2987210648873ab474990ff2b7146a489fecb268)) +* **stdlib:** Fix handling of `NaN` and `Infinity` in Number module ([#1457](https://github.com/alex-snezhko/grain/issues/1457)) ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Fix NaN comparisons ([#1543](https://github.com/alex-snezhko/grain/issues/1543)) ([f7ceae7](https://github.com/alex-snezhko/grain/commit/f7ceae729260bc3c5eee017954aa7e242c3f8cb5)) +* **stdlib:** Fix overzealous Memory.fill in Buffer.truncate ([#1781](https://github.com/alex-snezhko/grain/issues/1781)) ([e1f24e9](https://github.com/alex-snezhko/grain/commit/e1f24e941a392f1ac6464683d71f87eab6787220)) +* **stdlib:** Fixed a memory leak in Buffer.addStringSlice. ([#1122](https://github.com/alex-snezhko/grain/issues/1122)) ([c4e1911](https://github.com/alex-snezhko/grain/commit/c4e19110bd9923e58a7953fcbcef18bf07f3efd6)) +* **stdlib:** Fixed length and byteLength for strings over 2GiB. ([#1126](https://github.com/alex-snezhko/grain/issues/1126)) ([08a9487](https://github.com/alex-snezhko/grain/commit/08a948709270a9aa4ac853c2887bc652c4734f36)) +* **stdlib:** Make Bytes.length handle sizes over 2GiB ([#1123](https://github.com/alex-snezhko/grain/issues/1123)) ([d7386eb](https://github.com/alex-snezhko/grain/commit/d7386eb36c32452d69a734b447015b4db23f1ac4)) +* **stdlib:** Make toNumber functions respect Number invariants ([#1347](https://github.com/alex-snezhko/grain/issues/1347)) ([78db882](https://github.com/alex-snezhko/grain/commit/78db8820cf5667a4d6737c9109f4223c1348b245)) +* **stdlib:** Prevent addBytesSlice throwing error on empty buffer ([#1394](https://github.com/alex-snezhko/grain/issues/1394)) ([bdd4be4](https://github.com/alex-snezhko/grain/commit/bdd4be46730290908b7b939f41679acce7834167)) +* **stdlib:** Properly handle extremely large integer bases in `Number.(**)` ([#1950](https://github.com/alex-snezhko/grain/issues/1950)) ([84c076f](https://github.com/alex-snezhko/grain/commit/84c076fb3b7b34a3fec6dfd2c527ca4833414ff4)) +* **stdlib:** Properly resize empty Queue on push ([#1865](https://github.com/alex-snezhko/grain/issues/1865)) ([f7727ef](https://github.com/alex-snezhko/grain/commit/f7727ef2158f63dc8c88a5b824b41e31495f0f51)) +* **stdlib:** Properly resize empty Stack on push ([#1867](https://github.com/alex-snezhko/grain/issues/1867)) ([b90d924](https://github.com/alex-snezhko/grain/commit/b90d924a38f8a7f82a7c972f8213ab9ec8561820)) +* **stdlib:** Provide correct types for BigInt operations ([#1297](https://github.com/alex-snezhko/grain/issues/1297)) ([fdd2f1c](https://github.com/alex-snezhko/grain/commit/fdd2f1c49b938a013d6ae199b5e662cb93d051e6)) +* **stdlib:** Remove extra space when converting Bytes to String ([#1800](https://github.com/alex-snezhko/grain/issues/1800)) ([543807b](https://github.com/alex-snezhko/grain/commit/543807b1156aecc93396c12121ada15f4d2bd046)) +* **stdlib:** Remove intermediate resizes in Buffer.autogrow ([#1125](https://github.com/alex-snezhko/grain/issues/1125)) ([c1695d0](https://github.com/alex-snezhko/grain/commit/c1695d066ccd40b3118c5c870353addeef67bfc1)) +* **stdlib:** Remove memory corruption in File.fdReaddir ([#1573](https://github.com/alex-snezhko/grain/issues/1573)) ([060fc7b](https://github.com/alex-snezhko/grain/commit/060fc7ba4e5c4d86098eafbee09bbce13bca32c3)) +* **stdlib:** Return early from `Process.argv()` if length is zero ([#1817](https://github.com/alex-snezhko/grain/issues/1817)) ([8ccea28](https://github.com/alex-snezhko/grain/commit/8ccea288feb7f981adaecd29ba1324fefb192b69)) +* **stdlib:** Sys/File reading and writing operate on Bytes ([#1655](https://github.com/alex-snezhko/grain/issues/1655)) ([17cb28d](https://github.com/alex-snezhko/grain/commit/17cb28d25f4b1f2cf8943429136c863f66447675)) +* **stdlib:** Use correct casing for BigInt module name ([2ff9d9e](https://github.com/alex-snezhko/grain/commit/2ff9d9ec49c727778c6d0ee74219f746df8a11e2)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/alex-snezhko/grain/issues/1301)) ([bad5897](https://github.com/alex-snezhko/grain/commit/bad5897062444ec4d4ace805adcd382725b86125)) + + +### Miscellaneous Chores + +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/alex-snezhko/grain/issues/1275)) ([df55898](https://github.com/alex-snezhko/grain/commit/df5589882d12ed35ba448de44e06f434bcf59b07)) +* **cli:** Simplify version output ([#1291](https://github.com/alex-snezhko/grain/issues/1291)) ([97f99f4](https://github.com/alex-snezhko/grain/commit/97f99f4a53c9434175d8bd8bac3c08cdd4257c77)) +* **compiler:** Add interface for compile module to hide resume ([d8ff903](https://github.com/alex-snezhko/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Disallow end-of-line before `=>` ([#1178](https://github.com/alex-snezhko/grain/issues/1178)) ([8261e73](https://github.com/alex-snezhko/grain/commit/8261e733c9345c690ffc107616512be4eb4c469e)) +* **compiler:** Optimize type metadata loading ([#1741](https://github.com/alex-snezhko/grain/issues/1741)) ([a4519bc](https://github.com/alex-snezhko/grain/commit/a4519bc88d9fe12159495e995fcaa74834d5a361)) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged ([#1268](https://github.com/alex-snezhko/grain/issues/1268)) ([1590a37](https://github.com/alex-snezhko/grain/commit/1590a37ca39e39ee40e0f27986fe8195458c3cb9)) +* **compiler:** Remove `--lsp` flag from grainc executable ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Remove built-in FileDescriptor type ([#1747](https://github.com/alex-snezhko/grain/issues/1747)) ([d40e84a](https://github.com/alex-snezhko/grain/commit/d40e84a74479dfb2676005e8496369d36e4eaaba)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) ([3ae8eaa](https://github.com/alex-snezhko/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Remove memory import from _genv ([#1830](https://github.com/alex-snezhko/grain/issues/1830)) ([c6693dd](https://github.com/alex-snezhko/grain/commit/c6693dde9ce99fc8606754b859a5cc41dda4a52f)) +* **compiler:** Remove recursive_types and principal config ([#1751](https://github.com/alex-snezhko/grain/issues/1751)) ([534bdca](https://github.com/alex-snezhko/grain/commit/534bdcafe463128eca499c558459a9882478fb2a)) +* **compiler:** Rename `_grainEnv` to `_genv` ([#1607](https://github.com/alex-snezhko/grain/issues/1607)) ([73c9499](https://github.com/alex-snezhko/grain/commit/73c94997c7bd08324398ea87498d2b498c5bf658)) +* **compiler:** Require floats always have a digit on left & right of dot ([#1703](https://github.com/alex-snezhko/grain/issues/1703)) ([b657e1c](https://github.com/alex-snezhko/grain/commit/b657e1cf68d4b20bfb06d662b1fc8687836e5104)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) ([ef4358f](https://github.com/alex-snezhko/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **graindoc:** Remove section attribute ([#1681](https://github.com/alex-snezhko/grain/issues/1681)) ([e969ad7](https://github.com/alex-snezhko/grain/commit/e969ad75e017785d12decbbf87651bd8c7dd286d)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Remove --parser-debug-level ([#1311](https://github.com/alex-snezhko/grain/issues/1311)) ([#1447](https://github.com/alex-snezhko/grain/issues/1447)) ([f78587a](https://github.com/alex-snezhko/grain/commit/f78587a734538d66dfae94abbb7566b25810352b)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) ([331ffc2](https://github.com/alex-snezhko/grain/commit/331ffc28b57e7e52fc9e360d1d85f81d3a172d06)) +* **stdlib:** Add type aliases to regex lib ([#1036](https://github.com/alex-snezhko/grain/issues/1036)) ([a926ea5](https://github.com/alex-snezhko/grain/commit/a926ea5cafa18e46487a585abbdf5460b15b4f48)) +* **stdlib:** Group mutable/immutable data structures ([#1652](https://github.com/alex-snezhko/grain/issues/1652)) ([f93afef](https://github.com/alex-snezhko/grain/commit/f93afef3785910ebbedcf780ce2d6109299c2e86)) +* **stdlib:** Remove `cons` and `empty` from Pervasives ([#1657](https://github.com/alex-snezhko/grain/issues/1657)) ([f6f02bc](https://github.com/alex-snezhko/grain/commit/f6f02bcb5a196f7f611ee6604f8585d429368314)) +* **stdlib:** Remove `sin`, `cos`, `tan`, `gamma`, `factorial` from `Number` module ([#2046](https://github.com/alex-snezhko/grain/issues/2046)) ([85c4389](https://github.com/alex-snezhko/grain/commit/85c4389dee9f0760e40639df5112294cb4cc44cb)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/alex-snezhko/grain/issues/1300)) ([9101615](https://github.com/alex-snezhko/grain/commit/9101615688f20310ae32573f93f36cfcf5c69be1)) +* **stdlib:** Replace bigint/number arithmetic functions with operators ([#1742](https://github.com/alex-snezhko/grain/issues/1742)) ([cbd46ee](https://github.com/alex-snezhko/grain/commit/cbd46ee99654d066690f1eb13bde8d882abed80f)) +* **stdlib:** Replace Number.nan & Number.infinity constants with keywords ([#1618](https://github.com/alex-snezhko/grain/issues/1618)) ([b437c13](https://github.com/alex-snezhko/grain/commit/b437c131aedcc4395080179b8e0d41ff6b2c95b2)) +* **stdlib:** Switch to using records for `getInternalStats` ([#1898](https://github.com/alex-snezhko/grain/issues/1898)) ([bdb119a](https://github.com/alex-snezhko/grain/commit/bdb119a8234409c5425a2f8678d53237eb7af850)) +* **stdlib:** Update Buffer/Bytes to use new integer types ([#1704](https://github.com/alex-snezhko/grain/issues/1704)) ([d508e5a](https://github.com/alex-snezhko/grain/commit/d508e5af7d66e8419370000030ee40194052301f)) +* **stdlib:** Update Operator `uint` operator Names ([#1738](https://github.com/alex-snezhko/grain/issues/1738)) ([decb053](https://github.com/alex-snezhko/grain/commit/decb0533e87cb8d617e27c0f5470a24c502dcfab)) +* **stdlib:** Use default arguments in more of stdlib ([#1772](https://github.com/alex-snezhko/grain/issues/1772)) ([f5e934f](https://github.com/alex-snezhko/grain/commit/f5e934fc658427b698cfb3919c9b2ac411a0ce45)) +* Switch from yarn to npm ([#1226](https://github.com/alex-snezhko/grain/issues/1226)) ([5ea9274](https://github.com/alex-snezhko/grain/commit/5ea92743a05fffb4298deda64100a3d7fc2259cb)) + ### [0.5.13](https://github.com/grain-lang/grain/compare/grain-v0.5.12...grain-v0.5.13) (2023-01-07) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 97a95d0623..a272e92020 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,5 +1,75 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/cli-v0.5.13...cli-v0.6.0) (2024-02-24) + + +### ⚠ BREAKING CHANGES + +* **cli:** Ensure `--use-start-section` can only be used with compile command ([#1871](https://github.com/alex-snezhko/grain/issues/1871)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) +* **compiler:** Enable tail calls by default ([#1589](https://github.com/alex-snezhko/grain/issues/1589)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) +* Remove --parser-debug-level ([#1311](https://github.com/alex-snezhko/grain/issues/1311)) (#1447) +* **compiler:** Remove `--lsp` flag from grainc executable +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/alex-snezhko/grain/issues/1131)) +* **cli:** Simplify version output ([#1291](https://github.com/alex-snezhko/grain/issues/1291)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/alex-snezhko/grain/issues/1285)) +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/alex-snezhko/grain/issues/1275)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/alex-snezhko/grain/issues/1270)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* Switch from yarn to npm ([#1226](https://github.com/alex-snezhko/grain/issues/1226)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) + +### Features + +* **ci:** Link all versions during release ([#1290](https://github.com/alex-snezhko/grain/issues/1290)) ([ceb8dac](https://github.com/alex-snezhko/grain/commit/ceb8dac2e3d3bf7eb92f91daf29173a779a4aa7e)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) ([fb8fbf2](https://github.com/alex-snezhko/grain/commit/fb8fbf2b8ca2a024e3983d25b52443337ec9746a)) +* **cli:** Improve error handling around `grain run` ([#1913](https://github.com/alex-snezhko/grain/issues/1913)) ([fc9b434](https://github.com/alex-snezhko/grain/commit/fc9b434995a5521b6346534afe58cd38fdd7c59e)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) ([0680826](https://github.com/alex-snezhko/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Allow importing a memory ([#1661](https://github.com/alex-snezhko/grain/issues/1661)) ([3140ba2](https://github.com/alex-snezhko/grain/commit/3140ba249f47de8e66af236ddc681f4e9f481e1b)) +* **compiler:** Consolidate exe & js modes ([fc61950](https://github.com/alex-snezhko/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Enable tail calls by default ([#1589](https://github.com/alex-snezhko/grain/issues/1589)) ([f6e5b00](https://github.com/alex-snezhko/grain/commit/f6e5b002475f62e04e9f1feb452ff8e9262dacbb)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) ([752da69](https://github.com/alex-snezhko/grain/commit/752da69057b2b06a1415710d6da93fbb948e8185)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/alex-snezhko/grain/issues/1270)) ([1a27c12](https://github.com/alex-snezhko/grain/commit/1a27c127e8f0318c21fec7ab358ee8e1ad2378e9)) +* **compiler:** Upgrade binaryen to 0.15.0 to support Mac M1 arch ([#1151](https://github.com/alex-snezhko/grain/issues/1151)) ([fc61950](https://github.com/alex-snezhko/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) ([0f681ea](https://github.com/alex-snezhko/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/alex-snezhko/grain/issues/1274)) ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/alex-snezhko/grain/issues/1131)) ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) ([e10d612](https://github.com/alex-snezhko/grain/commit/e10d61295c42237b7b472cd3c5d07f2c5f28d79b)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) ([114d17b](https://github.com/alex-snezhko/grain/commit/114d17be4463772bbc84ebc408e9cf2b482c6103)) + + +### Bug Fixes + +* **cli:** Correct typo in printing stack ([#1924](https://github.com/alex-snezhko/grain/issues/1924)) ([a4016f1](https://github.com/alex-snezhko/grain/commit/a4016f187e4d8148811459c0a8638c36bdff9349)) +* **cli:** Ensure `--use-start-section` can only be used with compile command ([#1871](https://github.com/alex-snezhko/grain/issues/1871)) ([d9227d7](https://github.com/alex-snezhko/grain/commit/d9227d7770b73338362d5699d2382e029fe3a5dc)) +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/alex-snezhko/grain/issues/1285)) ([1357e16](https://github.com/alex-snezhko/grain/commit/1357e162f7e939db21468186d16e6d720b557a57)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Increase JS stack size ([#1532](https://github.com/alex-snezhko/grain/issues/1532)) ([9d1ff1f](https://github.com/alex-snezhko/grain/commit/9d1ff1f427f2b2a92aa7958cf84b2d1026b1bac5)) +* **compiler:** Prevent stack overflows when compiling long blocks ([#1534](https://github.com/alex-snezhko/grain/issues/1534)) ([dc6d699](https://github.com/alex-snezhko/grain/commit/dc6d699cffeefa71ef2898c484f840c991f66c7a)) + + +### Miscellaneous Chores + +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/alex-snezhko/grain/issues/1275)) ([df55898](https://github.com/alex-snezhko/grain/commit/df5589882d12ed35ba448de44e06f434bcf59b07)) +* **cli:** Simplify version output ([#1291](https://github.com/alex-snezhko/grain/issues/1291)) ([97f99f4](https://github.com/alex-snezhko/grain/commit/97f99f4a53c9434175d8bd8bac3c08cdd4257c77)) +* **compiler:** Remove `--lsp` flag from grainc executable ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) ([ef4358f](https://github.com/alex-snezhko/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Remove --parser-debug-level ([#1311](https://github.com/alex-snezhko/grain/issues/1311)) ([#1447](https://github.com/alex-snezhko/grain/issues/1447)) ([f78587a](https://github.com/alex-snezhko/grain/commit/f78587a734538d66dfae94abbb7566b25810352b)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) ([331ffc2](https://github.com/alex-snezhko/grain/commit/331ffc28b57e7e52fc9e360d1d85f81d3a172d06)) +* Switch from yarn to npm ([#1226](https://github.com/alex-snezhko/grain/issues/1226)) ([5ea9274](https://github.com/alex-snezhko/grain/commit/5ea92743a05fffb4298deda64100a3d7fc2259cb)) + ### [0.5.13](https://github.com/grain-lang/grain/compare/cli-v0.5.12...cli-v0.5.13) (2023-01-07) diff --git a/cli/package.json b/cli/package.json index c52595a82a..e7d25dcd4b 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@grain/cli", - "version": "0.5.13", + "version": "0.6.0", "description": "A command line tool for the Grain language.", "main": "index.js", "engines": { @@ -34,7 +34,7 @@ }, "homepage": "https://github.com/grain-lang/grain#readme", "dependencies": { - "@grain/stdlib": "0.5.13", + "@grain/stdlib": "0.6.0", "commander": "^8.1.0" }, "devDependencies": { diff --git a/compiler/CHANGELOG.md b/compiler/CHANGELOG.md index bc9a4ef096..e510c6f9ea 100644 --- a/compiler/CHANGELOG.md +++ b/compiler/CHANGELOG.md @@ -1,5 +1,437 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/compiler-v0.5.13...compiler-v0.6.0) (2024-02-24) + + +### ⚠ BREAKING CHANGES + +* **compiler:** Update include syntax ([#2043](https://github.com/alex-snezhko/grain/issues/2043)) +* **stdlib:** Remove `sin`, `cos`, `tan`, `gamma`, `factorial` from `Number` module ([#2046](https://github.com/alex-snezhko/grain/issues/2046)) +* **compiler:** Update use syntax ([#2041](https://github.com/alex-snezhko/grain/issues/2041)) +* **grainfmt:** Implement new formatter ([#1976](https://github.com/alex-snezhko/grain/issues/1976)) +* **stdlib:** Use default arguments in more of stdlib ([#1772](https://github.com/alex-snezhko/grain/issues/1772)) +* **stdlib:** Add `print` suffix default argument ([#1768](https://github.com/alex-snezhko/grain/issues/1768)) +* **graindoc:** Allow `@since` and `@returns` once per export ([#1946](https://github.com/alex-snezhko/grain/issues/1946)) +* **graindoc:** Improve docgen for labeled & default arguments ([#1776](https://github.com/alex-snezhko/grain/issues/1776)) +* **stdlib:** Replace `Float64` arithmatic/comparison functions with operators ([#1957](https://github.com/alex-snezhko/grain/issues/1957)) +* **stdlib:** Replace `Float32` arithmatic/comparison functions with operators ([#1954](https://github.com/alex-snezhko/grain/issues/1954)) +* **stdlib:** Replace `Int64` arithmatic functions with operators ([#1935](https://github.com/alex-snezhko/grain/issues/1935)) +* **stdlib:** Replace `Int32` arithmatic functions with operators ([#1936](https://github.com/alex-snezhko/grain/issues/1936)) +* **stdlib:** Switch to using records for `getInternalStats` ([#1898](https://github.com/alex-snezhko/grain/issues/1898)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) +* **compiler:** Require `module` prefix on `use`/`provide` for modules ([#1868](https://github.com/alex-snezhko/grain/issues/1868)) +* **stdlib:** Reorder parameters to `List.insert` ([#1857](https://github.com/alex-snezhko/grain/issues/1857)) +* **stdlib:** Handle printing of reference cycles ([#1844](https://github.com/alex-snezhko/grain/issues/1844)) +* **compiler:** Change `->` to `=>` in type signatures ([#1855](https://github.com/alex-snezhko/grain/issues/1855)) +* **compiler:** Make types nonrecursive by default ([#1826](https://github.com/alex-snezhko/grain/issues/1826)) +* **compiler:** Remove static runtime pointers ([#1806](https://github.com/alex-snezhko/grain/issues/1806)) +* **compiler:** Remove memory import from _genv ([#1830](https://github.com/alex-snezhko/grain/issues/1830)) +* **compiler:** Changed comma to `and` in mutually rec types +* **compiler:** Changed comma to `and` in recursive types and bindings ([#1827](https://github.com/alex-snezhko/grain/issues/1827)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) +* **stdlib:** Replace `Result`/`Option` `and`/`or` functions with operators ([#1821](https://github.com/alex-snezhko/grain/issues/1821)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) +* **stdlib:** Ensure `Array.fillRange` works with negative indexing & throws IndexOutOfBound ([#1761](https://github.com/alex-snezhko/grain/issues/1761)) +* **compiler:** Disallow enum variants with parens but no types ([#1809](https://github.com/alex-snezhko/grain/issues/1809)) +* **stdlib:** Remove extra space when converting Bytes to String ([#1800](https://github.com/alex-snezhko/grain/issues/1800)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) +* **stdlib:** Use Array length as default end in `Array.slice` function ([#1762](https://github.com/alex-snezhko/grain/issues/1762)) +* **compiler:** Remove recursive_types and principal config ([#1751](https://github.com/alex-snezhko/grain/issues/1751)) +* **stdlib:** Use String length as default end in `String.slice` function ([#1748](https://github.com/alex-snezhko/grain/issues/1748)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) +* **stdlib:** Group mutable/immutable data structures ([#1652](https://github.com/alex-snezhko/grain/issues/1652)) +* **compiler:** Optimize type metadata loading ([#1741](https://github.com/alex-snezhko/grain/issues/1741)) +* **compiler:** Labeled and default arguments ([#1623](https://github.com/alex-snezhko/grain/issues/1623)) +* **compiler:** Remove built-in FileDescriptor type ([#1747](https://github.com/alex-snezhko/grain/issues/1747)) +* **compiler:** Enable tail calls by default ([#1589](https://github.com/alex-snezhko/grain/issues/1589)) +* **stdlib:** Replace bigint/number arithmetic functions with operators ([#1742](https://github.com/alex-snezhko/grain/issues/1742)) +* **stdlib:** Update Operator `uint` operator Names ([#1738](https://github.com/alex-snezhko/grain/issues/1738)) +* **stdlib:** Provide empty byte array from Bytes.make ([#1729](https://github.com/alex-snezhko/grain/issues/1729)) +* **stdlib:** Add optimization for `Number.pow(Rational, Int)` ([#1716](https://github.com/alex-snezhko/grain/issues/1716)) +* **compiler:** Custom box printing ([#1713](https://github.com/alex-snezhko/grain/issues/1713)) +* **stdlib:** Update Buffer/Bytes to use new integer types ([#1704](https://github.com/alex-snezhko/grain/issues/1704)) +* **compiler:** Require floats always have a digit on left & right of dot ([#1703](https://github.com/alex-snezhko/grain/issues/1703)) +* **compiler:** Remove 32-bit numbers from `Number` type ([#1683](https://github.com/alex-snezhko/grain/issues/1683)) +* **compiler:** Short integer values ([#1669](https://github.com/alex-snezhko/grain/issues/1669)) +* **compiler:** Supply primitive types via the compiler ([#1667](https://github.com/alex-snezhko/grain/issues/1667)) +* **compiler:** Allocate closures only when necessary ([#1660](https://github.com/alex-snezhko/grain/issues/1660)) +* **stdlib:** Add `**` (pow) operator to Pervasives module ([#1690](https://github.com/alex-snezhko/grain/issues/1690)) +* **compiler:** Remove Exclusive/Inclusive Ranges, provide as record via compiler ([#1616](https://github.com/alex-snezhko/grain/issues/1616)) +* **stdlib:** Make queue and stack mutable & provide Immutable submodules ([#1479](https://github.com/alex-snezhko/grain/issues/1479)) +* **compiler:** Disallow multiple `provide`s of the same value ([#1689](https://github.com/alex-snezhko/grain/issues/1689)) +* **graindoc:** Only use original doc blocks when re-providing ([#1687](https://github.com/alex-snezhko/grain/issues/1687)) +* **graindoc:** Support docblocks on submodules ([#1684](https://github.com/alex-snezhko/grain/issues/1684)) +* **graindoc:** Remove section attribute ([#1681](https://github.com/alex-snezhko/grain/issues/1681)) +* **compiler:** Explicit abstract types ([#1680](https://github.com/alex-snezhko/grain/issues/1680)) +* **compiler:** Add Uint32 and Uint64 types ([#1531](https://github.com/alex-snezhko/grain/issues/1531)) +* **stdlib:** Remove `cons` and `empty` from Pervasives ([#1657](https://github.com/alex-snezhko/grain/issues/1657)) +* **stdlib:** Sys/File reading and writing operate on Bytes ([#1655](https://github.com/alex-snezhko/grain/issues/1655)) +* **compiler:** Make List a language-supplied type ([#1648](https://github.com/alex-snezhko/grain/issues/1648)) +* **stdlib:** Use correct casing for BigInt module name +* **graindoc:** Replace module attribute with docblock on module header ([#1647](https://github.com/alex-snezhko/grain/issues/1647)) +* **compiler:** Apply correct rules for parsing Unicode whitespace ([#1554](https://github.com/alex-snezhko/grain/issues/1554)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) +* **compiler:** Change Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) +* **compiler:** Inline record constructors ([#1586](https://github.com/alex-snezhko/grain/issues/1586)) +* **stdlib:** Replace Number.nan & Number.infinity constants with keywords ([#1618](https://github.com/alex-snezhko/grain/issues/1618)) +* **compiler:** Remove support of single-argument tuples ([#1608](https://github.com/alex-snezhko/grain/issues/1608)) +* **compiler:** Rename `_grainEnv` to `_genv` ([#1607](https://github.com/alex-snezhko/grain/issues/1607)) +* **compiler:** Add `yield` and `macro` reserved keywords ([#1471](https://github.com/alex-snezhko/grain/issues/1471)) +* **compiler:** Implement `Infinity` and `NaN` syntax ([#1472](https://github.com/alex-snezhko/grain/issues/1472)) +* **stdlib:** `List.rotate` wraparound for count > length ([#1558](https://github.com/alex-snezhko/grain/issues/1558)) +* **compiler:** Early return ([#1464](https://github.com/alex-snezhko/grain/issues/1464)) +* **compiler:** Include Option and Result as language-supplied types ([#1591](https://github.com/alex-snezhko/grain/issues/1591)) +* **stdlib:** Change array rotation direction ([#1552](https://github.com/alex-snezhko/grain/issues/1552)) +* **stdlib:** Support zipping arrays of different sizes ([#1402](https://github.com/alex-snezhko/grain/issues/1402)) +* Remove --parser-debug-level ([#1311](https://github.com/alex-snezhko/grain/issues/1311)) (#1447) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/alex-snezhko/grain/issues/1301)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/alex-snezhko/grain/issues/1300)) +* **compiler:** Remove `--lsp` flag from grainc executable +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/alex-snezhko/grain/issues/1131)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/alex-snezhko/grain/issues/1285)) +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/alex-snezhko/grain/issues/1275)) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged ([#1268](https://github.com/alex-snezhko/grain/issues/1268)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/alex-snezhko/grain/issues/1270)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/alex-snezhko/grain/issues/1167)) +* Switch from yarn to npm ([#1226](https://github.com/alex-snezhko/grain/issues/1226)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) +* **compiler:** Selectively include functions in the global function table ([#1183](https://github.com/alex-snezhko/grain/issues/1183)) +* **compiler:** Add interface for compile module to hide resume +* **compiler:** Disallow end-of-line before `=>` ([#1178](https://github.com/alex-snezhko/grain/issues/1178)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/alex-snezhko/grain/issues/1103)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/alex-snezhko/grain/issues/1136)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) + +### Features + +* Add `exception` opentype implementation to `Oprint` ([#1896](https://github.com/alex-snezhko/grain/issues/1896)) ([51d53f7](https://github.com/alex-snezhko/grain/commit/51d53f7e1f3f3bdb6508a8ad925887f9854cd84f)) +* Add Hex Exponent Decimals ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) ([fb8fbf2](https://github.com/alex-snezhko/grain/commit/fb8fbf2b8ca2a024e3983d25b52443337ec9746a)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) ([0680826](https://github.com/alex-snezhko/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add `[@unsafe](https://github.com/unsafe)` attribute for low-level code ([#1074](https://github.com/alex-snezhko/grain/issues/1074)) ([212faca](https://github.com/alex-snezhko/grain/commit/212faca9a8363002cfc0cb4e3ea293180cbe5b1c)) +* **compiler:** Add `magic` primitive ([#1766](https://github.com/alex-snezhko/grain/issues/1766)) ([a28ebb4](https://github.com/alex-snezhko/grain/commit/a28ebb4e7404b3badb01dad40dc74c2919a4f79b)) +* **compiler:** Add `yield` and `macro` reserved keywords ([#1471](https://github.com/alex-snezhko/grain/issues/1471)) ([f0e29c5](https://github.com/alex-snezhko/grain/commit/f0e29c5e6d2fc3a4deb884816014fa4d90ee8f1b)) +* **compiler:** Add ability to match on low level wasm types ([#1588](https://github.com/alex-snezhko/grain/issues/1588)) ([0d30888](https://github.com/alex-snezhko/grain/commit/0d3088846bcf865d8c3aa4298db9148b071664fc)) +* **compiler:** Add hex float syntax ([#1743](https://github.com/alex-snezhko/grain/issues/1743)) ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **compiler:** Add stack allocation information to small ints ([#1780](https://github.com/alex-snezhko/grain/issues/1780)) ([6f1a1a9](https://github.com/alex-snezhko/grain/commit/6f1a1a9adf2b7a9e732f7503a0955938c6e65543)) +* **compiler:** Add Uint32 and Uint64 types ([#1531](https://github.com/alex-snezhko/grain/issues/1531)) ([42ffdc4](https://github.com/alex-snezhko/grain/commit/42ffdc408096901696abb6e3fa862b65d3d7e2a2)) +* **compiler:** Add warning for calls to IntXX.fromNumber and FloatXX.fromNumber with literal integers/floats ([#1218](https://github.com/alex-snezhko/grain/issues/1218)) ([2fb86e5](https://github.com/alex-snezhko/grain/commit/2fb86e538a9d38241d6c149cec1a290817795b4b)) +* **compiler:** Allocate closures only when necessary ([#1660](https://github.com/alex-snezhko/grain/issues/1660)) ([c40df12](https://github.com/alex-snezhko/grain/commit/c40df12b95f6f3a74bf89d637d60c64714b1d31e)) +* **compiler:** Allow a newline character after 'as' when aliasing ([#1641](https://github.com/alex-snezhko/grain/issues/1641)) ([2719034](https://github.com/alex-snezhko/grain/commit/27190343160fe99957a9ca7169c48c0d673c81ef)) +* **compiler:** Allow arrays to do binary operation assignment ([#1928](https://github.com/alex-snezhko/grain/issues/1928)) ([8a335ae](https://github.com/alex-snezhko/grain/commit/8a335ae1e3d9874131f1c6402e3bc4de6a9cfdb3)) +* **compiler:** Allow compilation of empty programs ([#1336](https://github.com/alex-snezhko/grain/issues/1336)) ([32df14b](https://github.com/alex-snezhko/grain/commit/32df14b33325c39fd98c452fc2687b788ec35264)) +* **compiler:** Allow custom infix operators ([#1419](https://github.com/alex-snezhko/grain/issues/1419)) ([cc9b8b5](https://github.com/alex-snezhko/grain/commit/cc9b8b5f251268c59ff6739436bd3b8881e8fd56)) +* **compiler:** Allow function re-exports to use regular call instruction ([#1176](https://github.com/alex-snezhko/grain/issues/1176)) ([afce3aa](https://github.com/alex-snezhko/grain/commit/afce3aaa5382cde54b1e8fd9be3d2ee86daedbbb)) +* **compiler:** Allow importing a memory ([#1661](https://github.com/alex-snezhko/grain/issues/1661)) ([3140ba2](https://github.com/alex-snezhko/grain/commit/3140ba249f47de8e66af236ddc681f4e9f481e1b)) +* **compiler:** Allow lists and arrays on the left side of access expressions ([#1557](https://github.com/alex-snezhko/grain/issues/1557)) ([8c00750](https://github.com/alex-snezhko/grain/commit/8c00750c099587f8131ea30e346841137c52bd83)) +* **compiler:** Allow newline in or-patterns ([#1323](https://github.com/alex-snezhko/grain/issues/1323)) ([8fe8247](https://github.com/alex-snezhko/grain/commit/8fe8247ec6c08e04575b42281716eb34c46af97f)) +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/alex-snezhko/grain/issues/1167)) ([6f34de2](https://github.com/alex-snezhko/grain/commit/6f34de214b28358ea1df553685fa3a19336ddba9)) +* **compiler:** Bytes literals ([#1662](https://github.com/alex-snezhko/grain/issues/1662)) ([3d8e4c5](https://github.com/alex-snezhko/grain/commit/3d8e4c5ee074e393eebeed82d2c4bd0590a0ad31)) +* **compiler:** Cache parsetrees during compilation process ([#1548](https://github.com/alex-snezhko/grain/issues/1548)) ([7b53aab](https://github.com/alex-snezhko/grain/commit/7b53aaba74c6eb809cddcde5374f63eaa4a00d36)) +* **compiler:** Call known functions across module boundaries ([#1175](https://github.com/alex-snezhko/grain/issues/1175)) ([b2d7440](https://github.com/alex-snezhko/grain/commit/b2d744034ec7e0601554531c910e9d0f5451d464)) +* **compiler:** Change `->` to `=>` in type signatures ([#1855](https://github.com/alex-snezhko/grain/issues/1855)) ([b3d68a4](https://github.com/alex-snezhko/grain/commit/b3d68a4f2e99222a69d7066164892077f83ebf8c)) +* **compiler:** Change Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) ([58c9a51](https://github.com/alex-snezhko/grain/commit/58c9a5145a6c1c53e280657e4e41f79f2662eb8a)) +* **compiler:** Changed comma to `and` in mutually rec types ([923625d](https://github.com/alex-snezhko/grain/commit/923625dfaf276be894546e67db66a17d00df9f14)) +* **compiler:** Changed comma to `and` in recursive types and bindings ([#1827](https://github.com/alex-snezhko/grain/issues/1827)) ([923625d](https://github.com/alex-snezhko/grain/commit/923625dfaf276be894546e67db66a17d00df9f14)) +* **compiler:** Cleaner wasm output for low-level wasm types ([#1158](https://github.com/alex-snezhko/grain/issues/1158)) ([88060dd](https://github.com/alex-snezhko/grain/commit/88060ddb8119e2998d91f4d6770a1cfd101936cf)) +* **compiler:** Consolidate exe & js modes ([fc61950](https://github.com/alex-snezhko/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Convert `runtime/dataStructures.gr` to primitives ([#1145](https://github.com/alex-snezhko/grain/issues/1145)) ([2d43b28](https://github.com/alex-snezhko/grain/commit/2d43b286141df75f6b92300e48d2bc4804014872)) +* **compiler:** Custom box printing ([#1713](https://github.com/alex-snezhko/grain/issues/1713)) ([3c86e45](https://github.com/alex-snezhko/grain/commit/3c86e459235ad9bf0abbefb575021736ad45f310)) +* **compiler:** Don't close over global values ([#1134](https://github.com/alex-snezhko/grain/issues/1134)) ([e8caec6](https://github.com/alex-snezhko/grain/commit/e8caec6c2a5892e955c8827b18d8d436bebe6073)) +* **compiler:** Early return ([#1464](https://github.com/alex-snezhko/grain/issues/1464)) ([1bffc82](https://github.com/alex-snezhko/grain/commit/1bffc821002e10c6fcbfb0fcf65750cda5c1e29f)) +* **compiler:** Enable tail calls by default ([#1589](https://github.com/alex-snezhko/grain/issues/1589)) ([f6e5b00](https://github.com/alex-snezhko/grain/commit/f6e5b002475f62e04e9f1feb452ff8e9262dacbb)) +* **compiler:** Explicit abstract types ([#1680](https://github.com/alex-snezhko/grain/issues/1680)) ([58cd224](https://github.com/alex-snezhko/grain/commit/58cd2247441f16cfc95b415ad272da7a37b82fb5)) +* **compiler:** Implement `Infinity` and `NaN` syntax ([#1472](https://github.com/alex-snezhko/grain/issues/1472)) ([74a196d](https://github.com/alex-snezhko/grain/commit/74a196d947dea8a31e3f80154f952903f1f8bb89)) +* **compiler:** Include Option and Result as language-supplied types ([#1591](https://github.com/alex-snezhko/grain/issues/1591)) ([bd5403f](https://github.com/alex-snezhko/grain/commit/bd5403f94f30366adc7d3307adc3c6c4fa5e1803)) +* **compiler:** Inline record constructors ([#1586](https://github.com/alex-snezhko/grain/issues/1586)) ([43082f5](https://github.com/alex-snezhko/grain/commit/43082f52692d90b1419b6b72ebe66406a0a01d99)) +* **compiler:** Labeled and default arguments ([#1623](https://github.com/alex-snezhko/grain/issues/1623)) ([28a38ac](https://github.com/alex-snezhko/grain/commit/28a38ac149d396cd034b6c53b0aa3eb478ed29ed)) +* **compiler:** Lower stack usage ([#1542](https://github.com/alex-snezhko/grain/issues/1542)) ([ef43141](https://github.com/alex-snezhko/grain/commit/ef431412c310b4adffa4b5786581a6b18942a32e)) +* **compiler:** Make List a language-supplied type ([#1648](https://github.com/alex-snezhko/grain/issues/1648)) ([2ee1328](https://github.com/alex-snezhko/grain/commit/2ee13282427718d8849a334d085a3f833037127b)) +* **compiler:** Make types nonrecursive by default ([#1826](https://github.com/alex-snezhko/grain/issues/1826)) ([46b8a5a](https://github.com/alex-snezhko/grain/commit/46b8a5aaa384eb52b34b82faea5b0a06adc22568)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) ([752da69](https://github.com/alex-snezhko/grain/commit/752da69057b2b06a1415710d6da93fbb948e8185)) +* **compiler:** Name globals in wasm output ([#1184](https://github.com/alex-snezhko/grain/issues/1184)) ([51170e7](https://github.com/alex-snezhko/grain/commit/51170e7c892680f9c730b7f93cf744ffd6b7c15a)) +* **compiler:** Perform partial match checking on `let` bindings ([#1486](https://github.com/alex-snezhko/grain/issues/1486)) ([3678eb5](https://github.com/alex-snezhko/grain/commit/3678eb5dc4c4ef199c1313f8f280ce3de458005a)) +* **compiler:** Propagate attribute locations to Anftree ([#1642](https://github.com/alex-snezhko/grain/issues/1642)) ([cce2821](https://github.com/alex-snezhko/grain/commit/cce2821e3b4bedbe8eef5a9814fed3eb24d7eccd)) +* **compiler:** Providing, including, reproviding exceptions ([#1849](https://github.com/alex-snezhko/grain/issues/1849)) ([687e747](https://github.com/alex-snezhko/grain/commit/687e747fb5d4c242d3bfceec6541ade58f6863a8)) +* **compiler:** Rational number type ([#1603](https://github.com/alex-snezhko/grain/issues/1603)) ([350f850](https://github.com/alex-snezhko/grain/commit/350f8503c3e6976275aaa8ee4d8c02554e7c238a)) +* **compiler:** Record spread syntax ([#1565](https://github.com/alex-snezhko/grain/issues/1565)) ([ab60e12](https://github.com/alex-snezhko/grain/commit/ab60e1269f008daf1af343364e706312060a9122)) +* **compiler:** Reduce closure sizes by utilizing `$self` argument when possible ([#1152](https://github.com/alex-snezhko/grain/issues/1152)) ([ba6a84c](https://github.com/alex-snezhko/grain/commit/ba6a84cea191cf3c7932287c29b198001d490146)) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) ([8d465b7](https://github.com/alex-snezhko/grain/commit/8d465b7cd73d9549eeb89c7d52083d592ebd66fd)) +* **compiler:** Refactor exports ([#1244](https://github.com/alex-snezhko/grain/issues/1244)) ([4637667](https://github.com/alex-snezhko/grain/commit/4637667cd669c0988cd01c2957534c6a35a3146c)) +* **compiler:** Remove 32-bit numbers from `Number` type ([#1683](https://github.com/alex-snezhko/grain/issues/1683)) ([50bf8ee](https://github.com/alex-snezhko/grain/commit/50bf8ee39d017805091fe1ae7536621e956c03ce)) +* **compiler:** Remove Exclusive/Inclusive Ranges, provide as record via compiler ([#1616](https://github.com/alex-snezhko/grain/issues/1616)) ([49a399d](https://github.com/alex-snezhko/grain/commit/49a399dbcfc24957a3875ae094ad0a2c4b636a32)) +* **compiler:** Remove Pervasives' dependency on toString when types are elided ([#1664](https://github.com/alex-snezhko/grain/issues/1664)) ([f703476](https://github.com/alex-snezhko/grain/commit/f703476db8d376d68a1c50fece48f335f455a791)) +* **compiler:** Remove support of single-argument tuples ([#1608](https://github.com/alex-snezhko/grain/issues/1608)) ([509cd85](https://github.com/alex-snezhko/grain/commit/509cd85801eb165c0ce65347047a0380f2304b25)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/alex-snezhko/grain/issues/1270)) ([1a27c12](https://github.com/alex-snezhko/grain/commit/1a27c127e8f0318c21fec7ab358ee8e1ad2378e9)) +* **compiler:** Require `module` prefix on `use`/`provide` for modules ([#1868](https://github.com/alex-snezhko/grain/issues/1868)) ([5efb54c](https://github.com/alex-snezhko/grain/commit/5efb54c199e674a3715779f97239b7b47744d88f)) +* **compiler:** Selectively include functions in the global function table ([#1183](https://github.com/alex-snezhko/grain/issues/1183)) ([67575f7](https://github.com/alex-snezhko/grain/commit/67575f712557bc36531f6e40044d1bbfff2454ff)) +* **compiler:** Short integer values ([#1669](https://github.com/alex-snezhko/grain/issues/1669)) ([fc4670d](https://github.com/alex-snezhko/grain/commit/fc4670de13c46dfac3def1ca59d718ffb36aca1c)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/alex-snezhko/grain/issues/1103)) ([095385e](https://github.com/alex-snezhko/grain/commit/095385e7c67bbc7a417a21acaf6f1c498c75ce63)) +* **compiler:** Streamlined reference counting ([#1714](https://github.com/alex-snezhko/grain/issues/1714)) ([0711868](https://github.com/alex-snezhko/grain/commit/071186801ccf7f6dc3eef653382f6d82b8b23b6c)) +* **compiler:** Supply primitive types via the compiler ([#1667](https://github.com/alex-snezhko/grain/issues/1667)) ([b41feb7](https://github.com/alex-snezhko/grain/commit/b41feb73976d4ef3d9c17c31f0dbcfc22df32d9d)) +* **compiler:** Support pattern aliases ([#1174](https://github.com/alex-snezhko/grain/issues/1174)) ([9ed093b](https://github.com/alex-snezhko/grain/commit/9ed093be353895bdde8282ee1681089d5fac68ab)) +* **compiler:** Support pattern matching "or" patterns ([#1173](https://github.com/alex-snezhko/grain/issues/1173)) ([0fb29c4](https://github.com/alex-snezhko/grain/commit/0fb29c4016e1b24b9e3b3b640cc9914b921ec376)) +* **compiler:** Support record field updating assignment ([#1320](https://github.com/alex-snezhko/grain/issues/1320)) ([cc5519c](https://github.com/alex-snezhko/grain/commit/cc5519ce36418623b05d297d577c2325ad9cbc7a)) +* **compiler:** Suppress warnings about using fromNumber for Int32/64 and Float32/64 tests ([#1638](https://github.com/alex-snezhko/grain/issues/1638)) ([b687e31](https://github.com/alex-snezhko/grain/commit/b687e31d6e5d82260cb31f355253934da407d3c5)) +* **compiler:** Unicode-aware lexing ([#1342](https://github.com/alex-snezhko/grain/issues/1342)) ([6dc0dd1](https://github.com/alex-snezhko/grain/commit/6dc0dd1bc80bbfa9da41f82e9f89569d5f0e6d01)) +* **compiler:** Update include syntax ([#2043](https://github.com/alex-snezhko/grain/issues/2043)) ([5f44d4e](https://github.com/alex-snezhko/grain/commit/5f44d4e5a1cd432faddcfb1a138ac6a7797423fd)) +* **compiler:** Update use syntax ([#2041](https://github.com/alex-snezhko/grain/issues/2041)) ([cd346ab](https://github.com/alex-snezhko/grain/commit/cd346ab761aaa5e8e7692ebce1bae4e5e7e47f45)) +* **compiler:** Upgrade binaryen to 0.15.0 to support Mac M1 arch ([#1151](https://github.com/alex-snezhko/grain/issues/1151)) ([fc61950](https://github.com/alex-snezhko/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Use symbol for equals sign ([#1128](https://github.com/alex-snezhko/grain/issues/1128)) ([3d7fc57](https://github.com/alex-snezhko/grain/commit/3d7fc5742ad3016d60e14112fdd68de02fc147f1)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) ([0f681ea](https://github.com/alex-snezhko/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **graindoc:** Add attribute for exceptions that may be thrown ([#1492](https://github.com/alex-snezhko/grain/issues/1492)) ([b2e75c7](https://github.com/alex-snezhko/grain/commit/b2e75c7452ef2544c768729c7a45e21ff31616d0)) +* **graindoc:** Add test harness ([#1767](https://github.com/alex-snezhko/grain/issues/1767)) ([8a93ebe](https://github.com/alex-snezhko/grain/commit/8a93ebeebafe5938448e7e2968c6a48b90d43e3c)) +* **graindoc:** Allow `[@since](https://github.com/since)` and `[@returns](https://github.com/returns)` once per export ([#1946](https://github.com/alex-snezhko/grain/issues/1946)) ([ad977aa](https://github.com/alex-snezhko/grain/commit/ad977aa3aa191692606e59e4971f93058ede42c9)) +* **graindoc:** Allow directory input & output ([#1263](https://github.com/alex-snezhko/grain/issues/1263)) ([d4cb8ab](https://github.com/alex-snezhko/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **graindoc:** Allow doc comments on variants and record fields ([#1852](https://github.com/alex-snezhko/grain/issues/1852)) ([53f770c](https://github.com/alex-snezhko/grain/commit/53f770c24ef9057b7b5e63d3dda75b166c28536d)) +* **graindoc:** Improve docgen for labeled & default arguments ([#1776](https://github.com/alex-snezhko/grain/issues/1776)) ([be7ff9d](https://github.com/alex-snezhko/grain/commit/be7ff9d9ec2237ad5028f8d9e3e2f10a6bd3f9dd)) +* **graindoc:** Only use original doc blocks when re-providing ([#1687](https://github.com/alex-snezhko/grain/issues/1687)) ([97c7ce4](https://github.com/alex-snezhko/grain/commit/97c7ce4dfb7e4474358a62c3699dd3edc121c961)) +* **graindoc:** Refactored Graindoc parser ([#1658](https://github.com/alex-snezhko/grain/issues/1658)) ([b447ced](https://github.com/alex-snezhko/grain/commit/b447cedc648ece5c5c892ff66172d2f264831647)) +* **graindoc:** Replace module attribute with docblock on module header ([#1647](https://github.com/alex-snezhko/grain/issues/1647)) ([2ff9d9e](https://github.com/alex-snezhko/grain/commit/2ff9d9ec49c727778c6d0ee74219f746df8a11e2)) +* **graindoc:** Support deprecations on module docblocks ([#1498](https://github.com/alex-snezhko/grain/issues/1498)) ([b3dc85c](https://github.com/alex-snezhko/grain/commit/b3dc85c0fc311479de4e57774a075c3a922216ba)) +* **graindoc:** Support docblocks on submodules ([#1684](https://github.com/alex-snezhko/grain/issues/1684)) ([bc13017](https://github.com/alex-snezhko/grain/commit/bc1301751c90380e53c0ca9048a928468245d13c)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/alex-snezhko/grain/issues/1274)) ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Implement new formatter ([#1976](https://github.com/alex-snezhko/grain/issues/1976)) ([1568aa0](https://github.com/alex-snezhko/grain/commit/1568aa06f625c4d91d9151e3f969ec648e8d4231)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainlsp:** Implement goto definition ([#1787](https://github.com/alex-snezhko/grain/issues/1787)) ([3cb862a](https://github.com/alex-snezhko/grain/commit/3cb862a9b7c046aeab22796ebd88de63d4853525)) +* **grainlsp:** Implement inlay hints for module includes ([#1793](https://github.com/alex-snezhko/grain/issues/1793)) ([408da76](https://github.com/alex-snezhko/grain/commit/408da761bd5945892ea19bb21833a15c1506cf6d)) +* **grainlsp:** Provide hovers on use statements ([#1688](https://github.com/alex-snezhko/grain/issues/1688)) ([c5cd21f](https://github.com/alex-snezhko/grain/commit/c5cd21fc3a6b703bb9de2c7a4c7834bd27a743a9)) +* Implement Pervasives.compare ([#1399](https://github.com/alex-snezhko/grain/issues/1399)) ([ebd87e4](https://github.com/alex-snezhko/grain/commit/ebd87e4308a8950fd95f060ebc446833b064237c)) +* **lsp:** Add hover for submodules ([#2028](https://github.com/alex-snezhko/grain/issues/2028)) ([85d8768](https://github.com/alex-snezhko/grain/commit/85d876864b7ae5d69609138b1a33904689347743)) +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/alex-snezhko/grain/issues/1131)) ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **lsp:** Support goto definition on exceptions ([#1895](https://github.com/alex-snezhko/grain/issues/1895)) ([218b2f0](https://github.com/alex-snezhko/grain/commit/218b2f0f7f5f69d81c111abf9cbc2656e60a18be)) +* **lsp:** Support hover on `include` statements ([#1963](https://github.com/alex-snezhko/grain/issues/1963)) ([b6e1570](https://github.com/alex-snezhko/grain/commit/b6e15705c218b1f42b71da15e045e6472fad43cb)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) ([e10d612](https://github.com/alex-snezhko/grain/commit/e10d61295c42237b7b472cd3c5d07f2c5f28d79b)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **runtime:** Allow modulo on floating point numbers ([#1914](https://github.com/alex-snezhko/grain/issues/1914)) ([f90d8af](https://github.com/alex-snezhko/grain/commit/f90d8af2ee2373b5420655c9e80826f56fffaa91)) +* **runtime:** Optimize simple number comparison ([f7ceae7](https://github.com/alex-snezhko/grain/commit/f7ceae729260bc3c5eee017954aa7e242c3f8cb5)) +* **stdlib:** `List.rotate` wraparound for count > length ([#1558](https://github.com/alex-snezhko/grain/issues/1558)) ([6dd9680](https://github.com/alex-snezhko/grain/commit/6dd968009b5d700f2e31ed6f4b1074dbdc4299e7)) +* **stdlib:** Add `**` (pow) operator to Pervasives module ([#1690](https://github.com/alex-snezhko/grain/issues/1690)) ([b16b455](https://github.com/alex-snezhko/grain/commit/b16b4552952fd554657ac1b5bcc868dca0600476)) +* **stdlib:** Add `**` operator to `Int32` module ([#1938](https://github.com/alex-snezhko/grain/issues/1938)) ([32b9639](https://github.com/alex-snezhko/grain/commit/32b9639be58408d587f9c9c29a4b56857e6f328f)) +* **stdlib:** Add `**` operator to `Int64` module ([#1937](https://github.com/alex-snezhko/grain/issues/1937)) ([48de28b](https://github.com/alex-snezhko/grain/commit/48de28bba8be2e157cfb82e90e709759659ab3b4)) +* **stdlib:** Add `==` operator to `Queue` module ([#1931](https://github.com/alex-snezhko/grain/issues/1931)) ([3c0ea18](https://github.com/alex-snezhko/grain/commit/3c0ea189298d9bc4f14824a76814e9181e57a879)) +* **stdlib:** Add `addCharFromCodePoint` to Buffer module ([#1883](https://github.com/alex-snezhko/grain/issues/1883)) ([18b553a](https://github.com/alex-snezhko/grain/commit/18b553a6f69876941bc7153c4e44d4db5547d86b)) +* **stdlib:** Add `asin`, `acos`, `atan`, `isClose` to Number module ([#1699](https://github.com/alex-snezhko/grain/issues/1699)) ([353b544](https://github.com/alex-snezhko/grain/commit/353b544948861d39cbeef97273f661eed2e9748d)) +* **stdlib:** Add `charCodeAt` function to String module ([#1376](https://github.com/alex-snezhko/grain/issues/1376)) ([c3abbc9](https://github.com/alex-snezhko/grain/commit/c3abbc991c8b05e3de20e670d2bc3e491feebf8a)) +* **stdlib:** Add `chunk` function to Array module ([#1708](https://github.com/alex-snezhko/grain/issues/1708)) ([fba7c1d](https://github.com/alex-snezhko/grain/commit/fba7c1d18447917d7544e780353684452321b38e)) +* **stdlib:** Add `empty` constant to ImmutablePriorityQueue module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `empty` constant to Queue module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `empty` constant to Stack module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `exp` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `factorial` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `fromArray` to `Queue` module ([#1932](https://github.com/alex-snezhko/grain/issues/1932)) ([1c35a94](https://github.com/alex-snezhko/grain/commit/1c35a9438008d40c8d3a49810131c69d9b8b97a0)) +* **stdlib:** Add `gamma` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `ImmutableArray` module ([#1477](https://github.com/alex-snezhko/grain/issues/1477)) ([a34d8b9](https://github.com/alex-snezhko/grain/commit/a34d8b9e8ce629c40d65b99561c0f41fa400542e)) +* **stdlib:** Add `infinity` constant to the Number module ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Add `isEmpty` to `List` module ([#1860](https://github.com/alex-snezhko/grain/issues/1860)) ([7362189](https://github.com/alex-snezhko/grain/commit/736218950e7433512554f1b5fea4bc5cbfe97160)) +* **stdlib:** add `isEmpty` to `String` module ([#1861](https://github.com/alex-snezhko/grain/issues/1861)) ([e8cb932](https://github.com/alex-snezhko/grain/commit/e8cb93298cf8776876efc7972f09f0eef2d57c58)) +* **stdlib:** Add `lastIndexOf` function to String module ([#1372](https://github.com/alex-snezhko/grain/issues/1372)) ([b73d9bf](https://github.com/alex-snezhko/grain/commit/b73d9bf9ff3291b83e6f4263e392395d04dc9995)) +* **stdlib:** Add `linearInterpolate`, `linearMap` and `clamp` ([#1707](https://github.com/alex-snezhko/grain/issues/1707)) ([15842a1](https://github.com/alex-snezhko/grain/commit/15842a1030e9c0937d7cd697508b083ae06315a7)) +* **stdlib:** Add `nan` constant to the Number module ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Add `parse` function to Number module ([#1517](https://github.com/alex-snezhko/grain/issues/1517)) ([59e89d1](https://github.com/alex-snezhko/grain/commit/59e89d12b7fcf2626c8adb45c742a787171b7024)) +* **stdlib:** Add `parseFloat` function to Number module ([#1288](https://github.com/alex-snezhko/grain/issues/1288)) ([e21f2b1](https://github.com/alex-snezhko/grain/commit/e21f2b137f7dcd67cccf9debf695db852dc2afc5)) +* **stdlib:** Add `pow` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `print` suffix default argument ([#1768](https://github.com/alex-snezhko/grain/issues/1768)) ([6701170](https://github.com/alex-snezhko/grain/commit/6701170a1ecd91a8b7cb566d2ff99402d24c18e1)) +* **stdlib:** Add `replaceAll` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `replaceFirst` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `replaceLast` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `split` function to Regex module ([#1469](https://github.com/alex-snezhko/grain/issues/1469)) ([0c1eb73](https://github.com/alex-snezhko/grain/commit/0c1eb73d01e30f457138c6e3b603a9faddcf8e9b)) +* **stdlib:** Add `splitAll` function to Regex module ([0c1eb73](https://github.com/alex-snezhko/grain/commit/0c1eb73d01e30f457138c6e3b603a9faddcf8e9b)) +* **stdlib:** Add `tan` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `toArray` to `Queue` ([#1930](https://github.com/alex-snezhko/grain/issues/1930)) ([7c865a4](https://github.com/alex-snezhko/grain/commit/7c865a46811ee078325f55ebcaa054c9f1920ff6)) +* **stdlib:** Add `toDegrees` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `toIntegerRatio` and `fromIntegerRatio` to Rational Library ([#1746](https://github.com/alex-snezhko/grain/issues/1746)) ([008a735](https://github.com/alex-snezhko/grain/commit/008a735051c02fbcd7bd47d7735937a61afd0cd6)) +* **stdlib:** Add `toList` and `fromList` functions to `Queue` module ([#1866](https://github.com/alex-snezhko/grain/issues/1866)) ([7cdcf95](https://github.com/alex-snezhko/grain/commit/7cdcf953d451396e56122bcf062019171102d8d6)) +* **stdlib:** Add `toRadians` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add additional functions to Number module ([#1443](https://github.com/alex-snezhko/grain/issues/1443)) ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add ASCII utilities to String, Char ([#1975](https://github.com/alex-snezhko/grain/issues/1975)) ([f65002d](https://github.com/alex-snezhko/grain/commit/f65002d8c16c927577a4593351882c0734dd9897)) +* **stdlib:** Add module for pseudo-random number generation ([#921](https://github.com/alex-snezhko/grain/issues/921)) ([db1fa4e](https://github.com/alex-snezhko/grain/commit/db1fa4e491d35bb582beaba12157884647384a77)) +* **stdlib:** Add number constants to number libraries ([#1331](https://github.com/alex-snezhko/grain/issues/1331)) ([f640ec2](https://github.com/alex-snezhko/grain/commit/f640ec20aa507c83c9cde290b911d0adcb4e8254)) +* **stdlib:** Add optimization for `Number.pow(Rational, Int)` ([#1716](https://github.com/alex-snezhko/grain/issues/1716)) ([67bee5c](https://github.com/alex-snezhko/grain/commit/67bee5c0982d35f0d6a1350e002b7062a498afe7)) +* **stdlib:** Add Path module for working with system paths ([#1452](https://github.com/alex-snezhko/grain/issues/1452)) ([900e976](https://github.com/alex-snezhko/grain/commit/900e976654565b3618e2215e9b7cefbda873d9a8)) +* **stdlib:** Add replacement functions to String module ([#1441](https://github.com/alex-snezhko/grain/issues/1441)) ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add unsigned versions of Int32/Int64 comparison operations ([#831](https://github.com/alex-snezhko/grain/issues/831)) ([5f20868](https://github.com/alex-snezhko/grain/commit/5f20868e7b6e3f52d62c8531d99d1130ca84961e)) +* **stdlib:** Added `empty` constant to immutable data structures ([#1466](https://github.com/alex-snezhko/grain/issues/1466)) ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Change array rotation direction ([#1552](https://github.com/alex-snezhko/grain/issues/1552)) ([bbe56ad](https://github.com/alex-snezhko/grain/commit/bbe56ade517bd685d52384d32aecb94d25d379f7)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) ([114d17b](https://github.com/alex-snezhko/grain/commit/114d17be4463772bbc84ebc408e9cf2b482c6103)) +* **stdlib:** Handle printing of reference cycles ([#1844](https://github.com/alex-snezhko/grain/issues/1844)) ([49c854e](https://github.com/alex-snezhko/grain/commit/49c854eb428ebbe57db5a63d5e7f87faaded3159)) +* **stdlib:** Implement `fromArray` in PriorityQueue & ImmutablePriorityQueue modules ([#1451](https://github.com/alex-snezhko/grain/issues/1451)) ([d321f84](https://github.com/alex-snezhko/grain/commit/d321f84174fee2a340745a9f55994fbfa23f6c7a)) +* **stdlib:** Implement `isFloat`, `isInteger` & `isRational` in Number module ([#1393](https://github.com/alex-snezhko/grain/issues/1393)) ([0af0669](https://github.com/alex-snezhko/grain/commit/0af066993a2b80e417d2c625b27fd11cb1f1f55f)) +* **stdlib:** Implement ImmutableMap and ImmutableSet ([#1414](https://github.com/alex-snezhko/grain/issues/1414)) ([b31120d](https://github.com/alex-snezhko/grain/commit/b31120d41be668c48b9bca9f2b944616371a8ab4)) +* **stdlib:** Implement List.zip, List.unzip, List.zipWith, Array.reduceRight, Array.zipWith ([#1363](https://github.com/alex-snezhko/grain/issues/1363)) ([3e7c147](https://github.com/alex-snezhko/grain/commit/3e7c147fea2d2fb8b7c5a3d6b3eb1453f2861e36)) +* **stdlib:** Implement mutable/immutable priority queues ([#1397](https://github.com/alex-snezhko/grain/issues/1397)) ([244be1b](https://github.com/alex-snezhko/grain/commit/244be1b7254caf0b451902ac56413382eb196747)) +* **stdlib:** Implement Number.sin and Number.cos ([#1343](https://github.com/alex-snezhko/grain/issues/1343)) ([9357126](https://github.com/alex-snezhko/grain/commit/93571267b7df53e1cb9f61eaebf8748885e7392c)) +* **stdlib:** Improved efficiency of constructing a PriorityQueue from a List ([d321f84](https://github.com/alex-snezhko/grain/commit/d321f84174fee2a340745a9f55994fbfa23f6c7a)) +* **stdlib:** Make queue and stack mutable & provide Immutable submodules ([#1479](https://github.com/alex-snezhko/grain/issues/1479)) ([979a20c](https://github.com/alex-snezhko/grain/commit/979a20ce6b734b90bc38c11ee6a4534ea8e555b8)) +* **stdlib:** Marshal ([#1352](https://github.com/alex-snezhko/grain/issues/1352)) ([d659de2](https://github.com/alex-snezhko/grain/commit/d659de2d92260f7726164876827c639bfd9d0590)) +* **stdlib:** Optimize string trimming ([#1442](https://github.com/alex-snezhko/grain/issues/1442)) ([0212247](https://github.com/alex-snezhko/grain/commit/0212247a7fbf0d54085959de2853f3fe66cd8b12)) +* **stdlib:** Provide empty byte array from Bytes.make ([#1729](https://github.com/alex-snezhko/grain/issues/1729)) ([fde3064](https://github.com/alex-snezhko/grain/commit/fde3064428fa2244e73932d5992ac722a26ebfe4)) +* **stdlib:** Reorder parameters to `List.insert` ([#1857](https://github.com/alex-snezhko/grain/issues/1857)) ([973f3f3](https://github.com/alex-snezhko/grain/commit/973f3f34c39a4ac7a552e378b84020d5c647ce86)) +* **stdlib:** Replace `Float32` arithmatic/comparison functions with operators ([#1954](https://github.com/alex-snezhko/grain/issues/1954)) ([52cc15a](https://github.com/alex-snezhko/grain/commit/52cc15a5251cd0003fcfbe243c7b7c940a61d429)) +* **stdlib:** Replace `Float64` arithmatic/comparison functions with operators ([#1957](https://github.com/alex-snezhko/grain/issues/1957)) ([dea4cb5](https://github.com/alex-snezhko/grain/commit/dea4cb54d10b9cecbf54ed30048c0937bc38cea2)) +* **stdlib:** Replace `Int32` arithmatic functions with operators ([#1936](https://github.com/alex-snezhko/grain/issues/1936)) ([8a69dd3](https://github.com/alex-snezhko/grain/commit/8a69dd393e002585464029a42a4362b6edfee662)) +* **stdlib:** Replace `Int64` arithmatic functions with operators ([#1935](https://github.com/alex-snezhko/grain/issues/1935)) ([cfb909c](https://github.com/alex-snezhko/grain/commit/cfb909c60d55d94eb869c389da28a8b3a1bc502f)) +* **stdlib:** Replace `Result`/`Option` `and`/`or` functions with operators ([#1821](https://github.com/alex-snezhko/grain/issues/1821)) ([686de7e](https://github.com/alex-snezhko/grain/commit/686de7ec3c83d092c7a0407657695e1bc671abd7)) +* **stdlib:** Support zipping arrays of different sizes ([#1402](https://github.com/alex-snezhko/grain/issues/1402)) ([b8ae3d6](https://github.com/alex-snezhko/grain/commit/b8ae3d69c98ada45bc592fb3097f21bc8a0d40bd)) +* **stdlib:** Use Array length as default end in `Array.slice` function ([#1762](https://github.com/alex-snezhko/grain/issues/1762)) ([a698fdc](https://github.com/alex-snezhko/grain/commit/a698fdc55ef45e8b0d156d5bb3cacc9e21d758ac)) +* **stdlib:** Use String length as default end in `String.slice` function ([#1748](https://github.com/alex-snezhko/grain/issues/1748)) ([b7c41a6](https://github.com/alex-snezhko/grain/commit/b7c41a6421dd0392bfec9f1791d9314556af9318)) + + +### Bug Fixes + +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/alex-snezhko/grain/issues/1285)) ([1357e16](https://github.com/alex-snezhko/grain/commit/1357e162f7e939db21468186d16e6d720b557a57)) +* **compiler:** Allow defining _start when using --use-start-section ([#1349](https://github.com/alex-snezhko/grain/issues/1349)) ([944f71c](https://github.com/alex-snezhko/grain/commit/944f71ca8080b8a3228d27893b2fd5b84e4b6189)) +* **compiler:** Allow early return in let bindings ([#1727](https://github.com/alex-snezhko/grain/issues/1727)) ([43adefe](https://github.com/alex-snezhko/grain/commit/43adefe7ff7e4ca7ba6f6f80889f66b557451888)) +* **compiler:** Allow providing values of types provided later ([#1897](https://github.com/alex-snezhko/grain/issues/1897)) ([1c43bd6](https://github.com/alex-snezhko/grain/commit/1c43bd60395b9ff024d9e8ebbbe6d517c2e30051)) +* **compiler:** Allow reproviding from submodules ([#1888](https://github.com/alex-snezhko/grain/issues/1888)) ([97c00e1](https://github.com/alex-snezhko/grain/commit/97c00e1e47bc783c6dad71b605f4a0d2ae3d11b9)) +* **compiler:** Apply correct allocation type to numbers ([#1140](https://github.com/alex-snezhko/grain/issues/1140)) ([b9e9d59](https://github.com/alex-snezhko/grain/commit/b9e9d59143f529f7c0ae100b048988e6ba0e8d54)) +* **compiler:** Apply correct rules for parsing Unicode whitespace ([#1554](https://github.com/alex-snezhko/grain/issues/1554)) ([4f19d71](https://github.com/alex-snezhko/grain/commit/4f19d71b6bbe7f2094fadbb9fbd99f1fd62e80ae)) +* **compiler:** Apply list location to outer node ([#1387](https://github.com/alex-snezhko/grain/issues/1387)) ([06e79a8](https://github.com/alex-snezhko/grain/commit/06e79a80e5e61e5a8654654dfa15310a1bc363ea)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Correct error message for unbound type variables ([#1327](https://github.com/alex-snezhko/grain/issues/1327)) ([762362a](https://github.com/alex-snezhko/grain/commit/762362a06e1676540cd33df8200ea2a6b7006a5e)) +* **compiler:** Correct locations for data constructor idents ([#1752](https://github.com/alex-snezhko/grain/issues/1752)) ([d015a97](https://github.com/alex-snezhko/grain/commit/d015a978d7969994d09b7050f9f358fc5bba9d23)) +* **compiler:** Correct the warning suggestion for Float32 And Float64 values ([#1671](https://github.com/alex-snezhko/grain/issues/1671)) ([32e0397](https://github.com/alex-snezhko/grain/commit/32e03972660b451ad6f068281aee08ad0d958c27)) +* **compiler:** Correctly handle and backpatch mutually recursive closure scope functions ([#1808](https://github.com/alex-snezhko/grain/issues/1808)) ([c2a0c5b](https://github.com/alex-snezhko/grain/commit/c2a0c5baa7664a38ded3977455b8b9c2588c5034)) +* **compiler:** Correctly handle underscores in bigint literals ([0af0669](https://github.com/alex-snezhko/grain/commit/0af066993a2b80e417d2c625b27fd11cb1f1f55f)) +* **compiler:** Disallow enum variants with parens but no types ([#1809](https://github.com/alex-snezhko/grain/issues/1809)) ([25e4946](https://github.com/alex-snezhko/grain/commit/25e494680ac048125748e9f696df83de974b9e72)) +* **compiler:** Disallow multiple `provide`s of the same value ([#1689](https://github.com/alex-snezhko/grain/issues/1689)) ([7ab7ddc](https://github.com/alex-snezhko/grain/commit/7ab7ddc1c7e9eae221edcf787b733ef7acf97904)) +* **compiler:** Ensure constant number locations are propagated correctly when parsing ([#2044](https://github.com/alex-snezhko/grain/issues/2044)) ([53a33e6](https://github.com/alex-snezhko/grain/commit/53a33e6c97d5ddf17fc88480622d993b1c86e631)) +* **compiler:** Ensure refcounts are maintained when tail calls use arguments multiple times ([#1993](https://github.com/alex-snezhko/grain/issues/1993)) ([86c6e12](https://github.com/alex-snezhko/grain/commit/86c6e12e0ab1f48347cfd57d3cb328fe1f6fac15)) +* **compiler:** Fix compilation of closure scope mutable destructuring ([#1346](https://github.com/alex-snezhko/grain/issues/1346)) ([bdcdb3c](https://github.com/alex-snezhko/grain/commit/bdcdb3c66a9a60fc44956225491c12cc14250009)) +* **compiler:** Fix compilation of functions annotated with alias ([#1293](https://github.com/alex-snezhko/grain/issues/1293)) ([b3e1882](https://github.com/alex-snezhko/grain/commit/b3e188299be6af22bb64cf5ae9a41afa05e4c16f)) +* **compiler:** Fix dependency compilation of wasi polyfill ([#1563](https://github.com/alex-snezhko/grain/issues/1563)) ([fa8b209](https://github.com/alex-snezhko/grain/commit/fa8b209629deeb9f088d086311504dbde8371189)) +* **compiler:** Fix error location reporting of unbound modules and labels ([#1577](https://github.com/alex-snezhko/grain/issues/1577)) ([5146b14](https://github.com/alex-snezhko/grain/commit/5146b145468f280ea39af276d8b345c17a0595da)) +* **compiler:** fix formatter multiple data bug ([#1282](https://github.com/alex-snezhko/grain/issues/1282)) ([f6fd962](https://github.com/alex-snezhko/grain/commit/f6fd96250dbe95d6b6c56d663f6d7f2704b792b3)) +* **compiler:** Fix memory bug in universal exports ([#1663](https://github.com/alex-snezhko/grain/issues/1663)) ([87724f0](https://github.com/alex-snezhko/grain/commit/87724f0a2c1e0697a138ebb3f2ba98a337be88f5)) +* **compiler:** Fix precedence of `>>` operator ([#1515](https://github.com/alex-snezhko/grain/issues/1515)) ([1565c16](https://github.com/alex-snezhko/grain/commit/1565c16e98dd5c137fb852d23f890f8d7c70d352)) +* **compiler:** Fully expand types when finding concrete representation ([#1448](https://github.com/alex-snezhko/grain/issues/1448)) ([a5ff379](https://github.com/alex-snezhko/grain/commit/a5ff379f15a0839671d8d0e10c3334658e3fbafc)) +* **compiler:** Inline record exception constructors ([#1709](https://github.com/alex-snezhko/grain/issues/1709)) ([ffd4d44](https://github.com/alex-snezhko/grain/commit/ffd4d44d0d341f9c835d24cbebe0ac4e317fe93b)) +* **compiler:** Iterate over guard clauses in typedTreeIter/typedTreeMap ([#1283](https://github.com/alex-snezhko/grain/issues/1283)) ([96e8ecb](https://github.com/alex-snezhko/grain/commit/96e8ecb9e84e54d0640bc775e23e25b93c4dda7c)) +* **compiler:** Move Filename usage to Filepath.String & normalize separators ([584bcad](https://github.com/alex-snezhko/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Panic immediately when out of memory ([#1450](https://github.com/alex-snezhko/grain/issues/1450)) ([943d47d](https://github.com/alex-snezhko/grain/commit/943d47dddde2d88fd96727e9d7ed8501efec42ef)) +* **compiler:** Preserve all configs when compiling ([#1207](https://github.com/alex-snezhko/grain/issues/1207)) ([d8ff903](https://github.com/alex-snezhko/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Prevent stack overflows when compiling long blocks ([#1534](https://github.com/alex-snezhko/grain/issues/1534)) ([dc6d699](https://github.com/alex-snezhko/grain/commit/dc6d699cffeefa71ef2898c484f840c991f66c7a)) +* **compiler:** Properly apply well-formedness checks on patterns ([#1989](https://github.com/alex-snezhko/grain/issues/1989)) ([00abee8](https://github.com/alex-snezhko/grain/commit/00abee89e5dd40d658ff44b72c8c9ffc576cd628)) +* **compiler:** Properly handle corrupted CMIs ([#1314](https://github.com/alex-snezhko/grain/issues/1314)) ([7f97410](https://github.com/alex-snezhko/grain/commit/7f9741016fac55bd63aa74d9bd2fef49dd34d03b)) +* **compiler:** Properly handle parsing return of negative number ([#1611](https://github.com/alex-snezhko/grain/issues/1611)) ([0a5a97c](https://github.com/alex-snezhko/grain/commit/0a5a97c8fb7cfd3f6ac068fb343e66457381fc13)) +* **compiler:** Properly handle types not imported ([#1329](https://github.com/alex-snezhko/grain/issues/1329)) ([75bbb93](https://github.com/alex-snezhko/grain/commit/75bbb9367a43c923fc97b25ea0ed9315190f5702)) +* **compiler:** Properly parse large hex numbers ([#1546](https://github.com/alex-snezhko/grain/issues/1546)) ([5f8d770](https://github.com/alex-snezhko/grain/commit/5f8d770ec60b686c3183bd8a200800c3f03e8e30)) +* **compiler:** Provide appropriate error during invalid array access ([#1556](https://github.com/alex-snezhko/grain/issues/1556)) ([3d7b9e3](https://github.com/alex-snezhko/grain/commit/3d7b9e3d99b2639b46080e1c564d1453cd80f666)) +* **compiler:** Provide appropriate error for empty char literals ([#1728](https://github.com/alex-snezhko/grain/issues/1728)) ([e4dcda8](https://github.com/alex-snezhko/grain/commit/e4dcda8615b0c611ec201ac5f315e99b3ba1bfb3)) +* **compiler:** Provide full module interface in intermediate wasm files ([#1756](https://github.com/alex-snezhko/grain/issues/1756)) ([683f803](https://github.com/alex-snezhko/grain/commit/683f803885e1ea073b7693dc1446b379fc49d311)) +* **compiler:** Raise appropriate error on unbound export ([#1528](https://github.com/alex-snezhko/grain/issues/1528)) ([43d512d](https://github.com/alex-snezhko/grain/commit/43d512dbcfb61cd10674a83658ed23b4e0ea8898)) +* **compiler:** Raise appropriate exception when modules are missing during dependency graph construction ([#1485](https://github.com/alex-snezhko/grain/issues/1485)) ([d8cd8f1](https://github.com/alex-snezhko/grain/commit/d8cd8f11aec66eb257bd1cfc9f7884dcd787efd6)) +* **compiler:** Re-providing types ([#1874](https://github.com/alex-snezhko/grain/issues/1874)) ([6df9eb2](https://github.com/alex-snezhko/grain/commit/6df9eb24b740975be179cccee2bf70bac2414f33)) +* **compiler:** Read custom sections in full ([#1243](https://github.com/alex-snezhko/grain/issues/1243)) ([f8a0891](https://github.com/alex-snezhko/grain/commit/f8a0891f253e33153feb2ec20afe6443391a1aa8)) +* **compiler:** Refactor WASI polyfill resolution ([#1261](https://github.com/alex-snezhko/grain/issues/1261)) ([a39b48f](https://github.com/alex-snezhko/grain/commit/a39b48ff95f4ef7ce5a4b5454dbc620ae4044c17)) +* **compiler:** Remove number constant folding optimization ([#1676](https://github.com/alex-snezhko/grain/issues/1676)) ([181798d](https://github.com/alex-snezhko/grain/commit/181798db69e708c69ca08a24785de7c03b9c45ab)) +* **compiler:** Remove static runtime pointers ([#1806](https://github.com/alex-snezhko/grain/issues/1806)) ([8d76dc9](https://github.com/alex-snezhko/grain/commit/8d76dc917cf109e3b8496faca565fd9904fa0b22)) +* **compiler:** Report binop locations properly ([#1271](https://github.com/alex-snezhko/grain/issues/1271)) ([4b9dd9c](https://github.com/alex-snezhko/grain/commit/4b9dd9c35969cf86f1d2d9a8013b7f6d347c508e)) +* **compiler:** Report Win32 instead of Cygwin in JS compiler ([#1251](https://github.com/alex-snezhko/grain/issues/1251)) ([584bcad](https://github.com/alex-snezhko/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Respect stack type when dropping statements ([#1138](https://github.com/alex-snezhko/grain/issues/1138)) ([5a44e93](https://github.com/alex-snezhko/grain/commit/5a44e93ab646f1e9998ce6c23245e41c4bf0019a)) +* **compiler:** Supply correct error for unbound record labels ([#1200](https://github.com/alex-snezhko/grain/issues/1200)) ([86e1bc0](https://github.com/alex-snezhko/grain/commit/86e1bc0ba099c5b48ba72e98530a634e15f6bb77)) +* **compiler:** Support deeply nested types in modules ([#1673](https://github.com/alex-snezhko/grain/issues/1673)) ([b6651bb](https://github.com/alex-snezhko/grain/commit/b6651bbc589810dcea123920d9257d339307ed3d)) +* **compiler:** Support printing tuple types in oprint ([#1324](https://github.com/alex-snezhko/grain/issues/1324)) ([c1d8907](https://github.com/alex-snezhko/grain/commit/c1d89076cad153ed4aa02593f628f4d152ff7139)) +* **compiler:** Type aliasing in `use` statements ([#1887](https://github.com/alex-snezhko/grain/issues/1887)) ([79ab814](https://github.com/alex-snezhko/grain/commit/79ab81404f38cc347c719ecd1c50b9658d424aaa)) +* **compiler:** Use option converter for `--profile` argument ([#1432](https://github.com/alex-snezhko/grain/issues/1432)) ([57776f2](https://github.com/alex-snezhko/grain/commit/57776f224904f2d422923a1a947b5acbe435cfa4)) +* Fix String.ReplaceAll ([#1705](https://github.com/alex-snezhko/grain/issues/1705)) ([d3af004](https://github.com/alex-snezhko/grain/commit/d3af0049f6910b10065ddd72c46e5364fe53c4ff)) +* **graindoc:** Add parens around infix operators in titles ([#1303](https://github.com/alex-snezhko/grain/issues/1303)) ([acba9c1](https://github.com/alex-snezhko/grain/commit/acba9c1757688756c3ca98b22a0a159b8d8f9e7d)) +* **graindoc:** Avoid singletons when building ordered comments ([#1208](https://github.com/alex-snezhko/grain/issues/1208)) ([3f28e6e](https://github.com/alex-snezhko/grain/commit/3f28e6e226bbd951aedc6f8783203152919c7d08)) +* **graindoc:** Enable printing of arrow types ([#1367](https://github.com/alex-snezhko/grain/issues/1367)) ([e2b28ab](https://github.com/alex-snezhko/grain/commit/e2b28ab66ecd9169c27a2680ba5e0fb79e589787)) +* **graindoc:** Escape * characters that would close markdown bold incorrectly ([3b6b5ca](https://github.com/alex-snezhko/grain/commit/3b6b5ca74e3b40a41206ba5f3d527166ea267ada)) +* **graindoc:** Escape * chars that would close markdown bold incorrectly ([#1685](https://github.com/alex-snezhko/grain/issues/1685)) ([3b6b5ca](https://github.com/alex-snezhko/grain/commit/3b6b5ca74e3b40a41206ba5f3d527166ea267ada)) +* **graindoc:** Fix type printing for types and abstract types ([#1238](https://github.com/alex-snezhko/grain/issues/1238)) ([aea3ea9](https://github.com/alex-snezhko/grain/commit/aea3ea9f6b72182dfffb8af4c9af83a444fb6a83)) +* **graindoc:** Improve location lookup so re-exports do not crash it ([#1280](https://github.com/alex-snezhko/grain/issues/1280)) ([6e782ee](https://github.com/alex-snezhko/grain/commit/6e782ee146e16aefd3b88441de500d82a20508be)) +* **graindoc:** Preserve indentation in Doc comments during trim ([#1119](https://github.com/alex-snezhko/grain/issues/1119)) ([b8a6d57](https://github.com/alex-snezhko/grain/commit/b8a6d57cce274bfbc2cc16c5b25215b042d4264c)) +* **graindoc:** Remove spaces between parens and infix idents ([#1302](https://github.com/alex-snezhko/grain/issues/1302)) ([95e596f](https://github.com/alex-snezhko/grain/commit/95e596fa3fdae5a8a0e07d76ff8c11eeab99e8d7)) +* **graindoc:** Use defined module name throughout generated doc ([#1406](https://github.com/alex-snezhko/grain/issues/1406)) ([c33a777](https://github.com/alex-snezhko/grain/commit/c33a777a93d5e40a081991db5e6ea61ade4fbabc)) +* **graindoc:** Use Markdown bold helper for each case of bolding ([#1695](https://github.com/alex-snezhko/grain/issues/1695)) ([d798433](https://github.com/alex-snezhko/grain/commit/d798433fbb99eace2f100c0cd94c78eb99b0cf93)) +* **graindoc:** Use value_descriptions and type_declarations defined by the module signature ([#1241](https://github.com/alex-snezhko/grain/issues/1241)) ([5896242](https://github.com/alex-snezhko/grain/commit/5896242c324622f3329c144bd2c9642aade9d049)) +* **grainfmt:** Add parentheses around some binops for precedence clarity ([#1514](https://github.com/alex-snezhko/grain/issues/1514)) ([3ac27cc](https://github.com/alex-snezhko/grain/commit/3ac27cc6e17b896dae0ef2cb5f5de510c7c2dd60)) +* **grainfmt:** Avoid duplicating comments inside records ([#1428](https://github.com/alex-snezhko/grain/issues/1428)) ([b993030](https://github.com/alex-snezhko/grain/commit/b99303013698312ff936519645698c05e1bfd807)) +* **grainfmt:** Fix grouping of expressions on LHS of fn application, record access etc ([#1562](https://github.com/alex-snezhko/grain/issues/1562)) ([6c46015](https://github.com/alex-snezhko/grain/commit/6c460156335cd3e864eb71f05f83fe6a8f8593ae)) +* **grainfmt:** Format rational numbers with parens when needed for precedence ([#1385](https://github.com/alex-snezhko/grain/issues/1385)) ([931bb42](https://github.com/alex-snezhko/grain/commit/931bb42b4a8bc610765d871947f7deaef354511b)) +* **grainfmt:** Group expressions inside array accessors ([#1462](https://github.com/alex-snezhko/grain/issues/1462)) ([dd11dd4](https://github.com/alex-snezhko/grain/commit/dd11dd4191f9369bff195dc71bd1660b57d222af)) +* **grainfmt:** Handle chained value bindings properly ([#1467](https://github.com/alex-snezhko/grain/issues/1467)) ([07bfcd3](https://github.com/alex-snezhko/grain/commit/07bfcd3f15c34ef99b05531591b1473f206b7395)) +* **grainfmt:** Handle comment in or near if conditionals better ([#1513](https://github.com/alex-snezhko/grain/issues/1513)) ([8a60985](https://github.com/alex-snezhko/grain/commit/8a609854ffe40f55e0d147655f6991b7efc3be50)) +* **grainfmt:** Handle comments after braces properly ([654ab8c](https://github.com/alex-snezhko/grain/commit/654ab8cd946ea99261e37d85ea76bc9a49325311)) +* **grainfmt:** Handle comments after braces properly when on one line ([#1578](https://github.com/alex-snezhko/grain/issues/1578)) ([654ab8c](https://github.com/alex-snezhko/grain/commit/654ab8cd946ea99261e37d85ea76bc9a49325311)) +* **grainfmt:** Handle comments within lists ([#1429](https://github.com/alex-snezhko/grain/issues/1429)) ([05b5f52](https://github.com/alex-snezhko/grain/commit/05b5f525fea50db20b49b4b5cb88c4b0259d2805)) +* **grainfmt:** Handle multiple line items and comments better ([#1460](https://github.com/alex-snezhko/grain/issues/1460)) ([5395fd4](https://github.com/alex-snezhko/grain/commit/5395fd45b79fb3bcf3dd1ec52a1d5973a23a4bdc)) +* **grainfmt:** Handle source files with no code, only comments ([#1411](https://github.com/alex-snezhko/grain/issues/1411)) ([a435d60](https://github.com/alex-snezhko/grain/commit/a435d60f4c8f8c85ec28ea8a29e76d0ceea0284b)) +* **grainfmt:** Indent lines when wrapping infix operators ([#1465](https://github.com/alex-snezhko/grain/issues/1465)) ([d705849](https://github.com/alex-snezhko/grain/commit/d705849ea8d9073e608576b77adeae834c454e0b)) +* **grainfmt:** Maintain comments in function arguments ([#1527](https://github.com/alex-snezhko/grain/issues/1527)) ([6ad6dc1](https://github.com/alex-snezhko/grain/commit/6ad6dc12a15d2166277d990bca49f66b5177e0f9)) +* **grainfmt:** Preserve the EOL characters of file ([#1216](https://github.com/alex-snezhko/grain/issues/1216)) ([ef2835a](https://github.com/alex-snezhko/grain/commit/ef2835a5608cb1d5de52b280b6d4fd5b563ce725)) +* **grainfmt:** Print comments found between comma-separated data statements ([#1430](https://github.com/alex-snezhko/grain/issues/1430)) ([be4b38d](https://github.com/alex-snezhko/grain/commit/be4b38d87b0ee6ff4544264b8bad4e36820808a2)) +* **grainfmt:** Properly format comments within a record ([#1435](https://github.com/alex-snezhko/grain/issues/1435)) ([3c56097](https://github.com/alex-snezhko/grain/commit/3c56097e867a83698f26e287dbaeaee7e831efb8)) +* **grainfmt:** Properly handle coalesing operator ([#1568](https://github.com/alex-snezhko/grain/issues/1568)) ([4595f97](https://github.com/alex-snezhko/grain/commit/4595f97d8013a57bccfd09138d3351e94887a6ba)) +* **grainfmt:** Properly handle if/then/else line breaks ([#1217](https://github.com/alex-snezhko/grain/issues/1217)) ([93fd3b5](https://github.com/alex-snezhko/grain/commit/93fd3b5d0a5ccbc11baaab08d0f65ff9ec98aead)) +* **grainfmt:** Reduce binop format time ([#1482](https://github.com/alex-snezhko/grain/issues/1482)) ([e850455](https://github.com/alex-snezhko/grain/commit/e850455ff8dff5844de128637b42e8b8dcb7daf0)) +* **grainfmt:** Remove parens around annotated types ([#1109](https://github.com/alex-snezhko/grain/issues/1109)) ([0ca66bd](https://github.com/alex-snezhko/grain/commit/0ca66bd43703826f86ef5b28b49d250af219fb0b)) +* **grainfmt:** Stop adding an extra line after block comments ([#1436](https://github.com/alex-snezhko/grain/issues/1436)) ([4e4903f](https://github.com/alex-snezhko/grain/commit/4e4903f238a3804e687b1a430ec7896f7a145271)) +* **grainfmt:** Support PPatOr and PPatAlias ([#1322](https://github.com/alex-snezhko/grain/issues/1322)) ([20050d2](https://github.com/alex-snezhko/grain/commit/20050d2c975f60ae7ead41c76871562f7636c499)) +* **grainfmt:** Use only the correct comments for constraints ([#1388](https://github.com/alex-snezhko/grain/issues/1388)) ([91d5cdf](https://github.com/alex-snezhko/grain/commit/91d5cdf63d7be8a68cf613c6ba217c5810cf3920)) +* **grainlsp:** Properly surface errors in other files ([#1490](https://github.com/alex-snezhko/grain/issues/1490)) ([6a09953](https://github.com/alex-snezhko/grain/commit/6a099533ffecb801f3ccbcc9c66a57a86737a90c)) +* **grainlsp:** Send empty response if file cannot be formatted ([#1386](https://github.com/alex-snezhko/grain/issues/1386)) ([38a3f58](https://github.com/alex-snezhko/grain/commit/38a3f58b5cf4b61654cc07f3fad0b9be10abb983)) +* **lsp:** Always respond to hover request ([#1328](https://github.com/alex-snezhko/grain/issues/1328)) ([fb947b5](https://github.com/alex-snezhko/grain/commit/fb947b5dc47f306f6399d2b4564fe8f33ffd80b1)) +* **lsp:** Fix lsp crash when hovering on function with default arg ([#1969](https://github.com/alex-snezhko/grain/issues/1969)) ([dd25d02](https://github.com/alex-snezhko/grain/commit/dd25d02675b93b36e17c1bfa37030c9cbff1dbb7)) +* **runtime:** Handle bigint mul/div within Number correctly ([#1475](https://github.com/alex-snezhko/grain/issues/1475)) ([0fe8aa6](https://github.com/alex-snezhko/grain/commit/0fe8aa6a96a9c5ebf2f2bf2e1f28578badfb337f)) +* **runtime:** Properly divide bigints in the number type ([59e89d1](https://github.com/alex-snezhko/grain/commit/59e89d12b7fcf2626c8adb45c742a787171b7024)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/alex-snezhko/grain/issues/1136)) ([0c7cb82](https://github.com/alex-snezhko/grain/commit/0c7cb820d49cda74598680cc614c0d893b4d2b40)) +* **stdlib:** Correctly promote numbers to bigints when left-shifting ([#1354](https://github.com/alex-snezhko/grain/issues/1354)) ([5280e98](https://github.com/alex-snezhko/grain/commit/5280e98a91a57fae074299fc7bad3c41f69fa2a3)) +* **stdlib:** Ensure `Array.fillRange` works with negative indexing & throws IndexOutOfBound ([#1761](https://github.com/alex-snezhko/grain/issues/1761)) ([3c3c4d9](https://github.com/alex-snezhko/grain/commit/3c3c4d9ced8168287ecbd23ee71948c5592e3b66)) +* **stdlib:** Fix anchoring behavior in Regex.replaceAll ([#1440](https://github.com/alex-snezhko/grain/issues/1440)) ([d513eff](https://github.com/alex-snezhko/grain/commit/d513effe569d0aa0d44c974596fd285f1ad8d57d)) +* **stdlib:** Fix float printing in dtoa ([#1165](https://github.com/alex-snezhko/grain/issues/1165)) ([2987210](https://github.com/alex-snezhko/grain/commit/2987210648873ab474990ff2b7146a489fecb268)) +* **stdlib:** Fix handling of `NaN` and `Infinity` in Number module ([#1457](https://github.com/alex-snezhko/grain/issues/1457)) ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Fix NaN comparisons ([#1543](https://github.com/alex-snezhko/grain/issues/1543)) ([f7ceae7](https://github.com/alex-snezhko/grain/commit/f7ceae729260bc3c5eee017954aa7e242c3f8cb5)) +* **stdlib:** Make toNumber functions respect Number invariants ([#1347](https://github.com/alex-snezhko/grain/issues/1347)) ([78db882](https://github.com/alex-snezhko/grain/commit/78db8820cf5667a4d6737c9109f4223c1348b245)) +* **stdlib:** Prevent addBytesSlice throwing error on empty buffer ([#1394](https://github.com/alex-snezhko/grain/issues/1394)) ([bdd4be4](https://github.com/alex-snezhko/grain/commit/bdd4be46730290908b7b939f41679acce7834167)) +* **stdlib:** Properly handle extremely large integer bases in `Number.(**)` ([#1950](https://github.com/alex-snezhko/grain/issues/1950)) ([84c076f](https://github.com/alex-snezhko/grain/commit/84c076fb3b7b34a3fec6dfd2c527ca4833414ff4)) +* **stdlib:** Properly resize empty Queue on push ([#1865](https://github.com/alex-snezhko/grain/issues/1865)) ([f7727ef](https://github.com/alex-snezhko/grain/commit/f7727ef2158f63dc8c88a5b824b41e31495f0f51)) +* **stdlib:** Properly resize empty Stack on push ([#1867](https://github.com/alex-snezhko/grain/issues/1867)) ([b90d924](https://github.com/alex-snezhko/grain/commit/b90d924a38f8a7f82a7c972f8213ab9ec8561820)) +* **stdlib:** Remove extra space when converting Bytes to String ([#1800](https://github.com/alex-snezhko/grain/issues/1800)) ([543807b](https://github.com/alex-snezhko/grain/commit/543807b1156aecc93396c12121ada15f4d2bd046)) +* **stdlib:** Sys/File reading and writing operate on Bytes ([#1655](https://github.com/alex-snezhko/grain/issues/1655)) ([17cb28d](https://github.com/alex-snezhko/grain/commit/17cb28d25f4b1f2cf8943429136c863f66447675)) +* **stdlib:** Use correct casing for BigInt module name ([2ff9d9e](https://github.com/alex-snezhko/grain/commit/2ff9d9ec49c727778c6d0ee74219f746df8a11e2)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/alex-snezhko/grain/issues/1301)) ([bad5897](https://github.com/alex-snezhko/grain/commit/bad5897062444ec4d4ace805adcd382725b86125)) + + +### Miscellaneous Chores + +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/alex-snezhko/grain/issues/1275)) ([df55898](https://github.com/alex-snezhko/grain/commit/df5589882d12ed35ba448de44e06f434bcf59b07)) +* **compiler:** Add interface for compile module to hide resume ([d8ff903](https://github.com/alex-snezhko/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Disallow end-of-line before `=>` ([#1178](https://github.com/alex-snezhko/grain/issues/1178)) ([8261e73](https://github.com/alex-snezhko/grain/commit/8261e733c9345c690ffc107616512be4eb4c469e)) +* **compiler:** Optimize type metadata loading ([#1741](https://github.com/alex-snezhko/grain/issues/1741)) ([a4519bc](https://github.com/alex-snezhko/grain/commit/a4519bc88d9fe12159495e995fcaa74834d5a361)) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged ([#1268](https://github.com/alex-snezhko/grain/issues/1268)) ([1590a37](https://github.com/alex-snezhko/grain/commit/1590a37ca39e39ee40e0f27986fe8195458c3cb9)) +* **compiler:** Remove `--lsp` flag from grainc executable ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Remove built-in FileDescriptor type ([#1747](https://github.com/alex-snezhko/grain/issues/1747)) ([d40e84a](https://github.com/alex-snezhko/grain/commit/d40e84a74479dfb2676005e8496369d36e4eaaba)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) ([3ae8eaa](https://github.com/alex-snezhko/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Remove memory import from _genv ([#1830](https://github.com/alex-snezhko/grain/issues/1830)) ([c6693dd](https://github.com/alex-snezhko/grain/commit/c6693dde9ce99fc8606754b859a5cc41dda4a52f)) +* **compiler:** Remove recursive_types and principal config ([#1751](https://github.com/alex-snezhko/grain/issues/1751)) ([534bdca](https://github.com/alex-snezhko/grain/commit/534bdcafe463128eca499c558459a9882478fb2a)) +* **compiler:** Rename `_grainEnv` to `_genv` ([#1607](https://github.com/alex-snezhko/grain/issues/1607)) ([73c9499](https://github.com/alex-snezhko/grain/commit/73c94997c7bd08324398ea87498d2b498c5bf658)) +* **compiler:** Require floats always have a digit on left & right of dot ([#1703](https://github.com/alex-snezhko/grain/issues/1703)) ([b657e1c](https://github.com/alex-snezhko/grain/commit/b657e1cf68d4b20bfb06d662b1fc8687836e5104)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) ([ef4358f](https://github.com/alex-snezhko/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **graindoc:** Remove section attribute ([#1681](https://github.com/alex-snezhko/grain/issues/1681)) ([e969ad7](https://github.com/alex-snezhko/grain/commit/e969ad75e017785d12decbbf87651bd8c7dd286d)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Remove --parser-debug-level ([#1311](https://github.com/alex-snezhko/grain/issues/1311)) ([#1447](https://github.com/alex-snezhko/grain/issues/1447)) ([f78587a](https://github.com/alex-snezhko/grain/commit/f78587a734538d66dfae94abbb7566b25810352b)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) ([331ffc2](https://github.com/alex-snezhko/grain/commit/331ffc28b57e7e52fc9e360d1d85f81d3a172d06)) +* **stdlib:** Group mutable/immutable data structures ([#1652](https://github.com/alex-snezhko/grain/issues/1652)) ([f93afef](https://github.com/alex-snezhko/grain/commit/f93afef3785910ebbedcf780ce2d6109299c2e86)) +* **stdlib:** Remove `cons` and `empty` from Pervasives ([#1657](https://github.com/alex-snezhko/grain/issues/1657)) ([f6f02bc](https://github.com/alex-snezhko/grain/commit/f6f02bcb5a196f7f611ee6604f8585d429368314)) +* **stdlib:** Remove `sin`, `cos`, `tan`, `gamma`, `factorial` from `Number` module ([#2046](https://github.com/alex-snezhko/grain/issues/2046)) ([85c4389](https://github.com/alex-snezhko/grain/commit/85c4389dee9f0760e40639df5112294cb4cc44cb)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/alex-snezhko/grain/issues/1300)) ([9101615](https://github.com/alex-snezhko/grain/commit/9101615688f20310ae32573f93f36cfcf5c69be1)) +* **stdlib:** Replace bigint/number arithmetic functions with operators ([#1742](https://github.com/alex-snezhko/grain/issues/1742)) ([cbd46ee](https://github.com/alex-snezhko/grain/commit/cbd46ee99654d066690f1eb13bde8d882abed80f)) +* **stdlib:** Replace Number.nan & Number.infinity constants with keywords ([#1618](https://github.com/alex-snezhko/grain/issues/1618)) ([b437c13](https://github.com/alex-snezhko/grain/commit/b437c131aedcc4395080179b8e0d41ff6b2c95b2)) +* **stdlib:** Switch to using records for `getInternalStats` ([#1898](https://github.com/alex-snezhko/grain/issues/1898)) ([bdb119a](https://github.com/alex-snezhko/grain/commit/bdb119a8234409c5425a2f8678d53237eb7af850)) +* **stdlib:** Update Buffer/Bytes to use new integer types ([#1704](https://github.com/alex-snezhko/grain/issues/1704)) ([d508e5a](https://github.com/alex-snezhko/grain/commit/d508e5af7d66e8419370000030ee40194052301f)) +* **stdlib:** Update Operator `uint` operator Names ([#1738](https://github.com/alex-snezhko/grain/issues/1738)) ([decb053](https://github.com/alex-snezhko/grain/commit/decb0533e87cb8d617e27c0f5470a24c502dcfab)) +* **stdlib:** Use default arguments in more of stdlib ([#1772](https://github.com/alex-snezhko/grain/issues/1772)) ([f5e934f](https://github.com/alex-snezhko/grain/commit/f5e934fc658427b698cfb3919c9b2ac411a0ce45)) +* Switch from yarn to npm ([#1226](https://github.com/alex-snezhko/grain/issues/1226)) ([5ea9274](https://github.com/alex-snezhko/grain/commit/5ea92743a05fffb4298deda64100a3d7fc2259cb)) + ### [0.5.13](https://github.com/grain-lang/grain/compare/compiler-v0.5.12...compiler-v0.5.13) (2023-01-07) diff --git a/compiler/dune-project b/compiler/dune-project index 16a92fbaa6..20316405c1 100644 --- a/compiler/dune-project +++ b/compiler/dune-project @@ -1,6 +1,6 @@ (lang dune 2.3) (name grain) -(version 0.5.13) +(version 0.6.0) (using menhir 2.0) ; Flip this to `true` when we want to generate opam files again diff --git a/compiler/esy.json b/compiler/esy.json index 9ca2cbfec9..513b42600c 100644 --- a/compiler/esy.json +++ b/compiler/esy.json @@ -1,6 +1,6 @@ { "name": "@grain/compiler", - "version": "0.5.13", + "version": "0.6.0", "esy": { "build": [ "dune build @native --no-buffer" diff --git a/compiler/package.json b/compiler/package.json index b575bdc15c..c7eb46abd1 100644 --- a/compiler/package.json +++ b/compiler/package.json @@ -1,7 +1,7 @@ { "name": "@grain/compiler", "private": true, - "version": "0.5.13", + "version": "0.6.0", "bin": { "grainc": "_esy/default/build/install/default/bin/grainc" }, diff --git a/package-lock.json b/package-lock.json index 73ebcb0e42..22793ccf78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "grain", - "version": "0.5.13", + "version": "0.6.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "grain", - "version": "0.5.13", + "version": "0.6.0", "workspaces": [ "cli", "stdlib", diff --git a/package.json b/package.json index 5d37e715a6..eaea4af267 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grain", "private": true, - "version": "0.5.13", + "version": "0.6.0", "description": "The Grain monorepo.", "workspaces": [ "cli", diff --git a/stdlib/CHANGELOG.md b/stdlib/CHANGELOG.md index e5634b5d38..167148d742 100644 --- a/stdlib/CHANGELOG.md +++ b/stdlib/CHANGELOG.md @@ -1,5 +1,299 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/stdlib-v0.5.13...stdlib-v0.6.0) (2024-02-24) + + +### ⚠ BREAKING CHANGES + +* **compiler:** Update include syntax ([#2043](https://github.com/alex-snezhko/grain/issues/2043)) +* **stdlib:** Remove `sin`, `cos`, `tan`, `gamma`, `factorial` from `Number` module ([#2046](https://github.com/alex-snezhko/grain/issues/2046)) +* **compiler:** Update use syntax ([#2041](https://github.com/alex-snezhko/grain/issues/2041)) +* **grainfmt:** Implement new formatter ([#1976](https://github.com/alex-snezhko/grain/issues/1976)) +* **stdlib:** Use default arguments in more of stdlib ([#1772](https://github.com/alex-snezhko/grain/issues/1772)) +* **stdlib:** Add `print` suffix default argument ([#1768](https://github.com/alex-snezhko/grain/issues/1768)) +* **graindoc:** Improve docgen for labeled & default arguments ([#1776](https://github.com/alex-snezhko/grain/issues/1776)) +* **stdlib:** Replace `Float64` arithmatic/comparison functions with operators ([#1957](https://github.com/alex-snezhko/grain/issues/1957)) +* **stdlib:** Replace `Float32` arithmatic/comparison functions with operators ([#1954](https://github.com/alex-snezhko/grain/issues/1954)) +* **stdlib:** Replace `Int64` arithmatic functions with operators ([#1935](https://github.com/alex-snezhko/grain/issues/1935)) +* **stdlib:** Replace `Int32` arithmatic functions with operators ([#1936](https://github.com/alex-snezhko/grain/issues/1936)) +* **stdlib:** Switch to using records for `getInternalStats` ([#1898](https://github.com/alex-snezhko/grain/issues/1898)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) +* **stdlib:** Reorder parameters to `List.insert` ([#1857](https://github.com/alex-snezhko/grain/issues/1857)) +* **stdlib:** Handle printing of reference cycles ([#1844](https://github.com/alex-snezhko/grain/issues/1844)) +* **compiler:** Change `->` to `=>` in type signatures ([#1855](https://github.com/alex-snezhko/grain/issues/1855)) +* **compiler:** Make types nonrecursive by default ([#1826](https://github.com/alex-snezhko/grain/issues/1826)) +* **compiler:** Remove static runtime pointers ([#1806](https://github.com/alex-snezhko/grain/issues/1806)) +* **compiler:** Changed comma to `and` in mutually rec types +* **compiler:** Changed comma to `and` in recursive types and bindings ([#1827](https://github.com/alex-snezhko/grain/issues/1827)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) +* **stdlib:** Replace `Result`/`Option` `and`/`or` functions with operators ([#1821](https://github.com/alex-snezhko/grain/issues/1821)) +* **compiler:** Reduce size of runtime heap ([#1807](https://github.com/alex-snezhko/grain/issues/1807)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) +* **stdlib:** Ensure `Array.fillRange` works with negative indexing & throws IndexOutOfBound ([#1761](https://github.com/alex-snezhko/grain/issues/1761)) +* **stdlib:** Remove extra space when converting Bytes to String ([#1800](https://github.com/alex-snezhko/grain/issues/1800)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) +* **stdlib:** Use Array length as default end in `Array.slice` function ([#1762](https://github.com/alex-snezhko/grain/issues/1762)) +* **stdlib:** Use String length as default end in `String.slice` function ([#1748](https://github.com/alex-snezhko/grain/issues/1748)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) +* **stdlib:** Group mutable/immutable data structures ([#1652](https://github.com/alex-snezhko/grain/issues/1652)) +* **compiler:** Optimize type metadata loading ([#1741](https://github.com/alex-snezhko/grain/issues/1741)) +* **compiler:** Labeled and default arguments ([#1623](https://github.com/alex-snezhko/grain/issues/1623)) +* **stdlib:** Replace bigint/number arithmetic functions with operators ([#1742](https://github.com/alex-snezhko/grain/issues/1742)) +* **stdlib:** Update Operator `uint` operator Names ([#1738](https://github.com/alex-snezhko/grain/issues/1738)) +* **stdlib:** Provide empty byte array from Bytes.make ([#1729](https://github.com/alex-snezhko/grain/issues/1729)) +* **stdlib:** Add optimization for `Number.pow(Rational, Int)` ([#1716](https://github.com/alex-snezhko/grain/issues/1716)) +* **compiler:** Custom box printing ([#1713](https://github.com/alex-snezhko/grain/issues/1713)) +* **stdlib:** Update Buffer/Bytes to use new integer types ([#1704](https://github.com/alex-snezhko/grain/issues/1704)) +* **compiler:** Require floats always have a digit on left & right of dot ([#1703](https://github.com/alex-snezhko/grain/issues/1703)) +* **compiler:** Remove 32-bit numbers from `Number` type ([#1683](https://github.com/alex-snezhko/grain/issues/1683)) +* **compiler:** Short integer values ([#1669](https://github.com/alex-snezhko/grain/issues/1669)) +* **compiler:** Supply primitive types via the compiler ([#1667](https://github.com/alex-snezhko/grain/issues/1667)) +* **stdlib:** Add `**` (pow) operator to Pervasives module ([#1690](https://github.com/alex-snezhko/grain/issues/1690)) +* **compiler:** Remove Exclusive/Inclusive Ranges, provide as record via compiler ([#1616](https://github.com/alex-snezhko/grain/issues/1616)) +* **stdlib:** Make queue and stack mutable & provide Immutable submodules ([#1479](https://github.com/alex-snezhko/grain/issues/1479)) +* **compiler:** Disallow multiple `provide`s of the same value ([#1689](https://github.com/alex-snezhko/grain/issues/1689)) +* **graindoc:** Only use original doc blocks when re-providing ([#1687](https://github.com/alex-snezhko/grain/issues/1687)) +* **graindoc:** Support docblocks on submodules ([#1684](https://github.com/alex-snezhko/grain/issues/1684)) +* **graindoc:** Remove section attribute ([#1681](https://github.com/alex-snezhko/grain/issues/1681)) +* **compiler:** Explicit abstract types ([#1680](https://github.com/alex-snezhko/grain/issues/1680)) +* **compiler:** Add Uint32 and Uint64 types ([#1531](https://github.com/alex-snezhko/grain/issues/1531)) +* **stdlib:** Remove `cons` and `empty` from Pervasives ([#1657](https://github.com/alex-snezhko/grain/issues/1657)) +* **stdlib:** Sys/File reading and writing operate on Bytes ([#1655](https://github.com/alex-snezhko/grain/issues/1655)) +* **compiler:** Make List a language-supplied type ([#1648](https://github.com/alex-snezhko/grain/issues/1648)) +* **stdlib:** Use correct casing for BigInt module name +* **graindoc:** Replace module attribute with docblock on module header ([#1647](https://github.com/alex-snezhko/grain/issues/1647)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) +* **compiler:** Change Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) +* **compiler:** Inline record constructors ([#1586](https://github.com/alex-snezhko/grain/issues/1586)) +* **stdlib:** Replace Number.nan & Number.infinity constants with keywords ([#1618](https://github.com/alex-snezhko/grain/issues/1618)) +* **compiler:** Remove support of single-argument tuples ([#1608](https://github.com/alex-snezhko/grain/issues/1608)) +* **stdlib:** `List.rotate` wraparound for count > length ([#1558](https://github.com/alex-snezhko/grain/issues/1558)) +* **compiler:** Include Option and Result as language-supplied types ([#1591](https://github.com/alex-snezhko/grain/issues/1591)) +* **stdlib:** Change array rotation direction ([#1552](https://github.com/alex-snezhko/grain/issues/1552)) +* **stdlib:** Support zipping arrays of different sizes ([#1402](https://github.com/alex-snezhko/grain/issues/1402)) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/alex-snezhko/grain/issues/1301)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/alex-snezhko/grain/issues/1300)) +* **stdlib:** Ensure Void return for forEach functions in List module ([#1307](https://github.com/alex-snezhko/grain/issues/1307)) +* **stdlib:** Provide correct types for BigInt operations ([#1297](https://github.com/alex-snezhko/grain/issues/1297)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/alex-snezhko/grain/issues/1167)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) +* **stdlib:** Add explicit void return type on Set.forEach ([#1225](https://github.com/alex-snezhko/grain/issues/1225)) +* **stdlib:** Add explicit void return type on Map.forEach ([#1220](https://github.com/alex-snezhko/grain/issues/1220)) +* **stdlib:** Add type aliases to regex lib ([#1036](https://github.com/alex-snezhko/grain/issues/1036)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/alex-snezhko/grain/issues/1103)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/alex-snezhko/grain/issues/1136)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) + +### Features + +* Add Hex Exponent Decimals ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **cli:** Allow specifying WASI environment variables and CLI args ([#1840](https://github.com/alex-snezhko/grain/issues/1840)) ([fb8fbf2](https://github.com/alex-snezhko/grain/commit/fb8fbf2b8ca2a024e3983d25b52443337ec9746a)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/alex-snezhko/grain/issues/1115)) ([0680826](https://github.com/alex-snezhko/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add hex float syntax ([#1743](https://github.com/alex-snezhko/grain/issues/1743)) ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **compiler:** Add Uint32 and Uint64 types ([#1531](https://github.com/alex-snezhko/grain/issues/1531)) ([42ffdc4](https://github.com/alex-snezhko/grain/commit/42ffdc408096901696abb6e3fa862b65d3d7e2a2)) +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/alex-snezhko/grain/issues/1167)) ([6f34de2](https://github.com/alex-snezhko/grain/commit/6f34de214b28358ea1df553685fa3a19336ddba9)) +* **compiler:** Call known functions across module boundaries ([#1175](https://github.com/alex-snezhko/grain/issues/1175)) ([b2d7440](https://github.com/alex-snezhko/grain/commit/b2d744034ec7e0601554531c910e9d0f5451d464)) +* **compiler:** Change `->` to `=>` in type signatures ([#1855](https://github.com/alex-snezhko/grain/issues/1855)) ([b3d68a4](https://github.com/alex-snezhko/grain/commit/b3d68a4f2e99222a69d7066164892077f83ebf8c)) +* **compiler:** Change Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) ([58c9a51](https://github.com/alex-snezhko/grain/commit/58c9a5145a6c1c53e280657e4e41f79f2662eb8a)) +* **compiler:** Changed comma to `and` in mutually rec types ([923625d](https://github.com/alex-snezhko/grain/commit/923625dfaf276be894546e67db66a17d00df9f14)) +* **compiler:** Changed comma to `and` in recursive types and bindings ([#1827](https://github.com/alex-snezhko/grain/issues/1827)) ([923625d](https://github.com/alex-snezhko/grain/commit/923625dfaf276be894546e67db66a17d00df9f14)) +* **compiler:** Convert `runtime/dataStructures.gr` to primitives ([#1145](https://github.com/alex-snezhko/grain/issues/1145)) ([2d43b28](https://github.com/alex-snezhko/grain/commit/2d43b286141df75f6b92300e48d2bc4804014872)) +* **compiler:** Convert Sys libraries to [@unsafe](https://github.com/unsafe) ([#1272](https://github.com/alex-snezhko/grain/issues/1272)) ([fcdfc2a](https://github.com/alex-snezhko/grain/commit/fcdfc2a815be889d5f0424a04dd5b2373dbd983b)) +* **compiler:** Custom box printing ([#1713](https://github.com/alex-snezhko/grain/issues/1713)) ([3c86e45](https://github.com/alex-snezhko/grain/commit/3c86e459235ad9bf0abbefb575021736ad45f310)) +* **compiler:** Don't close over global values ([#1134](https://github.com/alex-snezhko/grain/issues/1134)) ([e8caec6](https://github.com/alex-snezhko/grain/commit/e8caec6c2a5892e955c8827b18d8d436bebe6073)) +* **compiler:** Explicit abstract types ([#1680](https://github.com/alex-snezhko/grain/issues/1680)) ([58cd224](https://github.com/alex-snezhko/grain/commit/58cd2247441f16cfc95b415ad272da7a37b82fb5)) +* **compiler:** Include Option and Result as language-supplied types ([#1591](https://github.com/alex-snezhko/grain/issues/1591)) ([bd5403f](https://github.com/alex-snezhko/grain/commit/bd5403f94f30366adc7d3307adc3c6c4fa5e1803)) +* **compiler:** Inline record constructors ([#1586](https://github.com/alex-snezhko/grain/issues/1586)) ([43082f5](https://github.com/alex-snezhko/grain/commit/43082f52692d90b1419b6b72ebe66406a0a01d99)) +* **compiler:** Labeled and default arguments ([#1623](https://github.com/alex-snezhko/grain/issues/1623)) ([28a38ac](https://github.com/alex-snezhko/grain/commit/28a38ac149d396cd034b6c53b0aa3eb478ed29ed)) +* **compiler:** Make List a language-supplied type ([#1648](https://github.com/alex-snezhko/grain/issues/1648)) ([2ee1328](https://github.com/alex-snezhko/grain/commit/2ee13282427718d8849a334d085a3f833037127b)) +* **compiler:** Make types nonrecursive by default ([#1826](https://github.com/alex-snezhko/grain/issues/1826)) ([46b8a5a](https://github.com/alex-snezhko/grain/commit/46b8a5aaa384eb52b34b82faea5b0a06adc22568)) +* **compiler:** Module system ([#1584](https://github.com/alex-snezhko/grain/issues/1584)) ([752da69](https://github.com/alex-snezhko/grain/commit/752da69057b2b06a1415710d6da93fbb948e8185)) +* **compiler:** Rational number type ([#1603](https://github.com/alex-snezhko/grain/issues/1603)) ([350f850](https://github.com/alex-snezhko/grain/commit/350f8503c3e6976275aaa8ee4d8c02554e7c238a)) +* **compiler:** Reduce size of runtime heap ([#1807](https://github.com/alex-snezhko/grain/issues/1807)) ([246f894](https://github.com/alex-snezhko/grain/commit/246f894951be6ee4f2cb13df3d851583efc1498d)) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) ([8d465b7](https://github.com/alex-snezhko/grain/commit/8d465b7cd73d9549eeb89c7d52083d592ebd66fd)) +* **compiler:** Remove 32-bit numbers from `Number` type ([#1683](https://github.com/alex-snezhko/grain/issues/1683)) ([50bf8ee](https://github.com/alex-snezhko/grain/commit/50bf8ee39d017805091fe1ae7536621e956c03ce)) +* **compiler:** Remove Exclusive/Inclusive Ranges, provide as record via compiler ([#1616](https://github.com/alex-snezhko/grain/issues/1616)) ([49a399d](https://github.com/alex-snezhko/grain/commit/49a399dbcfc24957a3875ae094ad0a2c4b636a32)) +* **compiler:** Remove Pervasives' dependency on toString when types are elided ([#1664](https://github.com/alex-snezhko/grain/issues/1664)) ([f703476](https://github.com/alex-snezhko/grain/commit/f703476db8d376d68a1c50fece48f335f455a791)) +* **compiler:** Remove support of single-argument tuples ([#1608](https://github.com/alex-snezhko/grain/issues/1608)) ([509cd85](https://github.com/alex-snezhko/grain/commit/509cd85801eb165c0ce65347047a0380f2304b25)) +* **compiler:** Short integer values ([#1669](https://github.com/alex-snezhko/grain/issues/1669)) ([fc4670d](https://github.com/alex-snezhko/grain/commit/fc4670de13c46dfac3def1ca59d718ffb36aca1c)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/alex-snezhko/grain/issues/1103)) ([095385e](https://github.com/alex-snezhko/grain/commit/095385e7c67bbc7a417a21acaf6f1c498c75ce63)) +* **compiler:** Streamlined reference counting ([#1714](https://github.com/alex-snezhko/grain/issues/1714)) ([0711868](https://github.com/alex-snezhko/grain/commit/071186801ccf7f6dc3eef653382f6d82b8b23b6c)) +* **compiler:** Supply primitive types via the compiler ([#1667](https://github.com/alex-snezhko/grain/issues/1667)) ([b41feb7](https://github.com/alex-snezhko/grain/commit/b41feb73976d4ef3d9c17c31f0dbcfc22df32d9d)) +* **compiler:** Update include syntax ([#2043](https://github.com/alex-snezhko/grain/issues/2043)) ([5f44d4e](https://github.com/alex-snezhko/grain/commit/5f44d4e5a1cd432faddcfb1a138ac6a7797423fd)) +* **compiler:** Update use syntax ([#2041](https://github.com/alex-snezhko/grain/issues/2041)) ([cd346ab](https://github.com/alex-snezhko/grain/commit/cd346ab761aaa5e8e7692ebce1bae4e5e7e47f45)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/alex-snezhko/grain/issues/1116)) ([0f681ea](https://github.com/alex-snezhko/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **graindoc:** Add attribute for exceptions that may be thrown ([#1492](https://github.com/alex-snezhko/grain/issues/1492)) ([b2e75c7](https://github.com/alex-snezhko/grain/commit/b2e75c7452ef2544c768729c7a45e21ff31616d0)) +* **graindoc:** Allow directory input & output ([#1263](https://github.com/alex-snezhko/grain/issues/1263)) ([d4cb8ab](https://github.com/alex-snezhko/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **graindoc:** Allow doc comments on variants and record fields ([#1852](https://github.com/alex-snezhko/grain/issues/1852)) ([53f770c](https://github.com/alex-snezhko/grain/commit/53f770c24ef9057b7b5e63d3dda75b166c28536d)) +* **graindoc:** Improve docgen for labeled & default arguments ([#1776](https://github.com/alex-snezhko/grain/issues/1776)) ([be7ff9d](https://github.com/alex-snezhko/grain/commit/be7ff9d9ec2237ad5028f8d9e3e2f10a6bd3f9dd)) +* **graindoc:** Only use original doc blocks when re-providing ([#1687](https://github.com/alex-snezhko/grain/issues/1687)) ([97c7ce4](https://github.com/alex-snezhko/grain/commit/97c7ce4dfb7e4474358a62c3699dd3edc121c961)) +* **graindoc:** Replace module attribute with docblock on module header ([#1647](https://github.com/alex-snezhko/grain/issues/1647)) ([2ff9d9e](https://github.com/alex-snezhko/grain/commit/2ff9d9ec49c727778c6d0ee74219f746df8a11e2)) +* **graindoc:** Support deprecations on module docblocks ([#1498](https://github.com/alex-snezhko/grain/issues/1498)) ([b3dc85c](https://github.com/alex-snezhko/grain/commit/b3dc85c0fc311479de4e57774a075c3a922216ba)) +* **graindoc:** Support docblocks on submodules ([#1684](https://github.com/alex-snezhko/grain/issues/1684)) ([bc13017](https://github.com/alex-snezhko/grain/commit/bc1301751c90380e53c0ca9048a928468245d13c)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/alex-snezhko/grain/issues/1274)) ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Implement new formatter ([#1976](https://github.com/alex-snezhko/grain/issues/1976)) ([1568aa0](https://github.com/alex-snezhko/grain/commit/1568aa06f625c4d91d9151e3f969ec648e8d4231)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Implement Pervasives.compare ([#1399](https://github.com/alex-snezhko/grain/issues/1399)) ([ebd87e4](https://github.com/alex-snezhko/grain/commit/ebd87e4308a8950fd95f060ebc446833b064237c)) +* Remove js-runner ([#1585](https://github.com/alex-snezhko/grain/issues/1585)) ([e10d612](https://github.com/alex-snezhko/grain/commit/e10d61295c42237b7b472cd3c5d07f2c5f28d79b)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **runtime:** Allow modulo on floating point numbers ([#1914](https://github.com/alex-snezhko/grain/issues/1914)) ([f90d8af](https://github.com/alex-snezhko/grain/commit/f90d8af2ee2373b5420655c9e80826f56fffaa91)) +* **runtime:** Optimize simple number comparison ([f7ceae7](https://github.com/alex-snezhko/grain/commit/f7ceae729260bc3c5eee017954aa7e242c3f8cb5)) +* **stdlib:** `List.rotate` wraparound for count > length ([#1558](https://github.com/alex-snezhko/grain/issues/1558)) ([6dd9680](https://github.com/alex-snezhko/grain/commit/6dd968009b5d700f2e31ed6f4b1074dbdc4299e7)) +* **stdlib:** Add `**` (pow) operator to Pervasives module ([#1690](https://github.com/alex-snezhko/grain/issues/1690)) ([b16b455](https://github.com/alex-snezhko/grain/commit/b16b4552952fd554657ac1b5bcc868dca0600476)) +* **stdlib:** Add `**` operator to `Int32` module ([#1938](https://github.com/alex-snezhko/grain/issues/1938)) ([32b9639](https://github.com/alex-snezhko/grain/commit/32b9639be58408d587f9c9c29a4b56857e6f328f)) +* **stdlib:** Add `**` operator to `Int64` module ([#1937](https://github.com/alex-snezhko/grain/issues/1937)) ([48de28b](https://github.com/alex-snezhko/grain/commit/48de28bba8be2e157cfb82e90e709759659ab3b4)) +* **stdlib:** Add `==` operator to `Queue` module ([#1931](https://github.com/alex-snezhko/grain/issues/1931)) ([3c0ea18](https://github.com/alex-snezhko/grain/commit/3c0ea189298d9bc4f14824a76814e9181e57a879)) +* **stdlib:** Add `addCharFromCodePoint` to Buffer module ([#1883](https://github.com/alex-snezhko/grain/issues/1883)) ([18b553a](https://github.com/alex-snezhko/grain/commit/18b553a6f69876941bc7153c4e44d4db5547d86b)) +* **stdlib:** Add `asin`, `acos`, `atan`, `isClose` to Number module ([#1699](https://github.com/alex-snezhko/grain/issues/1699)) ([353b544](https://github.com/alex-snezhko/grain/commit/353b544948861d39cbeef97273f661eed2e9748d)) +* **stdlib:** Add `charCodeAt` function to String module ([#1376](https://github.com/alex-snezhko/grain/issues/1376)) ([c3abbc9](https://github.com/alex-snezhko/grain/commit/c3abbc991c8b05e3de20e670d2bc3e491feebf8a)) +* **stdlib:** Add `chunk` function to Array module ([#1708](https://github.com/alex-snezhko/grain/issues/1708)) ([fba7c1d](https://github.com/alex-snezhko/grain/commit/fba7c1d18447917d7544e780353684452321b38e)) +* **stdlib:** Add `empty` constant to ImmutablePriorityQueue module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `empty` constant to Queue module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `empty` constant to Stack module ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Add `exp` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `factorial` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `fromArray` to `Queue` module ([#1932](https://github.com/alex-snezhko/grain/issues/1932)) ([1c35a94](https://github.com/alex-snezhko/grain/commit/1c35a9438008d40c8d3a49810131c69d9b8b97a0)) +* **stdlib:** Add `gamma` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `ImmutableArray` module ([#1477](https://github.com/alex-snezhko/grain/issues/1477)) ([a34d8b9](https://github.com/alex-snezhko/grain/commit/a34d8b9e8ce629c40d65b99561c0f41fa400542e)) +* **stdlib:** Add `infinity` constant to the Number module ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Add `isEmpty` to `List` module ([#1860](https://github.com/alex-snezhko/grain/issues/1860)) ([7362189](https://github.com/alex-snezhko/grain/commit/736218950e7433512554f1b5fea4bc5cbfe97160)) +* **stdlib:** add `isEmpty` to `String` module ([#1861](https://github.com/alex-snezhko/grain/issues/1861)) ([e8cb932](https://github.com/alex-snezhko/grain/commit/e8cb93298cf8776876efc7972f09f0eef2d57c58)) +* **stdlib:** Add `lastIndexOf` function to String module ([#1372](https://github.com/alex-snezhko/grain/issues/1372)) ([b73d9bf](https://github.com/alex-snezhko/grain/commit/b73d9bf9ff3291b83e6f4263e392395d04dc9995)) +* **stdlib:** Add `linearInterpolate`, `linearMap` and `clamp` ([#1707](https://github.com/alex-snezhko/grain/issues/1707)) ([15842a1](https://github.com/alex-snezhko/grain/commit/15842a1030e9c0937d7cd697508b083ae06315a7)) +* **stdlib:** Add `nan` constant to the Number module ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Add `parse` function to Number module ([#1517](https://github.com/alex-snezhko/grain/issues/1517)) ([59e89d1](https://github.com/alex-snezhko/grain/commit/59e89d12b7fcf2626c8adb45c742a787171b7024)) +* **stdlib:** Add `parseFloat` function to Number module ([#1288](https://github.com/alex-snezhko/grain/issues/1288)) ([e21f2b1](https://github.com/alex-snezhko/grain/commit/e21f2b137f7dcd67cccf9debf695db852dc2afc5)) +* **stdlib:** Add `pow` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `print` suffix default argument ([#1768](https://github.com/alex-snezhko/grain/issues/1768)) ([6701170](https://github.com/alex-snezhko/grain/commit/6701170a1ecd91a8b7cb566d2ff99402d24c18e1)) +* **stdlib:** Add `replaceAll` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `replaceFirst` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `replaceLast` function to String module ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add `split` function to Regex module ([#1469](https://github.com/alex-snezhko/grain/issues/1469)) ([0c1eb73](https://github.com/alex-snezhko/grain/commit/0c1eb73d01e30f457138c6e3b603a9faddcf8e9b)) +* **stdlib:** Add `splitAll` function to Regex module ([0c1eb73](https://github.com/alex-snezhko/grain/commit/0c1eb73d01e30f457138c6e3b603a9faddcf8e9b)) +* **stdlib:** Add `tan` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `toArray` to `Queue` ([#1930](https://github.com/alex-snezhko/grain/issues/1930)) ([7c865a4](https://github.com/alex-snezhko/grain/commit/7c865a46811ee078325f55ebcaa054c9f1920ff6)) +* **stdlib:** Add `toDegrees` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add `toIntegerRatio` and `fromIntegerRatio` to Rational Library ([#1746](https://github.com/alex-snezhko/grain/issues/1746)) ([008a735](https://github.com/alex-snezhko/grain/commit/008a735051c02fbcd7bd47d7735937a61afd0cd6)) +* **stdlib:** Add `toList` and `fromList` functions to `Queue` module ([#1866](https://github.com/alex-snezhko/grain/issues/1866)) ([7cdcf95](https://github.com/alex-snezhko/grain/commit/7cdcf953d451396e56122bcf062019171102d8d6)) +* **stdlib:** Add `toRadians` function to Number module ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add additional functions to Number module ([#1443](https://github.com/alex-snezhko/grain/issues/1443)) ([5af9a99](https://github.com/alex-snezhko/grain/commit/5af9a99b2ec3b4a2d6745cb22b70defe2b366cfa)) +* **stdlib:** Add ASCII utilities to String, Char ([#1975](https://github.com/alex-snezhko/grain/issues/1975)) ([f65002d](https://github.com/alex-snezhko/grain/commit/f65002d8c16c927577a4593351882c0734dd9897)) +* **stdlib:** Add module for pseudo-random number generation ([#921](https://github.com/alex-snezhko/grain/issues/921)) ([db1fa4e](https://github.com/alex-snezhko/grain/commit/db1fa4e491d35bb582beaba12157884647384a77)) +* **stdlib:** Add number constants to number libraries ([#1331](https://github.com/alex-snezhko/grain/issues/1331)) ([f640ec2](https://github.com/alex-snezhko/grain/commit/f640ec20aa507c83c9cde290b911d0adcb4e8254)) +* **stdlib:** Add optimization for `Number.pow(Rational, Int)` ([#1716](https://github.com/alex-snezhko/grain/issues/1716)) ([67bee5c](https://github.com/alex-snezhko/grain/commit/67bee5c0982d35f0d6a1350e002b7062a498afe7)) +* **stdlib:** Add Path module for working with system paths ([#1452](https://github.com/alex-snezhko/grain/issues/1452)) ([900e976](https://github.com/alex-snezhko/grain/commit/900e976654565b3618e2215e9b7cefbda873d9a8)) +* **stdlib:** Add replacement functions to String module ([#1441](https://github.com/alex-snezhko/grain/issues/1441)) ([5606cd2](https://github.com/alex-snezhko/grain/commit/5606cd246583884175b135cbeb29024400651b34)) +* **stdlib:** Add unsigned versions of Int32/Int64 comparison operations ([#831](https://github.com/alex-snezhko/grain/issues/831)) ([5f20868](https://github.com/alex-snezhko/grain/commit/5f20868e7b6e3f52d62c8531d99d1130ca84961e)) +* **stdlib:** Added `empty` constant to immutable data structures ([#1466](https://github.com/alex-snezhko/grain/issues/1466)) ([427335f](https://github.com/alex-snezhko/grain/commit/427335fa5c211445f727a650ca06adacfe9c5310)) +* **stdlib:** Added Bytes.clear function. Avoid allocation in Buffer.clear ([#1124](https://github.com/alex-snezhko/grain/issues/1124)) ([4afd17a](https://github.com/alex-snezhko/grain/commit/4afd17a91e59027fa7af0fe58977bdbe942f8072)) +* **stdlib:** Change array rotation direction ([#1552](https://github.com/alex-snezhko/grain/issues/1552)) ([bbe56ad](https://github.com/alex-snezhko/grain/commit/bbe56ade517bd685d52384d32aecb94d25d379f7)) +* **stdlib:** Convert runtime printing utils to [@unsafe](https://github.com/unsafe) ([#1135](https://github.com/alex-snezhko/grain/issues/1135)) ([403e1d2](https://github.com/alex-snezhko/grain/commit/403e1d20e2082fe2dcd2721f83f6c2b36d4154bf)) +* **stdlib:** Convert unsafe `Wasm` functions to operators ([#1734](https://github.com/alex-snezhko/grain/issues/1734)) ([114d17b](https://github.com/alex-snezhko/grain/commit/114d17be4463772bbc84ebc408e9cf2b482c6103)) +* **stdlib:** Handle printing of reference cycles ([#1844](https://github.com/alex-snezhko/grain/issues/1844)) ([49c854e](https://github.com/alex-snezhko/grain/commit/49c854eb428ebbe57db5a63d5e7f87faaded3159)) +* **stdlib:** Implement `fromArray` in PriorityQueue & ImmutablePriorityQueue modules ([#1451](https://github.com/alex-snezhko/grain/issues/1451)) ([d321f84](https://github.com/alex-snezhko/grain/commit/d321f84174fee2a340745a9f55994fbfa23f6c7a)) +* **stdlib:** Implement `isFloat`, `isInteger` & `isRational` in Number module ([#1393](https://github.com/alex-snezhko/grain/issues/1393)) ([0af0669](https://github.com/alex-snezhko/grain/commit/0af066993a2b80e417d2c625b27fd11cb1f1f55f)) +* **stdlib:** Implement ImmutableMap and ImmutableSet ([#1414](https://github.com/alex-snezhko/grain/issues/1414)) ([b31120d](https://github.com/alex-snezhko/grain/commit/b31120d41be668c48b9bca9f2b944616371a8ab4)) +* **stdlib:** Implement List.zip, List.unzip, List.zipWith, Array.reduceRight, Array.zipWith ([#1363](https://github.com/alex-snezhko/grain/issues/1363)) ([3e7c147](https://github.com/alex-snezhko/grain/commit/3e7c147fea2d2fb8b7c5a3d6b3eb1453f2861e36)) +* **stdlib:** Implement mutable/immutable priority queues ([#1397](https://github.com/alex-snezhko/grain/issues/1397)) ([244be1b](https://github.com/alex-snezhko/grain/commit/244be1b7254caf0b451902ac56413382eb196747)) +* **stdlib:** Implement Number.sin and Number.cos ([#1343](https://github.com/alex-snezhko/grain/issues/1343)) ([9357126](https://github.com/alex-snezhko/grain/commit/93571267b7df53e1cb9f61eaebf8748885e7392c)) +* **stdlib:** Improve performance in Array & List modules ([#1487](https://github.com/alex-snezhko/grain/issues/1487)) ([2168f6a](https://github.com/alex-snezhko/grain/commit/2168f6ade151548bc655debeb8a1bc09ce87cb77)) +* **stdlib:** Improve performance of `flatMap`, `some`, and `every` functions in Array module ([2168f6a](https://github.com/alex-snezhko/grain/commit/2168f6ade151548bc655debeb8a1bc09ce87cb77)) +* **stdlib:** Improve performance of `some` and `every` functions in List module ([2168f6a](https://github.com/alex-snezhko/grain/commit/2168f6ade151548bc655debeb8a1bc09ce87cb77)) +* **stdlib:** Improved efficiency of constructing a PriorityQueue from a List ([d321f84](https://github.com/alex-snezhko/grain/commit/d321f84174fee2a340745a9f55994fbfa23f6c7a)) +* **stdlib:** Make queue and stack mutable & provide Immutable submodules ([#1479](https://github.com/alex-snezhko/grain/issues/1479)) ([979a20c](https://github.com/alex-snezhko/grain/commit/979a20ce6b734b90bc38c11ee6a4534ea8e555b8)) +* **stdlib:** Marshal ([#1352](https://github.com/alex-snezhko/grain/issues/1352)) ([d659de2](https://github.com/alex-snezhko/grain/commit/d659de2d92260f7726164876827c639bfd9d0590)) +* **stdlib:** Optimize string trimming ([#1442](https://github.com/alex-snezhko/grain/issues/1442)) ([0212247](https://github.com/alex-snezhko/grain/commit/0212247a7fbf0d54085959de2853f3fe66cd8b12)) +* **stdlib:** Provide empty byte array from Bytes.make ([#1729](https://github.com/alex-snezhko/grain/issues/1729)) ([fde3064](https://github.com/alex-snezhko/grain/commit/fde3064428fa2244e73932d5992ac722a26ebfe4)) +* **stdlib:** Remove parseInt dependency on Pervasives ([#1649](https://github.com/alex-snezhko/grain/issues/1649)) ([9408568](https://github.com/alex-snezhko/grain/commit/9408568a3457c2084afc22f958334e87a4183ccf)) +* **stdlib:** Reorder parameters to `List.insert` ([#1857](https://github.com/alex-snezhko/grain/issues/1857)) ([973f3f3](https://github.com/alex-snezhko/grain/commit/973f3f34c39a4ac7a552e378b84020d5c647ce86)) +* **stdlib:** Replace `Float32` arithmatic/comparison functions with operators ([#1954](https://github.com/alex-snezhko/grain/issues/1954)) ([52cc15a](https://github.com/alex-snezhko/grain/commit/52cc15a5251cd0003fcfbe243c7b7c940a61d429)) +* **stdlib:** Replace `Float64` arithmatic/comparison functions with operators ([#1957](https://github.com/alex-snezhko/grain/issues/1957)) ([dea4cb5](https://github.com/alex-snezhko/grain/commit/dea4cb54d10b9cecbf54ed30048c0937bc38cea2)) +* **stdlib:** Replace `Int32` arithmatic functions with operators ([#1936](https://github.com/alex-snezhko/grain/issues/1936)) ([8a69dd3](https://github.com/alex-snezhko/grain/commit/8a69dd393e002585464029a42a4362b6edfee662)) +* **stdlib:** Replace `Int64` arithmatic functions with operators ([#1935](https://github.com/alex-snezhko/grain/issues/1935)) ([cfb909c](https://github.com/alex-snezhko/grain/commit/cfb909c60d55d94eb869c389da28a8b3a1bc502f)) +* **stdlib:** Replace `Result`/`Option` `and`/`or` functions with operators ([#1821](https://github.com/alex-snezhko/grain/issues/1821)) ([686de7e](https://github.com/alex-snezhko/grain/commit/686de7ec3c83d092c7a0407657695e1bc671abd7)) +* **stdlib:** Simplify `equal` using `Memory.compare` ([#1972](https://github.com/alex-snezhko/grain/issues/1972)) ([dc21976](https://github.com/alex-snezhko/grain/commit/dc219763ebc7bcfcd6c411d7b2b1f152e5e87d6e)) +* **stdlib:** Support zipping arrays of different sizes ([#1402](https://github.com/alex-snezhko/grain/issues/1402)) ([b8ae3d6](https://github.com/alex-snezhko/grain/commit/b8ae3d69c98ada45bc592fb3097f21bc8a0d40bd)) +* **stdlib:** Use Array length as default end in `Array.slice` function ([#1762](https://github.com/alex-snezhko/grain/issues/1762)) ([a698fdc](https://github.com/alex-snezhko/grain/commit/a698fdc55ef45e8b0d156d5bb3cacc9e21d758ac)) +* **stdlib:** Use String length as default end in `String.slice` function ([#1748](https://github.com/alex-snezhko/grain/issues/1748)) ([b7c41a6](https://github.com/alex-snezhko/grain/commit/b7c41a6421dd0392bfec9f1791d9314556af9318)) + + +### Bug Fixes + +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **compiler:** Correctly handle underscores in bigint literals ([0af0669](https://github.com/alex-snezhko/grain/commit/0af066993a2b80e417d2c625b27fd11cb1f1f55f)) +* **compiler:** Disallow multiple `provide`s of the same value ([#1689](https://github.com/alex-snezhko/grain/issues/1689)) ([7ab7ddc](https://github.com/alex-snezhko/grain/commit/7ab7ddc1c7e9eae221edcf787b733ef7acf97904)) +* **compiler:** Panic immediately when out of memory ([#1450](https://github.com/alex-snezhko/grain/issues/1450)) ([943d47d](https://github.com/alex-snezhko/grain/commit/943d47dddde2d88fd96727e9d7ed8501efec42ef)) +* **compiler:** Provide appropriate error during invalid array access ([#1556](https://github.com/alex-snezhko/grain/issues/1556)) ([3d7b9e3](https://github.com/alex-snezhko/grain/commit/3d7b9e3d99b2639b46080e1c564d1453cd80f666)) +* **compiler:** Remove static runtime pointers ([#1806](https://github.com/alex-snezhko/grain/issues/1806)) ([8d76dc9](https://github.com/alex-snezhko/grain/commit/8d76dc917cf109e3b8496faca565fd9904fa0b22)) +* Fix String.ReplaceAll ([#1705](https://github.com/alex-snezhko/grain/issues/1705)) ([d3af004](https://github.com/alex-snezhko/grain/commit/d3af0049f6910b10065ddd72c46e5364fe53c4ff)) +* **graindoc:** Add parens around infix operators in titles ([#1303](https://github.com/alex-snezhko/grain/issues/1303)) ([acba9c1](https://github.com/alex-snezhko/grain/commit/acba9c1757688756c3ca98b22a0a159b8d8f9e7d)) +* **graindoc:** Preserve indentation in Doc comments during trim ([#1119](https://github.com/alex-snezhko/grain/issues/1119)) ([b8a6d57](https://github.com/alex-snezhko/grain/commit/b8a6d57cce274bfbc2cc16c5b25215b042d4264c)) +* **graindoc:** Remove spaces between parens and infix idents ([#1302](https://github.com/alex-snezhko/grain/issues/1302)) ([95e596f](https://github.com/alex-snezhko/grain/commit/95e596fa3fdae5a8a0e07d76ff8c11eeab99e8d7)) +* **graindoc:** Use defined module name throughout generated doc ([#1406](https://github.com/alex-snezhko/grain/issues/1406)) ([c33a777](https://github.com/alex-snezhko/grain/commit/c33a777a93d5e40a081991db5e6ea61ade4fbabc)) +* **graindoc:** Use value_descriptions and type_declarations defined by the module signature ([#1241](https://github.com/alex-snezhko/grain/issues/1241)) ([5896242](https://github.com/alex-snezhko/grain/commit/5896242c324622f3329c144bd2c9642aade9d049)) +* **grainfmt:** Add parentheses around some binops for precedence clarity ([#1514](https://github.com/alex-snezhko/grain/issues/1514)) ([3ac27cc](https://github.com/alex-snezhko/grain/commit/3ac27cc6e17b896dae0ef2cb5f5de510c7c2dd60)) +* **grainfmt:** Handle chained value bindings properly ([#1467](https://github.com/alex-snezhko/grain/issues/1467)) ([07bfcd3](https://github.com/alex-snezhko/grain/commit/07bfcd3f15c34ef99b05531591b1473f206b7395)) +* **grainfmt:** Handle multiple line items and comments better ([#1460](https://github.com/alex-snezhko/grain/issues/1460)) ([5395fd4](https://github.com/alex-snezhko/grain/commit/5395fd45b79fb3bcf3dd1ec52a1d5973a23a4bdc)) +* **grainfmt:** Indent lines when wrapping infix operators ([#1465](https://github.com/alex-snezhko/grain/issues/1465)) ([d705849](https://github.com/alex-snezhko/grain/commit/d705849ea8d9073e608576b77adeae834c454e0b)) +* **grainfmt:** Remove parens around annotated types ([#1109](https://github.com/alex-snezhko/grain/issues/1109)) ([0ca66bd](https://github.com/alex-snezhko/grain/commit/0ca66bd43703826f86ef5b28b49d250af219fb0b)) +* **runtime:** Handle bigint mul/div within Number correctly ([#1475](https://github.com/alex-snezhko/grain/issues/1475)) ([0fe8aa6](https://github.com/alex-snezhko/grain/commit/0fe8aa6a96a9c5ebf2f2bf2e1f28578badfb337f)) +* **runtime:** Properly divide bigints in the number type ([59e89d1](https://github.com/alex-snezhko/grain/commit/59e89d12b7fcf2626c8adb45c742a787171b7024)) +* **stdlib:** Add explicit void return type on Map.forEach ([#1220](https://github.com/alex-snezhko/grain/issues/1220)) ([ab2066a](https://github.com/alex-snezhko/grain/commit/ab2066aadffa8813344d9df7c7a10ec0f76751b6)) +* **stdlib:** Add explicit void return type on Set.forEach ([#1225](https://github.com/alex-snezhko/grain/issues/1225)) ([694e6cf](https://github.com/alex-snezhko/grain/commit/694e6cf8fcd061a77b2915dc0ea9e9b1ae143ae4)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/alex-snezhko/grain/issues/1136)) ([0c7cb82](https://github.com/alex-snezhko/grain/commit/0c7cb820d49cda74598680cc614c0d893b4d2b40)) +* **stdlib:** Buffer.toBytes should not expose the raw instance of Bytes used by the buffer ([#1130](https://github.com/alex-snezhko/grain/issues/1130)) ([d2bb585](https://github.com/alex-snezhko/grain/commit/d2bb585d3e2092f1331a679f4e84a9500b8c87a5)) +* **stdlib:** Correctly promote numbers to bigints when left-shifting ([#1354](https://github.com/alex-snezhko/grain/issues/1354)) ([5280e98](https://github.com/alex-snezhko/grain/commit/5280e98a91a57fae074299fc7bad3c41f69fa2a3)) +* **stdlib:** Ensure `Array.fillRange` works with negative indexing & throws IndexOutOfBound ([#1761](https://github.com/alex-snezhko/grain/issues/1761)) ([3c3c4d9](https://github.com/alex-snezhko/grain/commit/3c3c4d9ced8168287ecbd23ee71948c5592e3b66)) +* **stdlib:** Ensure Void return for forEach functions in List module ([#1307](https://github.com/alex-snezhko/grain/issues/1307)) ([31f480c](https://github.com/alex-snezhko/grain/commit/31f480c22e0a39b347fc3a48e1d0b5bd40c2f19e)) +* **stdlib:** Fix anchoring behavior in Regex.replaceAll ([#1440](https://github.com/alex-snezhko/grain/issues/1440)) ([d513eff](https://github.com/alex-snezhko/grain/commit/d513effe569d0aa0d44c974596fd285f1ad8d57d)) +* **stdlib:** Fix float printing in dtoa ([#1165](https://github.com/alex-snezhko/grain/issues/1165)) ([2987210](https://github.com/alex-snezhko/grain/commit/2987210648873ab474990ff2b7146a489fecb268)) +* **stdlib:** Fix handling of `NaN` and `Infinity` in Number module ([#1457](https://github.com/alex-snezhko/grain/issues/1457)) ([c24f6c1](https://github.com/alex-snezhko/grain/commit/c24f6c1cfae87632a003c0337c29ec98a80cfda2)) +* **stdlib:** Fix NaN comparisons ([#1543](https://github.com/alex-snezhko/grain/issues/1543)) ([f7ceae7](https://github.com/alex-snezhko/grain/commit/f7ceae729260bc3c5eee017954aa7e242c3f8cb5)) +* **stdlib:** Fix overzealous Memory.fill in Buffer.truncate ([#1781](https://github.com/alex-snezhko/grain/issues/1781)) ([e1f24e9](https://github.com/alex-snezhko/grain/commit/e1f24e941a392f1ac6464683d71f87eab6787220)) +* **stdlib:** Fixed a memory leak in Buffer.addStringSlice. ([#1122](https://github.com/alex-snezhko/grain/issues/1122)) ([c4e1911](https://github.com/alex-snezhko/grain/commit/c4e19110bd9923e58a7953fcbcef18bf07f3efd6)) +* **stdlib:** Fixed length and byteLength for strings over 2GiB. ([#1126](https://github.com/alex-snezhko/grain/issues/1126)) ([08a9487](https://github.com/alex-snezhko/grain/commit/08a948709270a9aa4ac853c2887bc652c4734f36)) +* **stdlib:** Make Bytes.length handle sizes over 2GiB ([#1123](https://github.com/alex-snezhko/grain/issues/1123)) ([d7386eb](https://github.com/alex-snezhko/grain/commit/d7386eb36c32452d69a734b447015b4db23f1ac4)) +* **stdlib:** Make toNumber functions respect Number invariants ([#1347](https://github.com/alex-snezhko/grain/issues/1347)) ([78db882](https://github.com/alex-snezhko/grain/commit/78db8820cf5667a4d6737c9109f4223c1348b245)) +* **stdlib:** Prevent addBytesSlice throwing error on empty buffer ([#1394](https://github.com/alex-snezhko/grain/issues/1394)) ([bdd4be4](https://github.com/alex-snezhko/grain/commit/bdd4be46730290908b7b939f41679acce7834167)) +* **stdlib:** Properly handle extremely large integer bases in `Number.(**)` ([#1950](https://github.com/alex-snezhko/grain/issues/1950)) ([84c076f](https://github.com/alex-snezhko/grain/commit/84c076fb3b7b34a3fec6dfd2c527ca4833414ff4)) +* **stdlib:** Properly resize empty Queue on push ([#1865](https://github.com/alex-snezhko/grain/issues/1865)) ([f7727ef](https://github.com/alex-snezhko/grain/commit/f7727ef2158f63dc8c88a5b824b41e31495f0f51)) +* **stdlib:** Properly resize empty Stack on push ([#1867](https://github.com/alex-snezhko/grain/issues/1867)) ([b90d924](https://github.com/alex-snezhko/grain/commit/b90d924a38f8a7f82a7c972f8213ab9ec8561820)) +* **stdlib:** Provide correct types for BigInt operations ([#1297](https://github.com/alex-snezhko/grain/issues/1297)) ([fdd2f1c](https://github.com/alex-snezhko/grain/commit/fdd2f1c49b938a013d6ae199b5e662cb93d051e6)) +* **stdlib:** Remove extra space when converting Bytes to String ([#1800](https://github.com/alex-snezhko/grain/issues/1800)) ([543807b](https://github.com/alex-snezhko/grain/commit/543807b1156aecc93396c12121ada15f4d2bd046)) +* **stdlib:** Remove intermediate resizes in Buffer.autogrow ([#1125](https://github.com/alex-snezhko/grain/issues/1125)) ([c1695d0](https://github.com/alex-snezhko/grain/commit/c1695d066ccd40b3118c5c870353addeef67bfc1)) +* **stdlib:** Remove memory corruption in File.fdReaddir ([#1573](https://github.com/alex-snezhko/grain/issues/1573)) ([060fc7b](https://github.com/alex-snezhko/grain/commit/060fc7ba4e5c4d86098eafbee09bbce13bca32c3)) +* **stdlib:** Return early from `Process.argv()` if length is zero ([#1817](https://github.com/alex-snezhko/grain/issues/1817)) ([8ccea28](https://github.com/alex-snezhko/grain/commit/8ccea288feb7f981adaecd29ba1324fefb192b69)) +* **stdlib:** Sys/File reading and writing operate on Bytes ([#1655](https://github.com/alex-snezhko/grain/issues/1655)) ([17cb28d](https://github.com/alex-snezhko/grain/commit/17cb28d25f4b1f2cf8943429136c863f66447675)) +* **stdlib:** Use correct casing for BigInt module name ([2ff9d9e](https://github.com/alex-snezhko/grain/commit/2ff9d9ec49c727778c6d0ee74219f746df8a11e2)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/alex-snezhko/grain/issues/1301)) ([bad5897](https://github.com/alex-snezhko/grain/commit/bad5897062444ec4d4ace805adcd382725b86125)) + + +### Miscellaneous Chores + +* **compiler:** Optimize type metadata loading ([#1741](https://github.com/alex-snezhko/grain/issues/1741)) ([a4519bc](https://github.com/alex-snezhko/grain/commit/a4519bc88d9fe12159495e995fcaa74834d5a361)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) ([3ae8eaa](https://github.com/alex-snezhko/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Require floats always have a digit on left & right of dot ([#1703](https://github.com/alex-snezhko/grain/issues/1703)) ([b657e1c](https://github.com/alex-snezhko/grain/commit/b657e1cf68d4b20bfb06d662b1fc8687836e5104)) +* Drop node 14 support ([#1092](https://github.com/alex-snezhko/grain/issues/1092)) ([ef4358f](https://github.com/alex-snezhko/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **graindoc:** Remove section attribute ([#1681](https://github.com/alex-snezhko/grain/issues/1681)) ([e969ad7](https://github.com/alex-snezhko/grain/commit/e969ad75e017785d12decbbf87651bd8c7dd286d)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Require node version >=18.15 for WASI support ([#1612](https://github.com/alex-snezhko/grain/issues/1612)) ([331ffc2](https://github.com/alex-snezhko/grain/commit/331ffc28b57e7e52fc9e360d1d85f81d3a172d06)) +* **stdlib:** Add type aliases to regex lib ([#1036](https://github.com/alex-snezhko/grain/issues/1036)) ([a926ea5](https://github.com/alex-snezhko/grain/commit/a926ea5cafa18e46487a585abbdf5460b15b4f48)) +* **stdlib:** Group mutable/immutable data structures ([#1652](https://github.com/alex-snezhko/grain/issues/1652)) ([f93afef](https://github.com/alex-snezhko/grain/commit/f93afef3785910ebbedcf780ce2d6109299c2e86)) +* **stdlib:** Remove `cons` and `empty` from Pervasives ([#1657](https://github.com/alex-snezhko/grain/issues/1657)) ([f6f02bc](https://github.com/alex-snezhko/grain/commit/f6f02bcb5a196f7f611ee6604f8585d429368314)) +* **stdlib:** Remove `sin`, `cos`, `tan`, `gamma`, `factorial` from `Number` module ([#2046](https://github.com/alex-snezhko/grain/issues/2046)) ([85c4389](https://github.com/alex-snezhko/grain/commit/85c4389dee9f0760e40639df5112294cb4cc44cb)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/alex-snezhko/grain/issues/1300)) ([9101615](https://github.com/alex-snezhko/grain/commit/9101615688f20310ae32573f93f36cfcf5c69be1)) +* **stdlib:** Replace bigint/number arithmetic functions with operators ([#1742](https://github.com/alex-snezhko/grain/issues/1742)) ([cbd46ee](https://github.com/alex-snezhko/grain/commit/cbd46ee99654d066690f1eb13bde8d882abed80f)) +* **stdlib:** Replace Number.nan & Number.infinity constants with keywords ([#1618](https://github.com/alex-snezhko/grain/issues/1618)) ([b437c13](https://github.com/alex-snezhko/grain/commit/b437c131aedcc4395080179b8e0d41ff6b2c95b2)) +* **stdlib:** Switch to using records for `getInternalStats` ([#1898](https://github.com/alex-snezhko/grain/issues/1898)) ([bdb119a](https://github.com/alex-snezhko/grain/commit/bdb119a8234409c5425a2f8678d53237eb7af850)) +* **stdlib:** Update Buffer/Bytes to use new integer types ([#1704](https://github.com/alex-snezhko/grain/issues/1704)) ([d508e5a](https://github.com/alex-snezhko/grain/commit/d508e5af7d66e8419370000030ee40194052301f)) +* **stdlib:** Update Operator `uint` operator Names ([#1738](https://github.com/alex-snezhko/grain/issues/1738)) ([decb053](https://github.com/alex-snezhko/grain/commit/decb0533e87cb8d617e27c0f5470a24c502dcfab)) +* **stdlib:** Use default arguments in more of stdlib ([#1772](https://github.com/alex-snezhko/grain/issues/1772)) ([f5e934f](https://github.com/alex-snezhko/grain/commit/f5e934fc658427b698cfb3919c9b2ac411a0ce45)) + ### [0.5.13](https://github.com/grain-lang/grain/compare/stdlib-v0.5.12...stdlib-v0.5.13) (2023-01-07) diff --git a/stdlib/package.json b/stdlib/package.json index 1011556fd9..a560e5b6a6 100644 --- a/stdlib/package.json +++ b/stdlib/package.json @@ -1,6 +1,6 @@ { "name": "@grain/stdlib", - "version": "0.5.13", + "version": "0.6.0", "description": "The standard library for the Grain language.", "license": "MIT", "homepage": "https://grain-lang.org",