diff --git a/.release-please-manifest.json b/.release-please-manifest.json index eea21309bf..c497a813a1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{".":"0.5.13","cli":"0.5.13","compiler":"0.5.13","js-runner":"0.5.13","stdlib":"0.5.13"} \ No newline at end of file +{".":"0.6.0","cli":"0.6.0","compiler":"0.6.0","js-runner":"0.6.0","stdlib":"0.6.0"} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 17b167b800..56ff128720 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,470 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/grain-v0.5.13...grain-v0.6.0) (2023-04-20) + + +### ⚠ BREAKING CHANGES + +* 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)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/alex-snezhko/grain/issues/1033)) + +### Features + +* Add Hex Exponent Decimals ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* Add npm releases to workflow ([#948](https://github.com/alex-snezhko/grain/issues/948)) ([d55bbc0](https://github.com/alex-snezhko/grain/commit/d55bbc081c5dffb4532b0abca838716d969a919b)) +* 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:** Refactor forwardable options ([#908](https://github.com/alex-snezhko/grain/issues/908)) ([9ecb49b](https://github.com/alex-snezhko/grain/commit/9ecb49b7fc29ab8cb09baefe512471c07b9dbdc6)) +* **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 [@external](https://github.com/external)Name attribute for foreign names ([#1060](https://github.com/alex-snezhko/grain/issues/1060)) ([f4c1311](https://github.com/alex-snezhko/grain/commit/f4c13115ef2eb589f035c31370e56a12bdc2e10c)) +* **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 a newline character before a match guard ([#1063](https://github.com/alex-snezhko/grain/issues/1063)) ([bf41a9c](https://github.com/alex-snezhko/grain/commit/bf41a9cf585c63eb2482c7d94d9c615428bc8435)) +* **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 Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) ([58c9a51](https://github.com/alex-snezhko/grain/commit/58c9a5145a6c1c53e280657e4e41f79f2662eb8a)) +* **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 all primitives ([#1076](https://github.com/alex-snezhko/grain/issues/1076)) ([c227130](https://github.com/alex-snezhko/grain/commit/c2271307b7220d54dc1c252dfc4ee5532f68dd29)) +* **compiler:** Inline not `(!)` operator ([#937](https://github.com/alex-snezhko/grain/issues/937)) ([3f5e9a9](https://github.com/alex-snezhko/grain/commit/3f5e9a962ec8565f4fb79a1ee36d7b492da5cf11)) +* **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:** 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:** Rational number type ([#1603](https://github.com/alex-snezhko/grain/issues/1603)) ([350f850](https://github.com/alex-snezhko/grain/commit/350f8503c3e6976275aaa8ee4d8c02554e7c238a)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/alex-snezhko/grain/issues/1033)) ([9dc3c96](https://github.com/alex-snezhko/grain/commit/9dc3c96f87a0b2affe9db36e1b03360d198f79f1)) +* **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:** 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:** Type aliases ([#995](https://github.com/alex-snezhko/grain/issues/995)) ([bc648ce](https://github.com/alex-snezhko/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **compiler:** Unicode-aware lexing ([#1342](https://github.com/alex-snezhko/grain/issues/1342)) ([6dc0dd1](https://github.com/alex-snezhko/grain/commit/6dc0dd1bc80bbfa9da41f82e9f89569d5f0e6d01)) +* **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 directory input & output ([#1263](https://github.com/alex-snezhko/grain/issues/1263)) ([d4cb8ab](https://github.com/alex-snezhko/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **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:** Add format in place or output to a new file ([#904](https://github.com/alex-snezhko/grain/issues/904)) ([0d18935](https://github.com/alex-snezhko/grain/commit/0d1893576bf3ad9e4d5c3aca5bfa963966b84b66)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/alex-snezhko/grain/issues/1274)) ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Drastically improve performance ([#1042](https://github.com/alex-snezhko/grain/issues/1042)) ([9bc7a55](https://github.com/alex-snezhko/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **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:** 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)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **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 `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 `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 `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 `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 `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 `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 `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 Conv.wasmI32ToNumber function ([#978](https://github.com/alex-snezhko/grain/issues/978)) ([c93ade8](https://github.com/alex-snezhko/grain/commit/c93ade873b51acca556e19a7483a5f29b4b6caa9)) +* **stdlib:** Add cycle function to Array module ([#993](https://github.com/alex-snezhko/grain/issues/993)) ([c595622](https://github.com/alex-snezhko/grain/commit/c595622b28366655dfd5447270e8f9fc3f988a67)) +* **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 reverse function to String module ([#1027](https://github.com/alex-snezhko/grain/issues/1027)) ([df761db](https://github.com/alex-snezhko/grain/commit/df761db55b3e14e31190090ae008ce5047135c09)) +* **stdlib:** Add rotate function in Array module ([#838](https://github.com/alex-snezhko/grain/issues/838)) ([98fc577](https://github.com/alex-snezhko/grain/commit/98fc577ee754317cd2421bfaa8e3c1e049488949)) +* **stdlib:** Add sign function to Number module ([#1079](https://github.com/alex-snezhko/grain/issues/1079)) ([b6483d5](https://github.com/alex-snezhko/grain/commit/b6483d5046cd1b6b89a717a925594d3b20b05837)) +* **stdlib:** Add sort function to Array module ([#1012](https://github.com/alex-snezhko/grain/issues/1012)) ([9091930](https://github.com/alex-snezhko/grain/commit/9091930344224925bb7b2e1ef6f879c79a5c2f62)) +* **stdlib:** Add string trim functions to String module ([#951](https://github.com/alex-snezhko/grain/issues/951)) ([e55de8f](https://github.com/alex-snezhko/grain/commit/e55de8fc0335b45252da9741a80b46a702cdb5b6)) +* **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:** 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.sort via mergesort ([#1014](https://github.com/alex-snezhko/grain/issues/1014)) ([a076e20](https://github.com/alex-snezhko/grain/commit/a076e200013114ccf16c2e6cbe814af1ec09c1ce)) +* **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:** Number.parseInt ([#1051](https://github.com/alex-snezhko/grain/issues/1051)) ([abafb58](https://github.com/alex-snezhko/grain/commit/abafb587e54219a32ed77ba09863bb2d6a80bac8)) +* **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:** 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:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Forward stdlib option to lsp and graindoc ([#916](https://github.com/alex-snezhko/grain/issues/916)) ([07c5237](https://github.com/alex-snezhko/grain/commit/07c5237795c9717cf925c6889e165f4eb8a04f8d)) +* **cli:** Only add --experimental-wasm-bigint flag on node 14 or 15 ([#899](https://github.com/alex-snezhko/grain/issues/899)) ([1cc0c5c](https://github.com/alex-snezhko/grain/commit/1cc0c5c03d38957c90f71e99a188c448923a481c)) +* **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:** Account for config that is not digestable ([#1098](https://github.com/alex-snezhko/grain/issues/1098)) ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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 modules to re-export imported types containing generics ([#1019](https://github.com/alex-snezhko/grain/issues/1019)) ([003cb1e](https://github.com/alex-snezhko/grain/commit/003cb1e10ca51c3f16d2155581eb8dccdde3ce5c)) +* **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:** Apply optimization flag at link stage ([#1099](https://github.com/alex-snezhko/grain/issues/1099)) ([49dac79](https://github.com/alex-snezhko/grain/commit/49dac797aa4833cc141f7c58d18d80d7cbc6b1c7)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Consider invalid CMIs as out of date and recompile ([#1061](https://github.com/alex-snezhko/grain/issues/1061)) ([80da3a9](https://github.com/alex-snezhko/grain/commit/80da3a9667020e4f5f855a0b9da8286508a07275)) +* **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:** Correctly supply locations for types & variants ([9bc7a55](https://github.com/alex-snezhko/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **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:** Do not inline aliased mutables ([#909](https://github.com/alex-snezhko/grain/issues/909)) ([a50430a](https://github.com/alex-snezhko/grain/commit/a50430a2cff5f50dd666f1ec14bd485bfda77e86)) +* **compiler:** Don't over-optimize mutable imports ([#967](https://github.com/alex-snezhko/grain/issues/967)) ([c3066f6](https://github.com/alex-snezhko/grain/commit/c3066f6e32bbbe3bd51b9a7b498567b8deb8d9ba)) +* **compiler:** Don't warn on exhaustive boolean matches ([#913](https://github.com/alex-snezhko/grain/issues/913)) ([4189745](https://github.com/alex-snezhko/grain/commit/4189745d09c3fc6971f95dc1c8428dc73761aed3)) +* **compiler:** Ensure cwd directory is normalized on Windows ([#952](https://github.com/alex-snezhko/grain/issues/952)) ([a3ab9c3](https://github.com/alex-snezhko/grain/commit/a3ab9c3cd2359866a61a1dd4b63f40b0f964e2a4)) +* **compiler:** Ensure main module is included in linker dependency graph ([#996](https://github.com/alex-snezhko/grain/issues/996)) ([d5c6c04](https://github.com/alex-snezhko/grain/commit/d5c6c048d4239ef07fb6ac0a79774d85933cccf9)) +* **compiler:** Ensure TExpApp is always expansive in Grain ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Export functions with aliased names as wasm functions ([#920](https://github.com/alex-snezhko/grain/issues/920)) ([afba142](https://github.com/alex-snezhko/grain/commit/afba142ef90d0d95ae0085debe50e1b34588b267)) +* **compiler:** Fix binop operator reported location ([#1018](https://github.com/alex-snezhko/grain/issues/1018)) ([422dbcb](https://github.com/alex-snezhko/grain/commit/422dbcb01cd09627c6a5f4494cc7c2e7644e92f0)) +* **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 counting of stack size ([#1066](https://github.com/alex-snezhko/grain/issues/1066)) ([f1b3e51](https://github.com/alex-snezhko/grain/commit/f1b3e51580062da9b7e42ec36eb9880b71375cb9)) +* **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 error message when trying to export a constructor ([#1055](https://github.com/alex-snezhko/grain/issues/1055)) ([54ddb67](https://github.com/alex-snezhko/grain/commit/54ddb671745b554eacc8640b1337a46f423b1cc5)) +* **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 memory leaks when loading from heap values ([#1038](https://github.com/alex-snezhko/grain/issues/1038)) ([7d3402d](https://github.com/alex-snezhko/grain/commit/7d3402db09b6e4e24e49d168e8ddd49044a98df1)) +* **compiler:** Fix precedence of `>>` operator ([#1515](https://github.com/alex-snezhko/grain/issues/1515)) ([1565c16](https://github.com/alex-snezhko/grain/commit/1565c16e98dd5c137fb852d23f890f8d7c70d352)) +* **compiler:** Fix stack/heap number allocation boundary ([#974](https://github.com/alex-snezhko/grain/issues/974)) ([47b0f56](https://github.com/alex-snezhko/grain/commit/47b0f56c00e88ddc6054b8f8f8eea4b21da0c7f7)) +* **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:** Handle let-mut value restriction, such that mutable lets are always expansive ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Increase JS stack size ([#1532](https://github.com/alex-snezhko/grain/issues/1532)) ([9d1ff1f](https://github.com/alex-snezhko/grain/commit/9d1ff1f427f2b2a92aa7958cf84b2d1026b1bac5)) +* **compiler:** Inform the compiler that lsp mode is running on a root file ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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:** Move lsp flag into grainc to remove it as a recompilation flag ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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:** Parse array set with newline correctly ([#926](https://github.com/alex-snezhko/grain/issues/926)) ([14e1822](https://github.com/alex-snezhko/grain/commit/14e18229f82637870c651b948fb15c3e5a7b082c)) +* **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 bindings when executing match guard ([#1039](https://github.com/alex-snezhko/grain/issues/1039)) ([121644b](https://github.com/alex-snezhko/grain/commit/121644be48e66ea1a7ce884ea816fe9af223442c)) +* **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 handle value restriction on function application & mutable vars ([#988](https://github.com/alex-snezhko/grain/issues/988)) ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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:** Properly unmark type manifest bodies ([bc648ce](https://github.com/alex-snezhko/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **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:** 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 <id> from default ident printer ([#1056](https://github.com/alex-snezhko/grain/issues/1056)) ([49cd5a0](https://github.com/alex-snezhko/grain/commit/49cd5a08e5d9b2753b47af324b7fb90f4a98b339)) +* **compiler:** Remove existing exports when writing universal exports ([#919](https://github.com/alex-snezhko/grain/issues/919)) ([e80de43](https://github.com/alex-snezhko/grain/commit/e80de439e79ed1dab1c1adcbd5b9cca7a79be023)) +* **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:** 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:** Resolve all modules fully during linking ([#950](https://github.com/alex-snezhko/grain/issues/950)) ([33b33a3](https://github.com/alex-snezhko/grain/commit/33b33a3926cc059a0a759c4ec894fb9f6f03d904)) +* **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:** Use option converter for `--profile` argument ([#1432](https://github.com/alex-snezhko/grain/issues/1432)) ([57776f2](https://github.com/alex-snezhko/grain/commit/57776f224904f2d422923a1a947b5acbe435cfa4)) +* Correctly preserve start position for character literals ([#931](https://github.com/alex-snezhko/grain/issues/931)) ([8fcc575](https://github.com/alex-snezhko/grain/commit/8fcc575a3afde79ac6455b35839b1bcdd6ded41f)) +* 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:** Ensure value_description is resolved to outcome before printing ([#1070](https://github.com/alex-snezhko/grain/issues/1070)) ([5eb05cc](https://github.com/alex-snezhko/grain/commit/5eb05cc2dedc3b933e194be86dd5d3c3656d6490)) +* **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:** Only extract attributes from Doc comments ([#970](https://github.com/alex-snezhko/grain/issues/970)) ([7b6ee5f](https://github.com/alex-snezhko/grain/commit/7b6ee5f085af89f3db181c8d6c2718ca161f2ead)) +* **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:** Remove special idents from receiving parens ([#1104](https://github.com/alex-snezhko/grain/issues/1104)) ([5cb0fda](https://github.com/alex-snezhko/grain/commit/5cb0fda652cad0644f48d8196089430dca1cac0d)) +* **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:** Break long parameterized types ([bc648ce](https://github.com/alex-snezhko/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **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:** fix some spacing issues with the formatter ([#955](https://github.com/alex-snezhko/grain/issues/955)) ([9c4be85](https://github.com/alex-snezhko/grain/commit/9c4be85011d6c030fd54954bd86b0a3ee0f80660)) +* **grainfmt:** Format CRLF files without error ([#941](https://github.com/alex-snezhko/grain/issues/941)) ([ece7536](https://github.com/alex-snezhko/grain/commit/ece7536b6d20694360257515a6f963f115ed21b3)) +* **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:** Group infix functions when passed as params ([bb9666d](https://github.com/alex-snezhko/grain/commit/bb9666d24991df94c82d4f50c1d25d7669cec3c9)) +* **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 empty type for foreign exports ([#907](https://github.com/alex-snezhko/grain/issues/907)) ([d3b60a4](https://github.com/alex-snezhko/grain/commit/d3b60a422568941185c2446464ba2eeb4a776ed2)) +* **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 recursive enums ([7dc77cd](https://github.com/alex-snezhko/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **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:** Improve correctness of formatting ([9bc7a55](https://github.com/alex-snezhko/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **grainfmt:** Improve formatter performance ([#959](https://github.com/alex-snezhko/grain/issues/959)) ([4e739f1](https://github.com/alex-snezhko/grain/commit/4e739f1d12a1493207a81549f1c0145f296b50be)) +* **grainfmt:** Indent function application args when adding parens ([#1095](https://github.com/alex-snezhko/grain/issues/1095)) ([64af7d3](https://github.com/alex-snezhko/grain/commit/64af7d387dca2fddb9b3d190ccdf5790ec3d8e65)) +* **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:** Inform the formatter that it is running against root files ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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 extraneous parens around infix function application ([#902](https://github.com/alex-snezhko/grain/issues/902)) ([5c1906a](https://github.com/alex-snezhko/grain/commit/5c1906a98664f1b14f969fff5c0e48ddd08988c4)) +* **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:** Removed a trailing comma after a spread in a list, and fixed escaped single quote ([#923](https://github.com/alex-snezhko/grain/issues/923)) ([3a138d6](https://github.com/alex-snezhko/grain/commit/3a138d6002fdb2a84df89355e10a143ff792b122)) +* **grainfmt:** Resugar match lists properly ([7dc77cd](https://github.com/alex-snezhko/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **grainfmt:** Scope the comments in callback lambda closure ([#1090](https://github.com/alex-snezhko/grain/issues/1090)) ([0975580](https://github.com/alex-snezhko/grain/commit/09755801d8598691e4a2884a732c0ed9a9e10a2d)) +* **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)) +* **grainfmt:** Wrap type annotation for a long line let assignment ([#1005](https://github.com/alex-snezhko/grain/issues/1005)) ([963b505](https://github.com/alex-snezhko/grain/commit/963b5053b57aece6b721bd99dbe143b117ad86d7)) +* **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)) +* **linking:** Close file after reading ([c404fcf](https://github.com/alex-snezhko/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* **lsp:** Always respond to hover request ([#1328](https://github.com/alex-snezhko/grain/issues/1328)) ([fb947b5](https://github.com/alex-snezhko/grain/commit/fb947b5dc47f306f6399d2b4564fe8f33ffd80b1)) +* Properly open & close files ([#985](https://github.com/alex-snezhko/grain/issues/985)) ([c404fcf](https://github.com/alex-snezhko/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* **runtime:** Add types to boxed GC functions to avoid weak type errors ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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 bounds checking to Buffer addStringSlice & addBytesSlice ([#1065](https://github.com/alex-snezhko/grain/issues/1065)) ([06fe512](https://github.com/alex-snezhko/grain/commit/06fe512e863aeeb855ccf3e3b83bcd3bc8854723)) +* **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 Char.code memory issue ([#928](https://github.com/alex-snezhko/grain/issues/928)) ([dfa31d8](https://github.com/alex-snezhko/grain/commit/dfa31d8aa60a41d08494f3817bdb628a30d83f41)) +* **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 memory issue in list printing ([#912](https://github.com/alex-snezhko/grain/issues/912)) ([3e0a805](https://github.com/alex-snezhko/grain/commit/3e0a8059a36d1042fa06d6aed54565ced116fd87)) +* **stdlib:** Fix memory leaks in Char stdlib ([#929](https://github.com/alex-snezhko/grain/issues/929)) ([99cc94b](https://github.com/alex-snezhko/grain/commit/99cc94b3e2010c7fa6b2c244758dbbe13e43f903)) +* **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:** Fix String.encode GC ([#1067](https://github.com/alex-snezhko/grain/issues/1067)) ([0ab38c9](https://github.com/alex-snezhko/grain/commit/0ab38c9f4aa0ee84688ba5c6bec1521b380d38b1)) +* **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:** Fixed memory leak in String.explode ([#1001](https://github.com/alex-snezhko/grain/issues/1001)) ([c479a05](https://github.com/alex-snezhko/grain/commit/c479a05f48abcc4c9e98d5cf0ba698230d41031b)) +* **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:** 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:** Removed memory leak in Hash module ([#1045](https://github.com/alex-snezhko/grain/issues/1045)) ([01a81c6](https://github.com/alex-snezhko/grain/commit/01a81c6a2573cca94b2d57d0fc70693d39f810a1)) +* **stdlib:** Removed memory leaks in Buffer module ([#1047](https://github.com/alex-snezhko/grain/issues/1047)) ([d33017b](https://github.com/alex-snezhko/grain/commit/d33017b37e988d3facbca2e30e3de4fb8c7b5b8a)) +* **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:** Support arrays of any type in Array rotate ([#1048](https://github.com/alex-snezhko/grain/issues/1048)) ([3ceb1cf](https://github.com/alex-snezhko/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Support empty arrays in Array rotate ([3ceb1cf](https://github.com/alex-snezhko/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **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 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 `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:** 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)) +* 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..a4a5d0bdeb 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,5 +1,71 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/cli-v0.5.13...cli-v0.6.0) (2023-04-20) + + +### ⚠ BREAKING CHANGES + +* 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:** Refactor forwardable options ([#908](https://github.com/alex-snezhko/grain/issues/908)) ([9ecb49b](https://github.com/alex-snezhko/grain/commit/9ecb49b7fc29ab8cb09baefe512471c07b9dbdc6)) +* **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:** Add format in place or output to a new file ([#904](https://github.com/alex-snezhko/grain/issues/904)) ([0d18935](https://github.com/alex-snezhko/grain/commit/0d1893576bf3ad9e4d5c3aca5bfa963966b84b66)) +* **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)) +* 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:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Forward stdlib option to lsp and graindoc ([#916](https://github.com/alex-snezhko/grain/issues/916)) ([07c5237](https://github.com/alex-snezhko/grain/commit/07c5237795c9717cf925c6889e165f4eb8a04f8d)) +* **cli:** Only add --experimental-wasm-bigint flag on node 14 or 15 ([#899](https://github.com/alex-snezhko/grain/issues/899)) ([1cc0c5c](https://github.com/alex-snezhko/grain/commit/1cc0c5c03d38957c90f71e99a188c448923a481c)) +* **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 f2e90af84b..a340619767 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,8 +34,8 @@ }, "homepage": "https://github.com/grain-lang/grain#readme", "dependencies": { - "@grain/js-runner": "0.5.13", - "@grain/stdlib": "0.5.13", + "@grain/js-runner": "0.6.0", + "@grain/stdlib": "0.6.0", "commander": "^8.1.0" }, "devDependencies": { diff --git a/compiler/CHANGELOG.md b/compiler/CHANGELOG.md index bc9a4ef096..71a228d65e 100644 --- a/compiler/CHANGELOG.md +++ b/compiler/CHANGELOG.md @@ -1,5 +1,428 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/compiler-v0.5.13...compiler-v0.6.0) (2023-04-20) + + +### ⚠ BREAKING CHANGES + +* 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)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/alex-snezhko/grain/issues/1033)) + +### Features + +* Add Hex Exponent Decimals ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **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 [@external](https://github.com/external)Name attribute for foreign names ([#1060](https://github.com/alex-snezhko/grain/issues/1060)) ([f4c1311](https://github.com/alex-snezhko/grain/commit/f4c13115ef2eb589f035c31370e56a12bdc2e10c)) +* **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 a newline character before a match guard ([#1063](https://github.com/alex-snezhko/grain/issues/1063)) ([bf41a9c](https://github.com/alex-snezhko/grain/commit/bf41a9cf585c63eb2482c7d94d9c615428bc8435)) +* **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 Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) ([58c9a51](https://github.com/alex-snezhko/grain/commit/58c9a5145a6c1c53e280657e4e41f79f2662eb8a)) +* **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 all primitives ([#1076](https://github.com/alex-snezhko/grain/issues/1076)) ([c227130](https://github.com/alex-snezhko/grain/commit/c2271307b7220d54dc1c252dfc4ee5532f68dd29)) +* **compiler:** Inline not `(!)` operator ([#937](https://github.com/alex-snezhko/grain/issues/937)) ([3f5e9a9](https://github.com/alex-snezhko/grain/commit/3f5e9a962ec8565f4fb79a1ee36d7b492da5cf11)) +* **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:** 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:** Rational number type ([#1603](https://github.com/alex-snezhko/grain/issues/1603)) ([350f850](https://github.com/alex-snezhko/grain/commit/350f8503c3e6976275aaa8ee4d8c02554e7c238a)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/alex-snezhko/grain/issues/1033)) ([9dc3c96](https://github.com/alex-snezhko/grain/commit/9dc3c96f87a0b2affe9db36e1b03360d198f79f1)) +* **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:** 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:** Type aliases ([#995](https://github.com/alex-snezhko/grain/issues/995)) ([bc648ce](https://github.com/alex-snezhko/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **compiler:** Unicode-aware lexing ([#1342](https://github.com/alex-snezhko/grain/issues/1342)) ([6dc0dd1](https://github.com/alex-snezhko/grain/commit/6dc0dd1bc80bbfa9da41f82e9f89569d5f0e6d01)) +* **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 directory input & output ([#1263](https://github.com/alex-snezhko/grain/issues/1263)) ([d4cb8ab](https://github.com/alex-snezhko/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **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:** Add format in place or output to a new file ([#904](https://github.com/alex-snezhko/grain/issues/904)) ([0d18935](https://github.com/alex-snezhko/grain/commit/0d1893576bf3ad9e4d5c3aca5bfa963966b84b66)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/alex-snezhko/grain/issues/1274)) ([d3e7a33](https://github.com/alex-snezhko/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Drastically improve performance ([#1042](https://github.com/alex-snezhko/grain/issues/1042)) ([9bc7a55](https://github.com/alex-snezhko/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **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:** 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)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **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 `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 `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 `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 `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 `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 `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 `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 Conv.wasmI32ToNumber function ([#978](https://github.com/alex-snezhko/grain/issues/978)) ([c93ade8](https://github.com/alex-snezhko/grain/commit/c93ade873b51acca556e19a7483a5f29b4b6caa9)) +* **stdlib:** Add cycle function to Array module ([#993](https://github.com/alex-snezhko/grain/issues/993)) ([c595622](https://github.com/alex-snezhko/grain/commit/c595622b28366655dfd5447270e8f9fc3f988a67)) +* **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 reverse function to String module ([#1027](https://github.com/alex-snezhko/grain/issues/1027)) ([df761db](https://github.com/alex-snezhko/grain/commit/df761db55b3e14e31190090ae008ce5047135c09)) +* **stdlib:** Add rotate function in Array module ([#838](https://github.com/alex-snezhko/grain/issues/838)) ([98fc577](https://github.com/alex-snezhko/grain/commit/98fc577ee754317cd2421bfaa8e3c1e049488949)) +* **stdlib:** Add sign function to Number module ([#1079](https://github.com/alex-snezhko/grain/issues/1079)) ([b6483d5](https://github.com/alex-snezhko/grain/commit/b6483d5046cd1b6b89a717a925594d3b20b05837)) +* **stdlib:** Add sort function to Array module ([#1012](https://github.com/alex-snezhko/grain/issues/1012)) ([9091930](https://github.com/alex-snezhko/grain/commit/9091930344224925bb7b2e1ef6f879c79a5c2f62)) +* **stdlib:** Add string trim functions to String module ([#951](https://github.com/alex-snezhko/grain/issues/951)) ([e55de8f](https://github.com/alex-snezhko/grain/commit/e55de8fc0335b45252da9741a80b46a702cdb5b6)) +* **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:** 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.sort via mergesort ([#1014](https://github.com/alex-snezhko/grain/issues/1014)) ([a076e20](https://github.com/alex-snezhko/grain/commit/a076e200013114ccf16c2e6cbe814af1ec09c1ce)) +* **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:** Number.parseInt ([#1051](https://github.com/alex-snezhko/grain/issues/1051)) ([abafb58](https://github.com/alex-snezhko/grain/commit/abafb587e54219a32ed77ba09863bb2d6a80bac8)) +* **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:** 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:** Account for config that is not digestable ([#1098](https://github.com/alex-snezhko/grain/issues/1098)) ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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 modules to re-export imported types containing generics ([#1019](https://github.com/alex-snezhko/grain/issues/1019)) ([003cb1e](https://github.com/alex-snezhko/grain/commit/003cb1e10ca51c3f16d2155581eb8dccdde3ce5c)) +* **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:** Apply optimization flag at link stage ([#1099](https://github.com/alex-snezhko/grain/issues/1099)) ([49dac79](https://github.com/alex-snezhko/grain/commit/49dac797aa4833cc141f7c58d18d80d7cbc6b1c7)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/alex-snezhko/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Consider invalid CMIs as out of date and recompile ([#1061](https://github.com/alex-snezhko/grain/issues/1061)) ([80da3a9](https://github.com/alex-snezhko/grain/commit/80da3a9667020e4f5f855a0b9da8286508a07275)) +* **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:** Correctly supply locations for types & variants ([9bc7a55](https://github.com/alex-snezhko/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **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:** Do not inline aliased mutables ([#909](https://github.com/alex-snezhko/grain/issues/909)) ([a50430a](https://github.com/alex-snezhko/grain/commit/a50430a2cff5f50dd666f1ec14bd485bfda77e86)) +* **compiler:** Don't over-optimize mutable imports ([#967](https://github.com/alex-snezhko/grain/issues/967)) ([c3066f6](https://github.com/alex-snezhko/grain/commit/c3066f6e32bbbe3bd51b9a7b498567b8deb8d9ba)) +* **compiler:** Don't warn on exhaustive boolean matches ([#913](https://github.com/alex-snezhko/grain/issues/913)) ([4189745](https://github.com/alex-snezhko/grain/commit/4189745d09c3fc6971f95dc1c8428dc73761aed3)) +* **compiler:** Ensure cwd directory is normalized on Windows ([#952](https://github.com/alex-snezhko/grain/issues/952)) ([a3ab9c3](https://github.com/alex-snezhko/grain/commit/a3ab9c3cd2359866a61a1dd4b63f40b0f964e2a4)) +* **compiler:** Ensure main module is included in linker dependency graph ([#996](https://github.com/alex-snezhko/grain/issues/996)) ([d5c6c04](https://github.com/alex-snezhko/grain/commit/d5c6c048d4239ef07fb6ac0a79774d85933cccf9)) +* **compiler:** Ensure TExpApp is always expansive in Grain ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Export functions with aliased names as wasm functions ([#920](https://github.com/alex-snezhko/grain/issues/920)) ([afba142](https://github.com/alex-snezhko/grain/commit/afba142ef90d0d95ae0085debe50e1b34588b267)) +* **compiler:** Fix binop operator reported location ([#1018](https://github.com/alex-snezhko/grain/issues/1018)) ([422dbcb](https://github.com/alex-snezhko/grain/commit/422dbcb01cd09627c6a5f4494cc7c2e7644e92f0)) +* **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 counting of stack size ([#1066](https://github.com/alex-snezhko/grain/issues/1066)) ([f1b3e51](https://github.com/alex-snezhko/grain/commit/f1b3e51580062da9b7e42ec36eb9880b71375cb9)) +* **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 error message when trying to export a constructor ([#1055](https://github.com/alex-snezhko/grain/issues/1055)) ([54ddb67](https://github.com/alex-snezhko/grain/commit/54ddb671745b554eacc8640b1337a46f423b1cc5)) +* **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 memory leaks when loading from heap values ([#1038](https://github.com/alex-snezhko/grain/issues/1038)) ([7d3402d](https://github.com/alex-snezhko/grain/commit/7d3402db09b6e4e24e49d168e8ddd49044a98df1)) +* **compiler:** Fix precedence of `>>` operator ([#1515](https://github.com/alex-snezhko/grain/issues/1515)) ([1565c16](https://github.com/alex-snezhko/grain/commit/1565c16e98dd5c137fb852d23f890f8d7c70d352)) +* **compiler:** Fix stack/heap number allocation boundary ([#974](https://github.com/alex-snezhko/grain/issues/974)) ([47b0f56](https://github.com/alex-snezhko/grain/commit/47b0f56c00e88ddc6054b8f8f8eea4b21da0c7f7)) +* **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:** Handle let-mut value restriction, such that mutable lets are always expansive ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Inform the compiler that lsp mode is running on a root file ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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:** Move lsp flag into grainc to remove it as a recompilation flag ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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:** Parse array set with newline correctly ([#926](https://github.com/alex-snezhko/grain/issues/926)) ([14e1822](https://github.com/alex-snezhko/grain/commit/14e18229f82637870c651b948fb15c3e5a7b082c)) +* **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 bindings when executing match guard ([#1039](https://github.com/alex-snezhko/grain/issues/1039)) ([121644b](https://github.com/alex-snezhko/grain/commit/121644be48e66ea1a7ce884ea816fe9af223442c)) +* **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 handle value restriction on function application & mutable vars ([#988](https://github.com/alex-snezhko/grain/issues/988)) ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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:** Properly unmark type manifest bodies ([bc648ce](https://github.com/alex-snezhko/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **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:** 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 <id> from default ident printer ([#1056](https://github.com/alex-snezhko/grain/issues/1056)) ([49cd5a0](https://github.com/alex-snezhko/grain/commit/49cd5a08e5d9b2753b47af324b7fb90f4a98b339)) +* **compiler:** Remove existing exports when writing universal exports ([#919](https://github.com/alex-snezhko/grain/issues/919)) ([e80de43](https://github.com/alex-snezhko/grain/commit/e80de439e79ed1dab1c1adcbd5b9cca7a79be023)) +* **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:** 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:** Resolve all modules fully during linking ([#950](https://github.com/alex-snezhko/grain/issues/950)) ([33b33a3](https://github.com/alex-snezhko/grain/commit/33b33a3926cc059a0a759c4ec894fb9f6f03d904)) +* **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:** Use option converter for `--profile` argument ([#1432](https://github.com/alex-snezhko/grain/issues/1432)) ([57776f2](https://github.com/alex-snezhko/grain/commit/57776f224904f2d422923a1a947b5acbe435cfa4)) +* Correctly preserve start position for character literals ([#931](https://github.com/alex-snezhko/grain/issues/931)) ([8fcc575](https://github.com/alex-snezhko/grain/commit/8fcc575a3afde79ac6455b35839b1bcdd6ded41f)) +* 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:** Ensure value_description is resolved to outcome before printing ([#1070](https://github.com/alex-snezhko/grain/issues/1070)) ([5eb05cc](https://github.com/alex-snezhko/grain/commit/5eb05cc2dedc3b933e194be86dd5d3c3656d6490)) +* **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:** Only extract attributes from Doc comments ([#970](https://github.com/alex-snezhko/grain/issues/970)) ([7b6ee5f](https://github.com/alex-snezhko/grain/commit/7b6ee5f085af89f3db181c8d6c2718ca161f2ead)) +* **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:** Remove special idents from receiving parens ([#1104](https://github.com/alex-snezhko/grain/issues/1104)) ([5cb0fda](https://github.com/alex-snezhko/grain/commit/5cb0fda652cad0644f48d8196089430dca1cac0d)) +* **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:** Break long parameterized types ([bc648ce](https://github.com/alex-snezhko/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **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:** fix some spacing issues with the formatter ([#955](https://github.com/alex-snezhko/grain/issues/955)) ([9c4be85](https://github.com/alex-snezhko/grain/commit/9c4be85011d6c030fd54954bd86b0a3ee0f80660)) +* **grainfmt:** Format CRLF files without error ([#941](https://github.com/alex-snezhko/grain/issues/941)) ([ece7536](https://github.com/alex-snezhko/grain/commit/ece7536b6d20694360257515a6f963f115ed21b3)) +* **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:** Group infix functions when passed as params ([bb9666d](https://github.com/alex-snezhko/grain/commit/bb9666d24991df94c82d4f50c1d25d7669cec3c9)) +* **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 empty type for foreign exports ([#907](https://github.com/alex-snezhko/grain/issues/907)) ([d3b60a4](https://github.com/alex-snezhko/grain/commit/d3b60a422568941185c2446464ba2eeb4a776ed2)) +* **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 recursive enums ([7dc77cd](https://github.com/alex-snezhko/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **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:** Improve correctness of formatting ([9bc7a55](https://github.com/alex-snezhko/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **grainfmt:** Improve formatter performance ([#959](https://github.com/alex-snezhko/grain/issues/959)) ([4e739f1](https://github.com/alex-snezhko/grain/commit/4e739f1d12a1493207a81549f1c0145f296b50be)) +* **grainfmt:** Indent function application args when adding parens ([#1095](https://github.com/alex-snezhko/grain/issues/1095)) ([64af7d3](https://github.com/alex-snezhko/grain/commit/64af7d387dca2fddb9b3d190ccdf5790ec3d8e65)) +* **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:** Inform the formatter that it is running against root files ([b58323f](https://github.com/alex-snezhko/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **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 extraneous parens around infix function application ([#902](https://github.com/alex-snezhko/grain/issues/902)) ([5c1906a](https://github.com/alex-snezhko/grain/commit/5c1906a98664f1b14f969fff5c0e48ddd08988c4)) +* **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:** Removed a trailing comma after a spread in a list, and fixed escaped single quote ([#923](https://github.com/alex-snezhko/grain/issues/923)) ([3a138d6](https://github.com/alex-snezhko/grain/commit/3a138d6002fdb2a84df89355e10a143ff792b122)) +* **grainfmt:** Resugar match lists properly ([7dc77cd](https://github.com/alex-snezhko/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **grainfmt:** Scope the comments in callback lambda closure ([#1090](https://github.com/alex-snezhko/grain/issues/1090)) ([0975580](https://github.com/alex-snezhko/grain/commit/09755801d8598691e4a2884a732c0ed9a9e10a2d)) +* **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)) +* **grainfmt:** Wrap type annotation for a long line let assignment ([#1005](https://github.com/alex-snezhko/grain/issues/1005)) ([963b505](https://github.com/alex-snezhko/grain/commit/963b5053b57aece6b721bd99dbe143b117ad86d7)) +* **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)) +* **linking:** Close file after reading ([c404fcf](https://github.com/alex-snezhko/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* **lsp:** Always respond to hover request ([#1328](https://github.com/alex-snezhko/grain/issues/1328)) ([fb947b5](https://github.com/alex-snezhko/grain/commit/fb947b5dc47f306f6399d2b4564fe8f33ffd80b1)) +* Properly open & close files ([#985](https://github.com/alex-snezhko/grain/issues/985)) ([c404fcf](https://github.com/alex-snezhko/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* **runtime:** Add types to boxed GC functions to avoid weak type errors ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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 bounds checking to Buffer addStringSlice & addBytesSlice ([#1065](https://github.com/alex-snezhko/grain/issues/1065)) ([06fe512](https://github.com/alex-snezhko/grain/commit/06fe512e863aeeb855ccf3e3b83bcd3bc8854723)) +* **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 Char.code memory issue ([#928](https://github.com/alex-snezhko/grain/issues/928)) ([dfa31d8](https://github.com/alex-snezhko/grain/commit/dfa31d8aa60a41d08494f3817bdb628a30d83f41)) +* **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 memory issue in list printing ([#912](https://github.com/alex-snezhko/grain/issues/912)) ([3e0a805](https://github.com/alex-snezhko/grain/commit/3e0a8059a36d1042fa06d6aed54565ced116fd87)) +* **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:** 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:** Support arrays of any type in Array rotate ([#1048](https://github.com/alex-snezhko/grain/issues/1048)) ([3ceb1cf](https://github.com/alex-snezhko/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Support empty arrays in Array rotate ([3ceb1cf](https://github.com/alex-snezhko/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **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 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 `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:** 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)) +* 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 5307e00283..3a6ec9d26d 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 4dff234937..f6ffaefb95 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/js-runner/CHANGELOG.md b/js-runner/CHANGELOG.md index 661e66bdc9..11d1866ef6 100644 --- a/js-runner/CHANGELOG.md +++ b/js-runner/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/js-runner-v0.5.13...js-runner-v0.6.0) (2023-04-20) + + +### ⚠ BREAKING CHANGES + +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) +* **compiler:** Rename `_grainEnv` to `_genv` ([#1607](https://github.com/alex-snezhko/grain/issues/1607)) +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) + +### Features + +* **compiler:** Refactor enum constructors ([#1211](https://github.com/alex-snezhko/grain/issues/1211)) ([8d465b7](https://github.com/alex-snezhko/grain/commit/8d465b7cd73d9549eeb89c7d52083d592ebd66fd)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) + + +### Miscellaneous Chores + +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/alex-snezhko/grain/issues/1068)) ([3ae8eaa](https://github.com/alex-snezhko/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Rename `_grainEnv` to `_genv` ([#1607](https://github.com/alex-snezhko/grain/issues/1607)) ([73c9499](https://github.com/alex-snezhko/grain/commit/73c94997c7bd08324398ea87498d2b498c5bf658)) + ### [0.5.13](https://github.com/grain-lang/grain/compare/js-runner-v0.5.12...js-runner-v0.5.13) (2023-01-07) diff --git a/js-runner/package.json b/js-runner/package.json index b7c33b04b4..aaec4d6df5 100644 --- a/js-runner/package.json +++ b/js-runner/package.json @@ -1,6 +1,6 @@ { "name": "@grain/js-runner", - "version": "0.5.13", + "version": "0.6.0", "description": "The JavaScript runner for the Grain language.", "license": "MIT", "homepage": "https://grain-lang.org", diff --git a/package-lock.json b/package-lock.json index 1743fbde27..552608ff0d 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", "js-runner", diff --git a/package.json b/package.json index 0aa909f023..77fbd0b6e6 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..70277843c1 100644 --- a/stdlib/CHANGELOG.md +++ b/stdlib/CHANGELOG.md @@ -1,5 +1,263 @@ # Changelog +## [0.6.0](https://github.com/alex-snezhko/grain/compare/stdlib-v0.5.13...stdlib-v0.6.0) (2023-04-20) + + +### ⚠ BREAKING CHANGES + +* 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)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/alex-snezhko/grain/issues/1033)) + +### Features + +* Add Hex Exponent Decimals ([8a69eb3](https://github.com/alex-snezhko/grain/commit/8a69eb31e4e22e6148c42ecd0efb677f3fbb222c)) +* **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 Char internal representation ([#1622](https://github.com/alex-snezhko/grain/issues/1622)) ([58c9a51](https://github.com/alex-snezhko/grain/commit/58c9a5145a6c1c53e280657e4e41f79f2662eb8a)) +* **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 not `(!)` operator ([#937](https://github.com/alex-snezhko/grain/issues/937)) ([3f5e9a9](https://github.com/alex-snezhko/grain/commit/3f5e9a962ec8565f4fb79a1ee36d7b492da5cf11)) +* **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:** 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:** Re-implement Grain parser ([#1033](https://github.com/alex-snezhko/grain/issues/1033)) ([9dc3c96](https://github.com/alex-snezhko/grain/commit/9dc3c96f87a0b2affe9db36e1b03360d198f79f1)) +* **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)) +* **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:** 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:** 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)) +* Rework preopened directories ([#1656](https://github.com/alex-snezhko/grain/issues/1656)) ([7d3006d](https://github.com/alex-snezhko/grain/commit/7d3006d86d423a0bb03a600c6bf9726efc8394b9)) +* **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 `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 `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 `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 `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 `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 `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 `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 Conv.wasmI32ToNumber function ([#978](https://github.com/alex-snezhko/grain/issues/978)) ([c93ade8](https://github.com/alex-snezhko/grain/commit/c93ade873b51acca556e19a7483a5f29b4b6caa9)) +* **stdlib:** Add cycle function to Array module ([#993](https://github.com/alex-snezhko/grain/issues/993)) ([c595622](https://github.com/alex-snezhko/grain/commit/c595622b28366655dfd5447270e8f9fc3f988a67)) +* **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 reverse function to String module ([#1027](https://github.com/alex-snezhko/grain/issues/1027)) ([df761db](https://github.com/alex-snezhko/grain/commit/df761db55b3e14e31190090ae008ce5047135c09)) +* **stdlib:** Add rotate function in Array module ([#838](https://github.com/alex-snezhko/grain/issues/838)) ([98fc577](https://github.com/alex-snezhko/grain/commit/98fc577ee754317cd2421bfaa8e3c1e049488949)) +* **stdlib:** Add sign function to Number module ([#1079](https://github.com/alex-snezhko/grain/issues/1079)) ([b6483d5](https://github.com/alex-snezhko/grain/commit/b6483d5046cd1b6b89a717a925594d3b20b05837)) +* **stdlib:** Add sort function to Array module ([#1012](https://github.com/alex-snezhko/grain/issues/1012)) ([9091930](https://github.com/alex-snezhko/grain/commit/9091930344224925bb7b2e1ef6f879c79a5c2f62)) +* **stdlib:** Add string trim functions to String module ([#951](https://github.com/alex-snezhko/grain/issues/951)) ([e55de8f](https://github.com/alex-snezhko/grain/commit/e55de8fc0335b45252da9741a80b46a702cdb5b6)) +* **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:** 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.sort via mergesort ([#1014](https://github.com/alex-snezhko/grain/issues/1014)) ([a076e20](https://github.com/alex-snezhko/grain/commit/a076e200013114ccf16c2e6cbe814af1ec09c1ce)) +* **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:** Number.parseInt ([#1051](https://github.com/alex-snezhko/grain/issues/1051)) ([abafb58](https://github.com/alex-snezhko/grain/commit/abafb587e54219a32ed77ba09863bb2d6a80bac8)) +* **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:** 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:** Ensure TExpApp is always expansive in Grain ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Handle let-mut value restriction, such that mutable lets are always expansive ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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:** Properly handle value restriction on function application & mutable vars ([#988](https://github.com/alex-snezhko/grain/issues/988)) ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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)) +* 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:** Ensure value_description is resolved to outcome before printing ([#1070](https://github.com/alex-snezhko/grain/issues/1070)) ([5eb05cc](https://github.com/alex-snezhko/grain/commit/5eb05cc2dedc3b933e194be86dd5d3c3656d6490)) +* **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 function application args when adding parens ([#1095](https://github.com/alex-snezhko/grain/issues/1095)) ([64af7d3](https://github.com/alex-snezhko/grain/commit/64af7d387dca2fddb9b3d190ccdf5790ec3d8e65)) +* **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:** Add types to boxed GC functions to avoid weak type errors ([ef0a69f](https://github.com/alex-snezhko/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **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 bounds checking to Buffer addStringSlice & addBytesSlice ([#1065](https://github.com/alex-snezhko/grain/issues/1065)) ([06fe512](https://github.com/alex-snezhko/grain/commit/06fe512e863aeeb855ccf3e3b83bcd3bc8854723)) +* **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 Char.code memory issue ([#928](https://github.com/alex-snezhko/grain/issues/928)) ([dfa31d8](https://github.com/alex-snezhko/grain/commit/dfa31d8aa60a41d08494f3817bdb628a30d83f41)) +* **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 memory issue in list printing ([#912](https://github.com/alex-snezhko/grain/issues/912)) ([3e0a805](https://github.com/alex-snezhko/grain/commit/3e0a8059a36d1042fa06d6aed54565ced116fd87)) +* **stdlib:** Fix memory leaks in Char stdlib ([#929](https://github.com/alex-snezhko/grain/issues/929)) ([99cc94b](https://github.com/alex-snezhko/grain/commit/99cc94b3e2010c7fa6b2c244758dbbe13e43f903)) +* **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:** Fix String.encode GC ([#1067](https://github.com/alex-snezhko/grain/issues/1067)) ([0ab38c9](https://github.com/alex-snezhko/grain/commit/0ab38c9f4aa0ee84688ba5c6bec1521b380d38b1)) +* **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:** Fixed memory leak in String.explode ([#1001](https://github.com/alex-snezhko/grain/issues/1001)) ([c479a05](https://github.com/alex-snezhko/grain/commit/c479a05f48abcc4c9e98d5cf0ba698230d41031b)) +* **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:** 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:** Removed memory leak in Hash module ([#1045](https://github.com/alex-snezhko/grain/issues/1045)) ([01a81c6](https://github.com/alex-snezhko/grain/commit/01a81c6a2573cca94b2d57d0fc70693d39f810a1)) +* **stdlib:** Removed memory leaks in Buffer module ([#1047](https://github.com/alex-snezhko/grain/issues/1047)) ([d33017b](https://github.com/alex-snezhko/grain/commit/d33017b37e988d3facbca2e30e3de4fb8c7b5b8a)) +* **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:** Support arrays of any type in Array rotate ([#1048](https://github.com/alex-snezhko/grain/issues/1048)) ([3ceb1cf](https://github.com/alex-snezhko/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Support empty arrays in Array rotate ([3ceb1cf](https://github.com/alex-snezhko/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **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 `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:** 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)) + ### [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",