From 360879c758b0b84c2c447e6c14adde0c9d251b01 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 Jul 2022 08:53:09 +0000 Subject: [PATCH] chore: release main --- .release-please-manifest.json | 2 +- CHANGELOG.md | 421 ++++++++++++++++++++++++++++++++++ cli/CHANGELOG.md | 82 +++++++ cli/package.json | 6 +- compiler/CHANGELOG.md | 361 +++++++++++++++++++++++++++++ compiler/dune-project | 2 +- compiler/esy.json | 2 +- compiler/package.json | 2 +- js-runner/CHANGELOG.md | 29 +++ js-runner/package.json | 2 +- package-lock.json | 4 +- package.json | 2 +- stdlib/CHANGELOG.md | 202 ++++++++++++++++ stdlib/package.json | 2 +- 14 files changed, 1107 insertions(+), 12 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 76bb6486..c497a813 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{".":"0.5.2","cli":"0.5.2","compiler":"0.5.2","js-runner":"0.5.2","stdlib":"0.5.2"} \ 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 ab947799..24a8c2c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,426 @@ # Changelog +## [0.6.0](https://github.com/hazelgrove/grain/compare/grain-v0.5.2...grain-v0.6.0) (2022-07-03) + + +### ⚠ BREAKING CHANGES + +* **stdlib:** Use explicit exports for Pervasives (#1301) +* **stdlib:** Remove `sum` function from the List module (#1300) +* **stdlib:** Ensure Void return for forEach functions in List module (#1307) +* **stdlib:** Provide correct types for BigInt operations (#1297) +* **compiler:** Remove `--lsp` flag from grainc executable +* **lsp:** Replaced one-off LSP command with persistent LSP server (#1131) +* **cli:** Simplify version output (#1291) +* **cli:** Show all global options within help for every command (#1285) +* **cli:** Remove graceful flag & behavior (#1275) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged (#1268) +* **compiler:** Replace optimization levels with compilation profiles (#1270) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* **compiler:** Arbitrary-Precision Integer Arithmetic (#1167) +* Switch from yarn to npm (#1226) +* Drop node 14 support (#1092) +* **stdlib:** Add explicit void return type on Set.forEach (#1225) +* **stdlib:** Add explicit void return type on Map.forEach (#1220) +* **compiler:** Selectively include functions in the global function table (#1183) +* **compiler:** Add interface for compile module to hide resume +* **compiler:** Disallow end-of-line before `=>` (#1178) +* **stdlib:** Add type aliases to regex lib (#1036) +* **compiler:** Stack-allocated Chars (#1103) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` (#1136) +* **graindoc:** Add `--current-version` flag, required for since/history attributes (#1116) +* **compiler:** Remove decRefIgnoreZeros (#1068) +* **compiler:** Add `--memory-base` flag (#1115) +* **compiler:** Re-implement Grain parser (#1033) +* **compiler:** Add typed well-formedness pass which forbids usage of WasmXX values outside of `@disableGC` context (#772) +* **stdlib:** Use random seed for hash module (#854) +* **stdlib:** Remove deprecated functions (#812) +* **stdlib:** Convert sys functions to return Results instead of throwing errors (#792) +* **compiler:** Callee-owned values (#803) +* **compiler:** Remove user manual memory management calls when --no-gc supplied (#817) +* **compiler:** Refactor module resolution in order to properly resolve relative paths (#797) +* Rename JS "runtime" to "js-runner"/"runner" throughout project +* **compiler:** Rename `grainRuntime` to `_grainEnv` +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` (#755) +* **compiler:** Improve assert messages to contain location information (#737) +* **runtime:** Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly +* Adjust Number equality, thus that 5 == 5.0 (#726) +* **compiler:** Avoid building JS bundles by default (#739) +* **stdlib:** Export coerceNumberToWasmI32/I64/F32/F64 from Number runtime (#713) +* **compiler:** Universal WebAssembly initial and maximum pages flags (#668) +* **cli:** Split -g into --debug and --wat (#620) +* rename Queue/Stack lib methods (#625) +* **cli:** Remove `-f` CLI option +* **compiler:** Remove --principal-types and --recursive-types compiler flags +* **compiler:** Rename --cdebug to --verbose +* **cli:** Pass compiler flags from the CLI to grainc directly (#613) +* Correct type signature for `_start` +* Introduce `_gmain` for old behavior of `_start` +* Tail calls must be enabled explicitly via `--experimental-wasm-tail-call` +* Static linking of Grain modules (#584) +* **stdlib:** Replace JS entrypoint with locator file (#586) +* Streamline runtime dependencies & entrypoints (#585) +* Rename `registerBasePrinter` to `dangerouslyRegisterBasePrinter` in runtime/exception +* Use Grain exceptions instead of JS exceptions (#565) +* Update assignment semantics (#560) + +### Features + +* Add ability to `throw` exceptions ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add ability to register custom exception printers ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add Exception stdlib with Exception.registerPrinter ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add format command to the Grain CLI ([#829](https://github.com/hazelgrove/grain/issues/829)) ([9334b71](https://github.com/hazelgrove/grain/commit/9334b71c8282a143d44c5c8c731bc057281a772c)) +* Add GrainDoc for markdown generation using doc comments ([#574](https://github.com/hazelgrove/grain/issues/574)) ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* Add npm releases to workflow ([#948](https://github.com/hazelgrove/grain/issues/948)) ([d55bbc0](https://github.com/hazelgrove/grain/commit/d55bbc081c5dffb4532b0abca838716d969a919b)) +* **ci:** Link all versions during release ([#1290](https://github.com/hazelgrove/grain/issues/1290)) ([ceb8dac](https://github.com/hazelgrove/grain/commit/ceb8dac2e3d3bf7eb92f91daf29173a779a4aa7e)) +* **cli:** Add `grain doc` command ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **cli:** Pass compiler flags from the CLI to grainc directly ([#613](https://github.com/hazelgrove/grain/issues/613)) ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **cli:** Refactor forwardable options ([#908](https://github.com/hazelgrove/grain/issues/908)) ([9ecb49b](https://github.com/hazelgrove/grain/commit/9ecb49b7fc29ab8cb09baefe512471c07b9dbdc6)) +* **cli:** Split -g into --debug and --wat ([#620](https://github.com/hazelgrove/grain/issues/620)) ([79809bb](https://github.com/hazelgrove/grain/commit/79809bb12592bdcb52fcb8301e7d4b64f35276e8)) +* Compile grainc to JS & create binaries with pkg ([#570](https://github.com/hazelgrove/grain/issues/570)) ([f4919bd](https://github.com/hazelgrove/grain/commit/f4919bdbab7dddd433b3f53bf8a8536a7efd5b03)) +* **compiler:** Add --no-bulk-memory flag to polyfill bulk memory ops ([#819](https://github.com/hazelgrove/grain/issues/819)) ([7db4ea6](https://github.com/hazelgrove/grain/commit/7db4ea6578990c2f175c083ef378c47599d47fd1)) +* **compiler:** Add --wasi-polyfill flag for custom implementations ([#800](https://github.com/hazelgrove/grain/issues/800)) ([6879286](https://github.com/hazelgrove/grain/commit/68792867f31671e12d07067dbef2c4c1288d7eac)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/hazelgrove/grain/issues/1115)) ([0680826](https://github.com/hazelgrove/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add `[@unsafe](https://github.com/unsafe)` attribute for low-level code ([#1074](https://github.com/hazelgrove/grain/issues/1074)) ([212faca](https://github.com/hazelgrove/grain/commit/212faca9a8363002cfc0cb4e3ea293180cbe5b1c)) +* **compiler:** add better hover to LSP ([#667](https://github.com/hazelgrove/grain/issues/667)) ([7c7e9d7](https://github.com/hazelgrove/grain/commit/7c7e9d7a568cc350f6323a8941858c04bb46cac2)) +* **compiler:** Add Comments module to Grain_diagnostics ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add Markdown module to Grain_utils ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add Range module to Grain_utils ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add typed well-formedness pass which forbids usage of WasmXX values outside of `[@disable](https://github.com/disable)GC` context ([#772](https://github.com/hazelgrove/grain/issues/772)) ([42fbad6](https://github.com/hazelgrove/grain/commit/42fbad632f1f7137285dbf4dbe609ddfb91c956e)) +* **compiler:** Add warning for calls to IntXX.fromNumber and FloatXX.fromNumber with literal integers/floats ([#1218](https://github.com/hazelgrove/grain/issues/1218)) ([2fb86e5](https://github.com/hazelgrove/grain/commit/2fb86e538a9d38241d6c149cec1a290817795b4b)) +* **compiler:** Allow [@external](https://github.com/external)Name attribute for foreign names ([#1060](https://github.com/hazelgrove/grain/issues/1060)) ([f4c1311](https://github.com/hazelgrove/grain/commit/f4c13115ef2eb589f035c31370e56a12bdc2e10c)) +* **compiler:** Allow a newline character before a match guard ([#1063](https://github.com/hazelgrove/grain/issues/1063)) ([bf41a9c](https://github.com/hazelgrove/grain/commit/bf41a9cf585c63eb2482c7d94d9c615428bc8435)) +* **compiler:** Allow compilation of empty programs ([#1336](https://github.com/hazelgrove/grain/issues/1336)) ([32df14b](https://github.com/hazelgrove/grain/commit/32df14b33325c39fd98c452fc2687b788ec35264)) +* **compiler:** Allow disabling Binaryen optimizations ([#780](https://github.com/hazelgrove/grain/issues/780)) ([a6c929c](https://github.com/hazelgrove/grain/commit/a6c929c6265dd12379d31cfdc8f50bc83ddc6802)) +* **compiler:** Allow function re-exports to use regular call instruction ([#1176](https://github.com/hazelgrove/grain/issues/1176)) ([afce3aa](https://github.com/hazelgrove/grain/commit/afce3aaa5382cde54b1e8fd9be3d2ee86daedbbb)) +* **compiler:** Allow newline in or-patterns ([#1323](https://github.com/hazelgrove/grain/issues/1323)) ([8fe8247](https://github.com/hazelgrove/grain/commit/8fe8247ec6c08e04575b42281716eb34c46af97f)) +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/hazelgrove/grain/issues/1167)) ([6f34de2](https://github.com/hazelgrove/grain/commit/6f34de214b28358ea1df553685fa3a19336ddba9)) +* **compiler:** Call known functions across module boundaries ([#1175](https://github.com/hazelgrove/grain/issues/1175)) ([b2d7440](https://github.com/hazelgrove/grain/commit/b2d744034ec7e0601554531c910e9d0f5451d464)) +* **compiler:** Call known functions directly ([#777](https://github.com/hazelgrove/grain/issues/777)) ([ad282be](https://github.com/hazelgrove/grain/commit/ad282be2671a84d5383f4e221059dff527c37049)) +* **compiler:** Callee-owned values ([#803](https://github.com/hazelgrove/grain/issues/803)) ([c242e89](https://github.com/hazelgrove/grain/commit/c242e89767788e590f053c3d3ddfa7208387c247)) +* **compiler:** Cleaner wasm output for low-level wasm types ([#1158](https://github.com/hazelgrove/grain/issues/1158)) ([88060dd](https://github.com/hazelgrove/grain/commit/88060ddb8119e2998d91f4d6770a1cfd101936cf)) +* **compiler:** Consolidate exe & js modes ([fc61950](https://github.com/hazelgrove/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Convert `runtime/dataStructures.gr` to primitives ([#1145](https://github.com/hazelgrove/grain/issues/1145)) ([2d43b28](https://github.com/hazelgrove/grain/commit/2d43b286141df75f6b92300e48d2bc4804014872)) +* **compiler:** Convert Sys libraries to [@unsafe](https://github.com/unsafe) ([#1272](https://github.com/hazelgrove/grain/issues/1272)) ([fcdfc2a](https://github.com/hazelgrove/grain/commit/fcdfc2a815be889d5f0424a04dd5b2373dbd983b)) +* **compiler:** Don't close over global values ([#1134](https://github.com/hazelgrove/grain/issues/1134)) ([e8caec6](https://github.com/hazelgrove/grain/commit/e8caec6c2a5892e955c8827b18d8d436bebe6073)) +* **compiler:** Emit a warning when using Pervasives.(!=) with unsafe Wasm types ([#758](https://github.com/hazelgrove/grain/issues/758)) ([1041e38](https://github.com/hazelgrove/grain/commit/1041e38279677e57ef83b7172fc8db95d3fc9598)) +* **compiler:** Emit a warning when using Pervasives.(==) with unsafe Wasm types ([#742](https://github.com/hazelgrove/grain/issues/742)) ([8b00055](https://github.com/hazelgrove/grain/commit/8b00055d7d91b3b8f5d8757a2aed14baa37e4bd6)) +* **compiler:** Improve assert messages to contain location information ([#737](https://github.com/hazelgrove/grain/issues/737)) ([26f645b](https://github.com/hazelgrove/grain/commit/26f645ba5f3be20d5db3a0933165bb6346d06b9d)) +* **compiler:** Inline all primitives ([#1076](https://github.com/hazelgrove/grain/issues/1076)) ([c227130](https://github.com/hazelgrove/grain/commit/c2271307b7220d54dc1c252dfc4ee5532f68dd29)) +* **compiler:** Inline not `(!)` operator ([#937](https://github.com/hazelgrove/grain/issues/937)) ([3f5e9a9](https://github.com/hazelgrove/grain/commit/3f5e9a962ec8565f4fb79a1ee36d7b492da5cf11)) +* **compiler:** List exports in wasm_utils ([#845](https://github.com/hazelgrove/grain/issues/845)) ([4fea67b](https://github.com/hazelgrove/grain/commit/4fea67bc31192e694a4e108ca2917fdae0b8da04)) +* **compiler:** Name globals in wasm output ([#1184](https://github.com/hazelgrove/grain/issues/1184)) ([51170e7](https://github.com/hazelgrove/grain/commit/51170e7c892680f9c730b7f93cf744ffd6b7c15a)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/hazelgrove/grain/issues/1033)) ([9dc3c96](https://github.com/hazelgrove/grain/commit/9dc3c96f87a0b2affe9db36e1b03360d198f79f1)) +* **compiler:** Reduce closure sizes by utilizing `$self` argument when possible ([#1152](https://github.com/hazelgrove/grain/issues/1152)) ([ba6a84c](https://github.com/hazelgrove/grain/commit/ba6a84cea191cf3c7932287c29b198001d490146)) +* **compiler:** Refactor exports ([#1244](https://github.com/hazelgrove/grain/issues/1244)) ([4637667](https://github.com/hazelgrove/grain/commit/4637667cd669c0988cd01c2957534c6a35a3146c)) +* **compiler:** Remove user manual memory management calls when --no-gc supplied ([#817](https://github.com/hazelgrove/grain/issues/817)) ([92efd40](https://github.com/hazelgrove/grain/commit/92efd40264345ddee15acc84899bf3da5bc52b55)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/hazelgrove/grain/issues/1270)) ([1a27c12](https://github.com/hazelgrove/grain/commit/1a27c127e8f0318c21fec7ab358ee8e1ad2378e9)) +* **compiler:** Selectively include functions in the global function table ([#1183](https://github.com/hazelgrove/grain/issues/1183)) ([67575f7](https://github.com/hazelgrove/grain/commit/67575f712557bc36531f6e40044d1bbfff2454ff)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/hazelgrove/grain/issues/1103)) ([095385e](https://github.com/hazelgrove/grain/commit/095385e7c67bbc7a417a21acaf6f1c498c75ce63)) +* **compiler:** Support pattern aliases ([#1174](https://github.com/hazelgrove/grain/issues/1174)) ([9ed093b](https://github.com/hazelgrove/grain/commit/9ed093be353895bdde8282ee1681089d5fac68ab)) +* **compiler:** Support pattern matching "or" patterns ([#1173](https://github.com/hazelgrove/grain/issues/1173)) ([0fb29c4](https://github.com/hazelgrove/grain/commit/0fb29c4016e1b24b9e3b3b640cc9914b921ec376)) +* **compiler:** Support record field updating assignment ([#1320](https://github.com/hazelgrove/grain/issues/1320)) ([cc5519c](https://github.com/hazelgrove/grain/commit/cc5519ce36418623b05d297d577c2325ad9cbc7a)) +* **compiler:** Type aliases ([#995](https://github.com/hazelgrove/grain/issues/995)) ([bc648ce](https://github.com/hazelgrove/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **compiler:** Universal WebAssembly initial and maximum pages flags ([#668](https://github.com/hazelgrove/grain/issues/668)) ([ec9c0e2](https://github.com/hazelgrove/grain/commit/ec9c0e211cf0872f2ac2d52fffd848c74e7a8894)) +* **compiler:** Upgrade binaryen to 0.15.0 to support Mac M1 arch ([#1151](https://github.com/hazelgrove/grain/issues/1151)) ([fc61950](https://github.com/hazelgrove/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Upgrade to binaryen.ml v0.10.0 ([#623](https://github.com/hazelgrove/grain/issues/623)) ([940f0f1](https://github.com/hazelgrove/grain/commit/940f0f17bc75e6aa861798a765215db0955bbe72)) +* **compiler:** Use symbol for equals sign ([#1128](https://github.com/hazelgrove/grain/issues/1128)) ([3d7fc57](https://github.com/hazelgrove/grain/commit/3d7fc5742ad3016d60e14112fdd68de02fc147f1)) +* Enable Binaryen optimizations ([#556](https://github.com/hazelgrove/grain/issues/556)) ([50ebf74](https://github.com/hazelgrove/grain/commit/50ebf74f98dedad89399424841de1427a8ac10ef)) +* Export number runtime functions as operators & deprecate old identifiers ([#629](https://github.com/hazelgrove/grain/issues/629)) ([b99441a](https://github.com/hazelgrove/grain/commit/b99441aebc8c6d643be460177277112428e7cf58)) +* Grain implementation of Char and String libraries ([#559](https://github.com/hazelgrove/grain/issues/559)) ([7424cc5](https://github.com/hazelgrove/grain/commit/7424cc5befe5c3416c26c5e943cc064329eac025)) +* Grain implementation of hashing ([#557](https://github.com/hazelgrove/grain/issues/557)) ([40723fc](https://github.com/hazelgrove/grain/commit/40723fca645f147b98eea83ffc11bd53359ce29a)) +* Grain wasi bindings ([#562](https://github.com/hazelgrove/grain/issues/562)) ([323006b](https://github.com/hazelgrove/grain/commit/323006b7a3e12194b252bcbad2ef8a3eb8e1f043)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/hazelgrove/grain/issues/1116)) ([0f681ea](https://github.com/hazelgrove/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **graindoc:** Add support for deprecated attribute ([#751](https://github.com/hazelgrove/grain/issues/751)) ([8540c73](https://github.com/hazelgrove/grain/commit/8540c73f26b9ed4cdd1a68ea671ad4b54d5ca0b2)) +* **graindoc:** Add support for extra information in module docblock ([#809](https://github.com/hazelgrove/grain/issues/809)) ([f28d234](https://github.com/hazelgrove/grain/commit/f28d2340d3c93be267ac6c2b238679c2259f4a7e)) +* **graindoc:** Allow directory input & output ([#1263](https://github.com/hazelgrove/grain/issues/1263)) ([d4cb8ab](https://github.com/hazelgrove/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **graindoc:** Support `[@since](https://github.com/since)` and `[@history](https://github.com/history)` attributes ([#785](https://github.com/hazelgrove/grain/issues/785)) ([9386f46](https://github.com/hazelgrove/grain/commit/9386f46304ad958c29bb099570f06193911f7131)) +* **grainfmt:** Add format in place or output to a new file ([#904](https://github.com/hazelgrove/grain/issues/904)) ([0d18935](https://github.com/hazelgrove/grain/commit/0d1893576bf3ad9e4d5c3aca5bfa963966b84b66)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/hazelgrove/grain/issues/1274)) ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Drastically improve performance ([#1042](https://github.com/hazelgrove/grain/issues/1042)) ([9bc7a55](https://github.com/hazelgrove/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Implement Bytes type and Bytes stdlib ([#633](https://github.com/hazelgrove/grain/issues/633)) ([4b81898](https://github.com/hazelgrove/grain/commit/4b81898d4cf17b34dc35e975b228b08b53d81a2a)) +* Implement Grain array methods in Grain instead of the compiler ([#660](https://github.com/hazelgrove/grain/issues/660)) ([b1397fa](https://github.com/hazelgrove/grain/commit/b1397fae4c49a6b6789cbacc4f14ec6ee484c483)) +* Implement support for printing in Grain ([#561](https://github.com/hazelgrove/grain/issues/561)) ([bfe471c](https://github.com/hazelgrove/grain/commit/bfe471c668ee5838bde8a307bfc0f5d650a9b594)) +* Keep track of warnings and report them in LSP mode ([#659](https://github.com/hazelgrove/grain/issues/659)) ([5144e1b](https://github.com/hazelgrove/grain/commit/5144e1b2e25c95c195a9ed29676d3bf4f01a81d2)) +* **linker:** Add --use-start-section flag to use start section in output ([#844](https://github.com/hazelgrove/grain/issues/844)) ([c221834](https://github.com/hazelgrove/grain/commit/c221834f93b897c001d7530e6b4a354fd5c5d17b)) +* **linker:** Add better error for failed wasi polyfill import ([3d8f70c](https://github.com/hazelgrove/grain/commit/3d8f70cc8255075a462d892fdfcfe30d48c599f0)) +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/hazelgrove/grain/issues/1131)) ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* Normalized wasm exports for linked modules ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Rename Queue/Stack functions & deprecate old identifiers ([#635](https://github.com/hazelgrove/grain/issues/635)) ([3a8da65](https://github.com/hazelgrove/grain/commit/3a8da654f2f3a032e3413a44f543b79dc3ee23e1)) +* Static linking of Grain modules ([#584](https://github.com/hazelgrove/grain/issues/584)) ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* **stdlib:** add `Queue.size` and `Stack.size` ([#647](https://github.com/hazelgrove/grain/issues/647)) ([82ed533](https://github.com/hazelgrove/grain/commit/82ed5336c3c5ab0679f5a2db2172084ec08ce411)) +* **stdlib:** Add Array.reverse() function ([#698](https://github.com/hazelgrove/grain/issues/698)) ([538e987](https://github.com/hazelgrove/grain/commit/538e987d9828b0851d0cc14a26c8b5815f012f5b)) +* **stdlib:** Add Array.slice function ([#727](https://github.com/hazelgrove/grain/issues/727)) ([66319ca](https://github.com/hazelgrove/grain/commit/66319ca8f3bbeb80e18525d1c15e2b84f0abd0c1)) +* **stdlib:** Add Array.unzip function ([#699](https://github.com/hazelgrove/grain/issues/699)) ([cb9b49e](https://github.com/hazelgrove/grain/commit/cb9b49e5d3110a6c23c72065ee306a5ba7ee27af)) +* **stdlib:** Add Array.zip function ([#719](https://github.com/hazelgrove/grain/issues/719)) ([1dc7f56](https://github.com/hazelgrove/grain/commit/1dc7f56b8d4edafe0b720e031793d01b7d471855)) +* **stdlib:** Add buffer module ([627f181](https://github.com/hazelgrove/grain/commit/627f181e38a843d86a52f55b0d0a4fc02b14fc46)) +* **stdlib:** Add Conv.wasmI32ToNumber function ([#978](https://github.com/hazelgrove/grain/issues/978)) ([c93ade8](https://github.com/hazelgrove/grain/commit/c93ade873b51acca556e19a7483a5f29b4b6caa9)) +* **stdlib:** Add cycle function to Array module ([#993](https://github.com/hazelgrove/grain/issues/993)) ([c595622](https://github.com/hazelgrove/grain/commit/c595622b28366655dfd5447270e8f9fc3f988a67)) +* **stdlib:** Add Float32/Float64 constants for infinity/nan ([#720](https://github.com/hazelgrove/grain/issues/720)) ([4ff3b9f](https://github.com/hazelgrove/grain/commit/4ff3b9f99369e9b69a0b29299c89050180bbf8ec)) +* **stdlib:** Add GrainDoc to Array module ([#763](https://github.com/hazelgrove/grain/issues/763)) ([155c3e8](https://github.com/hazelgrove/grain/commit/155c3e835850472529f21401a138b69bb5ff7318)) +* **stdlib:** Add List.join and Array.join functions ([#722](https://github.com/hazelgrove/grain/issues/722)) ([01a64b6](https://github.com/hazelgrove/grain/commit/01a64b64f2c6e5233f2e1492c75c7531d19f637b)) +* **stdlib:** Add module for pseudo-random number generation ([#921](https://github.com/hazelgrove/grain/issues/921)) ([db1fa4e](https://github.com/hazelgrove/grain/commit/db1fa4e491d35bb582beaba12157884647384a77)) +* **stdlib:** Add number constants to number libraries ([#1331](https://github.com/hazelgrove/grain/issues/1331)) ([f640ec2](https://github.com/hazelgrove/grain/commit/f640ec20aa507c83c9cde290b911d0adcb4e8254)) +* **stdlib:** add Range.map ([#674](https://github.com/hazelgrove/grain/issues/674)) ([5c33861](https://github.com/hazelgrove/grain/commit/5c33861d933e6ee0049dadd54e612c2c25d623ca)), closes [#616](https://github.com/hazelgrove/grain/issues/616) +* **stdlib:** Add Result.expect & Result.unwrap functions ([#808](https://github.com/hazelgrove/grain/issues/808)) ([c390e61](https://github.com/hazelgrove/grain/commit/c390e610e3c05eadc42aca57804a4ddb48cccff2)) +* **stdlib:** Add reverse function to String module ([#1027](https://github.com/hazelgrove/grain/issues/1027)) ([df761db](https://github.com/hazelgrove/grain/commit/df761db55b3e14e31190090ae008ce5047135c09)) +* **stdlib:** Add rotate function in Array module ([#838](https://github.com/hazelgrove/grain/issues/838)) ([98fc577](https://github.com/hazelgrove/grain/commit/98fc577ee754317cd2421bfaa8e3c1e049488949)) +* **stdlib:** Add sign function to Number module ([#1079](https://github.com/hazelgrove/grain/issues/1079)) ([b6483d5](https://github.com/hazelgrove/grain/commit/b6483d5046cd1b6b89a717a925594d3b20b05837)) +* **stdlib:** Add sort function to Array module ([#1012](https://github.com/hazelgrove/grain/issues/1012)) ([9091930](https://github.com/hazelgrove/grain/commit/9091930344224925bb7b2e1ef6f879c79a5c2f62)) +* **stdlib:** Add string trim functions to String module ([#951](https://github.com/hazelgrove/grain/issues/951)) ([e55de8f](https://github.com/hazelgrove/grain/commit/e55de8fc0335b45252da9741a80b46a702cdb5b6)) +* **stdlib:** Add String.chatAt function ([#721](https://github.com/hazelgrove/grain/issues/721)) ([94ffbbe](https://github.com/hazelgrove/grain/commit/94ffbbe0f84820d282784d62e295796ab865c837)) +* **stdlib:** Add String.encode and String.decode functions to standard library ([#683](https://github.com/hazelgrove/grain/issues/683)) ([5635a36](https://github.com/hazelgrove/grain/commit/5635a3682e88292e3623157b34323d968f6946c3)) +* **stdlib:** Add unsigned versions of Int32/Int64 comparison operations ([#831](https://github.com/hazelgrove/grain/issues/831)) ([5f20868](https://github.com/hazelgrove/grain/commit/5f20868e7b6e3f52d62c8531d99d1130ca84961e)) +* **stdlib:** Added Bytes.clear function. Avoid allocation in Buffer.clear ([#1124](https://github.com/hazelgrove/grain/issues/1124)) ([4afd17a](https://github.com/hazelgrove/grain/commit/4afd17a91e59027fa7af0fe58977bdbe942f8072)) +* **stdlib:** Convert runtime printing utils to [@unsafe](https://github.com/unsafe) ([#1135](https://github.com/hazelgrove/grain/issues/1135)) ([403e1d2](https://github.com/hazelgrove/grain/commit/403e1d20e2082fe2dcd2721f83f6c2b36d4154bf)) +* **stdlib:** Convert sys functions to return Results instead of throwing errors ([#792](https://github.com/hazelgrove/grain/issues/792)) ([35cd957](https://github.com/hazelgrove/grain/commit/35cd957d9c04d84d9f12b54cd2882a6bbc67c175)) +* **stdlib:** Export coerceNumberToWasmI32/I64/F32/F64 from Number runtime ([#713](https://github.com/hazelgrove/grain/issues/713)) ([9353f0b](https://github.com/hazelgrove/grain/commit/9353f0b103f6fd047230a55eb6bdede95fccceb2)) +* **stdlib:** forEachCodePoint and forEachCodePointi ([#766](https://github.com/hazelgrove/grain/issues/766)) ([b95cfb7](https://github.com/hazelgrove/grain/commit/b95cfb77fd2f248f611f2b6a55d58d67ee800859)) +* **stdlib:** Implement initial Number library ([#687](https://github.com/hazelgrove/grain/issues/687)) ([4a71209](https://github.com/hazelgrove/grain/commit/4a7120964a31602f763b31064e112cfeaa4d1d38)) +* **stdlib:** Implement List.sort via mergesort ([#1014](https://github.com/hazelgrove/grain/issues/1014)) ([a076e20](https://github.com/hazelgrove/grain/commit/a076e200013114ccf16c2e6cbe814af1ec09c1ce)) +* **stdlib:** Implement Number.sin and Number.cos ([#1343](https://github.com/hazelgrove/grain/issues/1343)) ([9357126](https://github.com/hazelgrove/grain/commit/93571267b7df53e1cb9f61eaebf8748885e7392c)) +* **stdlib:** Int32/64 clz, ctz, popcnt, rotl, rotr, eq, ne, eqz ([#807](https://github.com/hazelgrove/grain/issues/807)) ([ffddc51](https://github.com/hazelgrove/grain/commit/ffddc512d2c2879b76486f9d7a91621cebb064bd)) +* **stdlib:** Number utilities isNaN, isFinite, and isInfinite ([#729](https://github.com/hazelgrove/grain/issues/729)) ([b907da7](https://github.com/hazelgrove/grain/commit/b907da7a9e2e7fdbf5d9f376533fbec21458017e)) +* **stdlib:** Number.parseInt ([#1051](https://github.com/hazelgrove/grain/issues/1051)) ([abafb58](https://github.com/hazelgrove/grain/commit/abafb587e54219a32ed77ba09863bb2d6a80bac8)) +* **stdlib:** Optimized coerceNumberToWasmI32. ([#782](https://github.com/hazelgrove/grain/issues/782)) ([98e86ae](https://github.com/hazelgrove/grain/commit/98e86ae98fff4b9b3d07f2815477762d2d797e30)) +* **stdlib:** Provide Bytes hash implementation ([#853](https://github.com/hazelgrove/grain/issues/853)) ([ec7d902](https://github.com/hazelgrove/grain/commit/ec7d902e900e57a0e3e6fb2a9c16e8c578a1ba47)) +* **stdlib:** Regular Expressions ([#680](https://github.com/hazelgrove/grain/issues/680)) ([9601e16](https://github.com/hazelgrove/grain/commit/9601e1655f1ffc76b700efef317366457c5614ef)) +* **stdlib:** String.encodeAtHelp bounds checks and optimization ([#764](https://github.com/hazelgrove/grain/issues/764)) ([27fccae](https://github.com/hazelgrove/grain/commit/27fccae0ffbfd4cd60cd64f60927ca4a1a7b9fae)) +* Support \b, \f, \t, and \v escapes ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* Support for more WebAssembly runtimes, including Wasmtime and Wasmer ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Support mutually recursive data definitions ([#725](https://github.com/hazelgrove/grain/issues/725)) ([4474f88](https://github.com/hazelgrove/grain/commit/4474f887514caa35132724ad2c658cc5328807c5)) +* Update assignment semantics ([#560](https://github.com/hazelgrove/grain/issues/560)) ([03a3217](https://github.com/hazelgrove/grain/commit/03a3217fb7bc755407917991e0ebac3a66ea071e)) +* Use Grain exceptions instead of JS exceptions ([#565](https://github.com/hazelgrove/grain/issues/565)) ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) + + +### Bug Fixes + +* `export *` with exceptions ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add [@disable](https://github.com/disable)GC annotation to WasmXX-using getSize function in Bytes ([#771](https://github.com/hazelgrove/grain/issues/771)) ([bc4146b](https://github.com/hazelgrove/grain/commit/bc4146b426860f519d4fb7bb4e8345e227dffc69)) +* Adjust Number equality, thus that 5 == 5.0 ([#726](https://github.com/hazelgrove/grain/issues/726)) ([04aef16](https://github.com/hazelgrove/grain/commit/04aef163b862588e5d7f699fc33e0810625ab22a)) +* Always use correct wasm type for throw ([#652](https://github.com/hazelgrove/grain/issues/652)) ([dcec4e0](https://github.com/hazelgrove/grain/commit/dcec4e0a9b620248b19b311d952a601e0967a92b)) +* **ci:** Add a last-release-sha to release-please ([#1296](https://github.com/hazelgrove/grain/issues/1296)) ([abf9749](https://github.com/hazelgrove/grain/commit/abf9749d8188970a27bd6f60213261af352f2e6f)) +* **cli:** Correct typo in lsp catch block ([#618](https://github.com/hazelgrove/grain/issues/618)) ([b903ced](https://github.com/hazelgrove/grain/commit/b903ced32ad7a6a2055a73473921e791adfd6ae4)) +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Forward stdlib option to lsp and graindoc ([#916](https://github.com/hazelgrove/grain/issues/916)) ([07c5237](https://github.com/hazelgrove/grain/commit/07c5237795c9717cf925c6889e165f4eb8a04f8d)) +* **cli:** Manually bump CLI dependencies ([#871](https://github.com/hazelgrove/grain/issues/871)) ([1e4a7a1](https://github.com/hazelgrove/grain/commit/1e4a7a171c8dd41caf54e6218d59dffafef8f226)) +* **cli:** Only add --experimental-wasm-bigint flag on node 14 or 15 ([#899](https://github.com/hazelgrove/grain/issues/899)) ([1cc0c5c](https://github.com/hazelgrove/grain/commit/1cc0c5c03d38957c90f71e99a188c448923a481c)) +* **cli:** Rework JSOO hacks to ensure stdin always gets data ([#614](https://github.com/hazelgrove/grain/issues/614)) ([b064119](https://github.com/hazelgrove/grain/commit/b064119fe2a10dca68e30f4d66db455d37991ead)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/hazelgrove/grain/issues/1285)) ([1357e16](https://github.com/hazelgrove/grain/commit/1357e162f7e939db21468186d16e6d720b557a57)) +* **compiler:** Account for config that is not digestable ([#1098](https://github.com/hazelgrove/grain/issues/1098)) ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **compiler:** Allow modules to re-export imported types containing generics ([#1019](https://github.com/hazelgrove/grain/issues/1019)) ([003cb1e](https://github.com/hazelgrove/grain/commit/003cb1e10ca51c3f16d2155581eb8dccdde3ce5c)) +* **compiler:** Allow trailing commas in imports and destructuring ([#890](https://github.com/hazelgrove/grain/issues/890)) ([f5c24c9](https://github.com/hazelgrove/grain/commit/f5c24c946b3356090b9aca6123bc14a19b4e06fb)) +* **compiler:** Always get little endian i64 from bytes ([#587](https://github.com/hazelgrove/grain/issues/587)) ([1b9853a](https://github.com/hazelgrove/grain/commit/1b9853ad3ebc91c1022efbf484532254c67c845e)) +* **compiler:** Apply correct allocation type to numbers ([#1140](https://github.com/hazelgrove/grain/issues/1140)) ([b9e9d59](https://github.com/hazelgrove/grain/commit/b9e9d59143f529f7c0ae100b048988e6ba0e8d54)) +* **compiler:** Apply optimization flag at link stage ([#1099](https://github.com/hazelgrove/grain/issues/1099)) ([49dac79](https://github.com/hazelgrove/grain/commit/49dac797aa4833cc141f7c58d18d80d7cbc6b1c7)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Consider invalid CMIs as out of date and recompile ([#1061](https://github.com/hazelgrove/grain/issues/1061)) ([80da3a9](https://github.com/hazelgrove/grain/commit/80da3a9667020e4f5f855a0b9da8286508a07275)) +* **compiler:** Correct error message for unbound type variables ([#1327](https://github.com/hazelgrove/grain/issues/1327)) ([762362a](https://github.com/hazelgrove/grain/commit/762362a06e1676540cd33df8200ea2a6b7006a5e)) +* **compiler:** Correct pretty-printing of record types ([#750](https://github.com/hazelgrove/grain/issues/750)) ([3c0f942](https://github.com/hazelgrove/grain/commit/3c0f942395aa2417b50bba68e5009510c5a49a36)) +* **compiler:** Correct reporting of locations for CRLF files ([#658](https://github.com/hazelgrove/grain/issues/658)) ([457a011](https://github.com/hazelgrove/grain/commit/457a01183e9234a2190f9e50668305cfcefd8d87)) +* **compiler:** Correctly supply locations for types & variants ([9bc7a55](https://github.com/hazelgrove/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **compiler:** Do not add transitive dependencies as imports during CRC consistency check ([#830](https://github.com/hazelgrove/grain/issues/830)) ([a1caacc](https://github.com/hazelgrove/grain/commit/a1caacc523a2af52f5f0f2655211b9257b30af73)) +* **compiler:** Do not inline aliased mutables ([#909](https://github.com/hazelgrove/grain/issues/909)) ([a50430a](https://github.com/hazelgrove/grain/commit/a50430a2cff5f50dd666f1ec14bd485bfda77e86)) +* **compiler:** Don't over-optimize mutable imports ([#967](https://github.com/hazelgrove/grain/issues/967)) ([c3066f6](https://github.com/hazelgrove/grain/commit/c3066f6e32bbbe3bd51b9a7b498567b8deb8d9ba)) +* **compiler:** Don't report comment locations when disabled ([#861](https://github.com/hazelgrove/grain/issues/861)) ([c6821dd](https://github.com/hazelgrove/grain/commit/c6821ddb63cf42a04c7ee86bc7b248765f605d1d)) +* **compiler:** Don't warn on exhaustive boolean matches ([#913](https://github.com/hazelgrove/grain/issues/913)) ([4189745](https://github.com/hazelgrove/grain/commit/4189745d09c3fc6971f95dc1c8428dc73761aed3)) +* **compiler:** Ensure cwd directory is normalized on Windows ([#952](https://github.com/hazelgrove/grain/issues/952)) ([a3ab9c3](https://github.com/hazelgrove/grain/commit/a3ab9c3cd2359866a61a1dd4b63f40b0f964e2a4)) +* **compiler:** Ensure main module is included in linker dependency graph ([#996](https://github.com/hazelgrove/grain/issues/996)) ([d5c6c04](https://github.com/hazelgrove/grain/commit/d5c6c048d4239ef07fb6ac0a79774d85933cccf9)) +* **compiler:** Ensure TExpApp is always expansive in Grain ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Export functions with aliased names as wasm functions ([#920](https://github.com/hazelgrove/grain/issues/920)) ([afba142](https://github.com/hazelgrove/grain/commit/afba142ef90d0d95ae0085debe50e1b34588b267)) +* **compiler:** Fix binop operator reported location ([#1018](https://github.com/hazelgrove/grain/issues/1018)) ([422dbcb](https://github.com/hazelgrove/grain/commit/422dbcb01cd09627c6a5f4494cc7c2e7644e92f0)) +* **compiler:** Fix compilation of closure scope mutable destructuring ([#1346](https://github.com/hazelgrove/grain/issues/1346)) ([bdcdb3c](https://github.com/hazelgrove/grain/commit/bdcdb3c66a9a60fc44956225491c12cc14250009)) +* **compiler:** Fix compilation of functions annotated with alias ([#1293](https://github.com/hazelgrove/grain/issues/1293)) ([b3e1882](https://github.com/hazelgrove/grain/commit/b3e188299be6af22bb64cf5ae9a41afa05e4c16f)) +* **compiler:** Fix counting of stack size ([#1066](https://github.com/hazelgrove/grain/issues/1066)) ([f1b3e51](https://github.com/hazelgrove/grain/commit/f1b3e51580062da9b7e42ec36eb9880b71375cb9)) +* **compiler:** Fix error message when trying to export a constructor ([#1055](https://github.com/hazelgrove/grain/issues/1055)) ([54ddb67](https://github.com/hazelgrove/grain/commit/54ddb671745b554eacc8640b1337a46f423b1cc5)) +* **compiler:** fix formatter multiple data bug ([#1282](https://github.com/hazelgrove/grain/issues/1282)) ([f6fd962](https://github.com/hazelgrove/grain/commit/f6fd96250dbe95d6b6c56d663f6d7f2704b792b3)) +* **compiler:** Fix incorrect char well-formedness error ([#837](https://github.com/hazelgrove/grain/issues/837)) ([4a201cf](https://github.com/hazelgrove/grain/commit/4a201cf2829a1721fe1f5e322d45106bd06d51e8)) +* **compiler:** Fix location information for parsed toplevel statements ([#801](https://github.com/hazelgrove/grain/issues/801)) ([36c85f7](https://github.com/hazelgrove/grain/commit/36c85f7b8aae010401c92ceb2b33224938e10fa7)) +* **compiler:** Fix location of toplevel import statement ([#794](https://github.com/hazelgrove/grain/issues/794)) ([3f94057](https://github.com/hazelgrove/grain/commit/3f9405754f2b58f32819f7d8809eab1563c4a31a)) +* **compiler:** Fix memory leaks when loading from heap values ([#1038](https://github.com/hazelgrove/grain/issues/1038)) ([7d3402d](https://github.com/hazelgrove/grain/commit/7d3402db09b6e4e24e49d168e8ddd49044a98df1)) +* **compiler:** Fix parsing of block with lone 0-arg enum ([#885](https://github.com/hazelgrove/grain/issues/885)) ([edfc21e](https://github.com/hazelgrove/grain/commit/edfc21e0ca8f76f00b53d0fd07075ccf6299358e)) +* **compiler:** Fix stack/heap number allocation boundary ([#974](https://github.com/hazelgrove/grain/issues/974)) ([47b0f56](https://github.com/hazelgrove/grain/commit/47b0f56c00e88ddc6054b8f8f8eea4b21da0c7f7)) +* **compiler:** Fix typechecking of single-argument tuple annotation ([#827](https://github.com/hazelgrove/grain/issues/827)) ([7b1bb58](https://github.com/hazelgrove/grain/commit/7b1bb58971bf6b714454c1cfce9c0dea673a3670)) +* **compiler:** Follow proper calling convention when callling stdlib equals in match ([#895](https://github.com/hazelgrove/grain/issues/895)) ([73fe7d4](https://github.com/hazelgrove/grain/commit/73fe7d47783a76454496c8bba55ff051561ef975)) +* **compiler:** Handle let-mut value restriction, such that mutable lets are always expansive ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Implement proper dependency resolver ([#590](https://github.com/hazelgrove/grain/issues/590)) ([d9ce392](https://github.com/hazelgrove/grain/commit/d9ce392341acebd0b46a0e6fe78469e23e73ee92)) +* **compiler:** Inform the compiler that lsp mode is running on a root file ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **compiler:** Iterate over guard clauses in typedTreeIter/typedTreeMap ([#1283](https://github.com/hazelgrove/grain/issues/1283)) ([96e8ecb](https://github.com/hazelgrove/grain/commit/96e8ecb9e84e54d0640bc775e23e25b93c4dda7c)) +* **compiler:** Move Filename usage to Filepath.String & normalize separators ([584bcad](https://github.com/hazelgrove/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Move lsp flag into grainc to remove it as a recompilation flag ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **compiler:** Parse array set with newline correctly ([#926](https://github.com/hazelgrove/grain/issues/926)) ([14e1822](https://github.com/hazelgrove/grain/commit/14e18229f82637870c651b948fb15c3e5a7b082c)) +* **compiler:** Preserve all configs when compiling ([#1207](https://github.com/hazelgrove/grain/issues/1207)) ([d8ff903](https://github.com/hazelgrove/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Print parens for unit functions ([#749](https://github.com/hazelgrove/grain/issues/749)) ([fd88d2e](https://github.com/hazelgrove/grain/commit/fd88d2e7a82c852ef52f13c3cd58e3fd6fd789df)) +* **compiler:** Properly apply bindings when executing match guard ([#1039](https://github.com/hazelgrove/grain/issues/1039)) ([121644b](https://github.com/hazelgrove/grain/commit/121644be48e66ea1a7ce884ea816fe9af223442c)) +* **compiler:** Properly handle corrupted CMIs ([#1314](https://github.com/hazelgrove/grain/issues/1314)) ([7f97410](https://github.com/hazelgrove/grain/commit/7f9741016fac55bd63aa74d9bd2fef49dd34d03b)) +* **compiler:** properly handle special float equality ([#664](https://github.com/hazelgrove/grain/issues/664)) ([b63597a](https://github.com/hazelgrove/grain/commit/b63597a2a0a490015b2af0668894ed9c9afb81ce)) +* **compiler:** Properly handle types not imported ([#1329](https://github.com/hazelgrove/grain/issues/1329)) ([75bbb93](https://github.com/hazelgrove/grain/commit/75bbb9367a43c923fc97b25ea0ed9315190f5702)) +* **compiler:** Properly handle value restriction on function application & mutable vars ([#988](https://github.com/hazelgrove/grain/issues/988)) ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Properly unmark type manifest bodies ([bc648ce](https://github.com/hazelgrove/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **compiler:** Provide named function export for recursive functions ([#843](https://github.com/hazelgrove/grain/issues/843)) ([e7d2ff4](https://github.com/hazelgrove/grain/commit/e7d2ff42d2a6e287ec6152b1a4e7cf2b366658f1)) +* **compiler:** Read custom sections in full ([#1243](https://github.com/hazelgrove/grain/issues/1243)) ([f8a0891](https://github.com/hazelgrove/grain/commit/f8a0891f253e33153feb2ec20afe6443391a1aa8)) +* **compiler:** Recompile cached modules when compiler flags change ([#820](https://github.com/hazelgrove/grain/issues/820)) ([50497dd](https://github.com/hazelgrove/grain/commit/50497dd62aa02043f1f7bf1a5cc3ea74e7c080b6)) +* **compiler:** Refactor function return value incRef logic ([#765](https://github.com/hazelgrove/grain/issues/765)) ([97fbe3d](https://github.com/hazelgrove/grain/commit/97fbe3dd6615b07db249eae5946a6dfeebcec3c0)) +* **compiler:** Refactor module resolution in order to properly resolve relative paths ([#797](https://github.com/hazelgrove/grain/issues/797)) ([97cd97d](https://github.com/hazelgrove/grain/commit/97cd97d2126297044391c92d791846932eef1ded)) +* **compiler:** Refactor WASI polyfill resolution ([#1261](https://github.com/hazelgrove/grain/issues/1261)) ([a39b48f](https://github.com/hazelgrove/grain/commit/a39b48ff95f4ef7ce5a4b5454dbc620ae4044c17)) +* **compiler:** Remove from default ident printer ([#1056](https://github.com/hazelgrove/grain/issues/1056)) ([49cd5a0](https://github.com/hazelgrove/grain/commit/49cd5a08e5d9b2753b47af324b7fb90f4a98b339)) +* **compiler:** Remove existing exports when writing universal exports ([#919](https://github.com/hazelgrove/grain/issues/919)) ([e80de43](https://github.com/hazelgrove/grain/commit/e80de439e79ed1dab1c1adcbd5b9cca7a79be023)) +* **compiler:** Report binop locations properly ([#1271](https://github.com/hazelgrove/grain/issues/1271)) ([4b9dd9c](https://github.com/hazelgrove/grain/commit/4b9dd9c35969cf86f1d2d9a8013b7f6d347c508e)) +* **compiler:** Report Win32 instead of Cygwin in JS compiler ([#1251](https://github.com/hazelgrove/grain/issues/1251)) ([584bcad](https://github.com/hazelgrove/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Resolve all modules fully during linking ([#950](https://github.com/hazelgrove/grain/issues/950)) ([33b33a3](https://github.com/hazelgrove/grain/commit/33b33a3926cc059a0a759c4ec894fb9f6f03d904)) +* **compiler:** Resolve names when doing CRC checks ([#615](https://github.com/hazelgrove/grain/issues/615)) ([15ea9a1](https://github.com/hazelgrove/grain/commit/15ea9a18c0c5a8762a4e232720a2654c33881dac)) +* **compiler:** Respect stack type when dropping statements ([#1138](https://github.com/hazelgrove/grain/issues/1138)) ([5a44e93](https://github.com/hazelgrove/grain/commit/5a44e93ab646f1e9998ce6c23245e41c4bf0019a)) +* **compiler:** Return full string locations from parsing ([#798](https://github.com/hazelgrove/grain/issues/798)) ([392eabf](https://github.com/hazelgrove/grain/commit/392eabf6c1fa6963d7d08f95549e1a213e7acb03)) +* **compiler:** Strip leading line asterisks in block and doc comments ([#740](https://github.com/hazelgrove/grain/issues/740)) ([45d8564](https://github.com/hazelgrove/grain/commit/45d85644e2b686462ef58dcee608a19058c4a2d1)) +* **compiler:** Supply correct error for unbound record labels ([#1200](https://github.com/hazelgrove/grain/issues/1200)) ([86e1bc0](https://github.com/hazelgrove/grain/commit/86e1bc0ba099c5b48ba72e98530a634e15f6bb77)) +* **compiler:** Support printing tuple types in oprint ([#1324](https://github.com/hazelgrove/grain/issues/1324)) ([c1d8907](https://github.com/hazelgrove/grain/commit/c1d89076cad153ed4aa02593f628f4d152ff7139)) +* **compiler:** Update binaryen.ml bindings to include JS fixes ([#600](https://github.com/hazelgrove/grain/issues/600)) ([7bd9ac6](https://github.com/hazelgrove/grain/commit/7bd9ac69a1ba9c9506e8d65b1f51831a63fdf294)) +* Correct type signature for `_start` ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Correctly preserve start position for character literals ([#931](https://github.com/hazelgrove/grain/issues/931)) ([8fcc575](https://github.com/hazelgrove/grain/commit/8fcc575a3afde79ac6455b35839b1bcdd6ded41f)) +* **docker:** Build our own image of ubuntu+node14 ([#617](https://github.com/hazelgrove/grain/issues/617)) ([3053d64](https://github.com/hazelgrove/grain/commit/3053d643642c79a35d767e3292f69cde9f8726fc)) +* else clause on new line ([#678](https://github.com/hazelgrove/grain/issues/678)) ([13b01c9](https://github.com/hazelgrove/grain/commit/13b01c9df77d261e55639ae10ded50a922485894)) +* Fix parsing of '\'' char literal ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* **grainc:** Apply separator normalization before cmdliner util ([#654](https://github.com/hazelgrove/grain/issues/654)) ([992dfbd](https://github.com/hazelgrove/grain/commit/992dfbdf3f3c58927eb4eccf125173b9994b4626)) +* **grainc:** Only print compiler backtraces in debug mode ([#588](https://github.com/hazelgrove/grain/issues/588)) ([f5145ff](https://github.com/hazelgrove/grain/commit/f5145ff5eb931ec017228c08d6516384dae6b0e5)) +* **graindoc:** Add parens around infix operators in titles ([#1303](https://github.com/hazelgrove/grain/issues/1303)) ([acba9c1](https://github.com/hazelgrove/grain/commit/acba9c1757688756c3ca98b22a0a159b8d8f9e7d)) +* **graindoc:** Added linker fixes for Windows ([#824](https://github.com/hazelgrove/grain/issues/824)) ([41dc6c8](https://github.com/hazelgrove/grain/commit/41dc6c824055cec9118015dd3d5c8b8e8af65305)) +* **graindoc:** Avoid singletons when building ordered comments ([#1208](https://github.com/hazelgrove/grain/issues/1208)) ([3f28e6e](https://github.com/hazelgrove/grain/commit/3f28e6e226bbd951aedc6f8783203152919c7d08)) +* **graindoc:** Correctly order sections from source code ([#748](https://github.com/hazelgrove/grain/issues/748)) ([61da929](https://github.com/hazelgrove/grain/commit/61da9296e3c9b61181acb82c0c09cf7b197d6ef6)) +* **graindoc:** Correctly parse attributes, no matter the order ([#784](https://github.com/hazelgrove/grain/issues/784)) ([4a1b280](https://github.com/hazelgrove/grain/commit/4a1b2807cb76a3cedc40e66a4ce6442cd87ef7ef)) +* **graindoc:** Ensure argument-less variants print with trailing comma ([#810](https://github.com/hazelgrove/grain/issues/810)) ([d0cc615](https://github.com/hazelgrove/grain/commit/d0cc6153fc1187e509e1e4356bb054f2776dc8e7)) +* **graindoc:** Ensure value_description is resolved to outcome before printing ([#1070](https://github.com/hazelgrove/grain/issues/1070)) ([5eb05cc](https://github.com/hazelgrove/grain/commit/5eb05cc2dedc3b933e194be86dd5d3c3656d6490)) +* **graindoc:** Fix type printing for types and abstract types ([#1238](https://github.com/hazelgrove/grain/issues/1238)) ([aea3ea9](https://github.com/hazelgrove/grain/commit/aea3ea9f6b72182dfffb8af4c9af83a444fb6a83)) +* **graindoc:** Improve location lookup so re-exports do not crash it ([#1280](https://github.com/hazelgrove/grain/issues/1280)) ([6e782ee](https://github.com/hazelgrove/grain/commit/6e782ee146e16aefd3b88441de500d82a20508be)) +* **graindoc:** Only extract attributes from Doc comments ([#970](https://github.com/hazelgrove/grain/issues/970)) ([7b6ee5f](https://github.com/hazelgrove/grain/commit/7b6ee5f085af89f3db181c8d6c2718ca161f2ead)) +* **graindoc:** Preserve indentation in Doc comments during trim ([#1119](https://github.com/hazelgrove/grain/issues/1119)) ([b8a6d57](https://github.com/hazelgrove/grain/commit/b8a6d57cce274bfbc2cc16c5b25215b042d4264c)) +* **graindoc:** Remove spaces between parens and infix idents ([#1302](https://github.com/hazelgrove/grain/issues/1302)) ([95e596f](https://github.com/hazelgrove/grain/commit/95e596fa3fdae5a8a0e07d76ff8c11eeab99e8d7)) +* **graindoc:** Remove special idents from receiving parens ([#1104](https://github.com/hazelgrove/grain/issues/1104)) ([5cb0fda](https://github.com/hazelgrove/grain/commit/5cb0fda652cad0644f48d8196089430dca1cac0d)) +* **graindoc:** Use value_descriptions and type_declarations defined by the module signature ([#1241](https://github.com/hazelgrove/grain/issues/1241)) ([5896242](https://github.com/hazelgrove/grain/commit/5896242c324622f3329c144bd2c9642aade9d049)) +* **grainfmt:** Break long parameterized types ([bc648ce](https://github.com/hazelgrove/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **grainfmt:** Correctly add space between arguments in enum pattern ([#865](https://github.com/hazelgrove/grain/issues/865)) ([8c647fa](https://github.com/hazelgrove/grain/commit/8c647fab856a15f06ebfe9e0cc75e0f090ed707d)) +* **grainfmt:** fix some spacing issues with the formatter ([#955](https://github.com/hazelgrove/grain/issues/955)) ([9c4be85](https://github.com/hazelgrove/grain/commit/9c4be85011d6c030fd54954bd86b0a3ee0f80660)) +* **grainfmt:** Format CRLF files without error ([#941](https://github.com/hazelgrove/grain/issues/941)) ([ece7536](https://github.com/hazelgrove/grain/commit/ece7536b6d20694360257515a6f963f115ed21b3)) +* **grainfmt:** Group infix functions when passed as params ([bb9666d](https://github.com/hazelgrove/grain/commit/bb9666d24991df94c82d4f50c1d25d7669cec3c9)) +* **grainfmt:** handle empty type for foreign exports ([#907](https://github.com/hazelgrove/grain/issues/907)) ([d3b60a4](https://github.com/hazelgrove/grain/commit/d3b60a422568941185c2446464ba2eeb4a776ed2)) +* **grainfmt:** Handle recursive enums ([7dc77cd](https://github.com/hazelgrove/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **grainfmt:** Handle trailing block comments better ([#860](https://github.com/hazelgrove/grain/issues/860)) ([f15f37b](https://github.com/hazelgrove/grain/commit/f15f37ba1b1df776d868e0dfccf0bb8d42ada2a7)) +* **grainfmt:** Improve correctness of formatting ([9bc7a55](https://github.com/hazelgrove/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **grainfmt:** Improve formatter performance ([#959](https://github.com/hazelgrove/grain/issues/959)) ([4e739f1](https://github.com/hazelgrove/grain/commit/4e739f1d12a1493207a81549f1c0145f296b50be)) +* **grainfmt:** Indent function application args when adding parens ([#1095](https://github.com/hazelgrove/grain/issues/1095)) ([64af7d3](https://github.com/hazelgrove/grain/commit/64af7d387dca2fddb9b3d190ccdf5790ec3d8e65)) +* **grainfmt:** Inform the formatter that it is running against root files ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **grainfmt:** Preserve the EOL characters of file ([#1216](https://github.com/hazelgrove/grain/issues/1216)) ([ef2835a](https://github.com/hazelgrove/grain/commit/ef2835a5608cb1d5de52b280b6d4fd5b563ce725)) +* **grainfmt:** Print attributes for non-toplevel expressions ([#887](https://github.com/hazelgrove/grain/issues/887)) ([72292fe](https://github.com/hazelgrove/grain/commit/72292fe67cb21905dd976933d278810ac49bd35b)) +* **grainfmt:** Properly handle if/then/else line breaks ([#1217](https://github.com/hazelgrove/grain/issues/1217)) ([93fd3b5](https://github.com/hazelgrove/grain/commit/93fd3b5d0a5ccbc11baaab08d0f65ff9ec98aead)) +* **grainfmt:** remove extra spaces around for/while loop conditions ([#897](https://github.com/hazelgrove/grain/issues/897)) ([2054a83](https://github.com/hazelgrove/grain/commit/2054a832d713cd335417fe6e04e537453045c43f)) +* **grainfmt:** Remove extra spacing from type signatures ([#877](https://github.com/hazelgrove/grain/issues/877)) ([c8cf421](https://github.com/hazelgrove/grain/commit/c8cf421940fb21c06c5e3f9a11c72670bccccfb2)) +* **grainfmt:** Remove extraneous parens around infix function application ([#902](https://github.com/hazelgrove/grain/issues/902)) ([5c1906a](https://github.com/hazelgrove/grain/commit/5c1906a98664f1b14f969fff5c0e48ddd08988c4)) +* **grainfmt:** Remove parens around annotated types ([#1109](https://github.com/hazelgrove/grain/issues/1109)) ([0ca66bd](https://github.com/hazelgrove/grain/commit/0ca66bd43703826f86ef5b28b49d250af219fb0b)) +* **grainfmt:** Removed a trailing comma after a spread in a list, and fixed escaped single quote ([#923](https://github.com/hazelgrove/grain/issues/923)) ([3a138d6](https://github.com/hazelgrove/grain/commit/3a138d6002fdb2a84df89355e10a143ff792b122)) +* **grainfmt:** Resolve issues with comments within braces ([#888](https://github.com/hazelgrove/grain/issues/888)) ([9c88b89](https://github.com/hazelgrove/grain/commit/9c88b89db4ce1d7a256cbde51d74225513b76a3e)) +* **grainfmt:** Resugar match lists properly ([7dc77cd](https://github.com/hazelgrove/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **grainfmt:** Scope the comments in callback lambda closure ([#1090](https://github.com/hazelgrove/grain/issues/1090)) ([0975580](https://github.com/hazelgrove/grain/commit/09755801d8598691e4a2884a732c0ed9a9e10a2d)) +* **grainfmt:** Support PPatOr and PPatAlias ([#1322](https://github.com/hazelgrove/grain/issues/1322)) ([20050d2](https://github.com/hazelgrove/grain/commit/20050d2c975f60ae7ead41c76871562f7636c499)) +* **grainfmt:** Use Doc.space and surround trailing type annotations with parens ([#866](https://github.com/hazelgrove/grain/issues/866)) ([7bad8e2](https://github.com/hazelgrove/grain/commit/7bad8e2afb00b3756c191acc2181acefd28ed7fc)) +* **grainfmt:** Wrap type annotation for a long line let assignment ([#1005](https://github.com/hazelgrove/grain/issues/1005)) ([963b505](https://github.com/hazelgrove/grain/commit/963b5053b57aece6b721bd99dbe143b117ad86d7)) +* **js-runner:** Add default object for destructuring ([#833](https://github.com/hazelgrove/grain/issues/833)) ([ab96fd6](https://github.com/hazelgrove/grain/commit/ab96fd6c29f297f0e5423f3a6011fe07cf488df8)) +* **js-runner:** Monkeypatch fs_write in browser environment ([#832](https://github.com/hazelgrove/grain/issues/832)) ([330b56f](https://github.com/hazelgrove/grain/commit/330b56f3bdda17bf993e88bb35532831f95c63b3)) +* **linking:** Close file after reading ([c404fcf](https://github.com/hazelgrove/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* **lsp:** Always respond to hover request ([#1328](https://github.com/hazelgrove/grain/issues/1328)) ([fb947b5](https://github.com/hazelgrove/grain/commit/fb947b5dc47f306f6399d2b4564fe8f33ffd80b1)) +* **lsp:** Pattern-match the phase to match the stop hook ([#760](https://github.com/hazelgrove/grain/issues/760)) ([c4da4d9](https://github.com/hazelgrove/grain/commit/c4da4d938ffa15a21dbdef7b2648b37e2278b079)) +* Parsing of conditional assignment with binary operators ([#572](https://github.com/hazelgrove/grain/issues/572)) ([17fd4fa](https://github.com/hazelgrove/grain/commit/17fd4fa7e2d14d0392c98924625248ed6fd20b9a)) +* Properly escape quoted strings in toString/print ([#670](https://github.com/hazelgrove/grain/issues/670)) ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* Properly incRef exception printers ([#581](https://github.com/hazelgrove/grain/issues/581)) ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Properly initialize malloc free list ([#700](https://github.com/hazelgrove/grain/issues/700)) ([0576fd9](https://github.com/hazelgrove/grain/commit/0576fd9be8dbfecc5d7081731a1c5bedee32f9f1)) +* Properly open & close files ([#985](https://github.com/hazelgrove/grain/issues/985)) ([c404fcf](https://github.com/hazelgrove/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* Record function-call associativity ([#701](https://github.com/hazelgrove/grain/issues/701)) ([a6ca63f](https://github.com/hazelgrove/grain/commit/a6ca63fd8b3830b076d649e8c78cdde7b86507ca)) +* Reduce reduntant memory loads in Malloc.free ([#747](https://github.com/hazelgrove/grain/issues/747)) ([a5817b1](https://github.com/hazelgrove/grain/commit/a5817b10fc0c7170ab75d03f0e2cc2abae8f77c6)) +* Remove ppx_expect entirely to build on Windows ([#609](https://github.com/hazelgrove/grain/issues/609)) ([a234dd8](https://github.com/hazelgrove/grain/commit/a234dd8e027bbdb0f5dbf66bcf09fe8298a6ef7d)) +* **runtime:** Add types to boxed GC functions to avoid weak type errors ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **runtime:** Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly ([04aef16](https://github.com/hazelgrove/grain/commit/04aef163b862588e5d7f699fc33e0810625ab22a)) +* **runtime:** Return correct pointer to morecore ([#602](https://github.com/hazelgrove/grain/issues/602)) ([af39cc4](https://github.com/hazelgrove/grain/commit/af39cc46c8e12d869aaf5c42c0a3fd2afbc61638)) +* **stdlib:** Add bounds checking to Buffer addStringSlice & addBytesSlice ([#1065](https://github.com/hazelgrove/grain/issues/1065)) ([06fe512](https://github.com/hazelgrove/grain/commit/06fe512e863aeeb855ccf3e3b83bcd3bc8854723)) +* **stdlib:** Add explicit void return type on Map.forEach ([#1220](https://github.com/hazelgrove/grain/issues/1220)) ([ab2066a](https://github.com/hazelgrove/grain/commit/ab2066aadffa8813344d9df7c7a10ec0f76751b6)) +* **stdlib:** Add explicit void return type on Set.forEach ([#1225](https://github.com/hazelgrove/grain/issues/1225)) ([694e6cf](https://github.com/hazelgrove/grain/commit/694e6cf8fcd061a77b2915dc0ea9e9b1ae143ae4)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/hazelgrove/grain/issues/1136)) ([0c7cb82](https://github.com/hazelgrove/grain/commit/0c7cb820d49cda74598680cc614c0d893b4d2b40)) +* **stdlib:** Annotate generic types in Buffer ([#876](https://github.com/hazelgrove/grain/issues/876)) ([ad46b9e](https://github.com/hazelgrove/grain/commit/ad46b9e6b0d2d9d562b56e5cbf1ae6751028d93a)) +* **stdlib:** Avoid `Pervasives.(!=)` references on WasmI32 values ([#759](https://github.com/hazelgrove/grain/issues/759)) ([0f42544](https://github.com/hazelgrove/grain/commit/0f42544597c628454bede14fd82542331211dab8)) +* **stdlib:** Buffer.toBytes should not expose the raw instance of Bytes used by the buffer ([#1130](https://github.com/hazelgrove/grain/issues/1130)) ([d2bb585](https://github.com/hazelgrove/grain/commit/d2bb585d3e2092f1331a679f4e84a9500b8c87a5)) +* **stdlib:** Correct fdPwrite return value ([#875](https://github.com/hazelgrove/grain/issues/875)) ([ceaf6af](https://github.com/hazelgrove/grain/commit/ceaf6af52889f5d7c8a16df9a5a9ae5ff6752105)) +* **stdlib:** Correct type signatures on some Array functions ([#880](https://github.com/hazelgrove/grain/issues/880)) ([04bf4d3](https://github.com/hazelgrove/grain/commit/04bf4d3066cf80de8cb3da834124e29558c6d21a)) +* **stdlib:** Correctly indent nested record braces when printing ([#724](https://github.com/hazelgrove/grain/issues/724)) ([05f795d](https://github.com/hazelgrove/grain/commit/05f795dcbf77642070eae1613492d701d7b78113)) +* **stdlib:** decodeRangeHelp equality check in String module ([#735](https://github.com/hazelgrove/grain/issues/735)) ([42a03ca](https://github.com/hazelgrove/grain/commit/42a03ca7a13187f69107e920ee25d026fd467f61)) +* **stdlib:** Ensure Void return for forEach functions in List module ([#1307](https://github.com/hazelgrove/grain/issues/1307)) ([31f480c](https://github.com/hazelgrove/grain/commit/31f480c22e0a39b347fc3a48e1d0b5bd40c2f19e)) +* **stdlib:** fdWrite range error ([#677](https://github.com/hazelgrove/grain/issues/677)) ([73e0a7a](https://github.com/hazelgrove/grain/commit/73e0a7a1d5d393dd4b050275b68b949a14fe9936)) +* **stdlib:** Fix Char.code memory issue ([#928](https://github.com/hazelgrove/grain/issues/928)) ([dfa31d8](https://github.com/hazelgrove/grain/commit/dfa31d8aa60a41d08494f3817bdb628a30d83f41)) +* **stdlib:** Fix float printing in dtoa ([#1165](https://github.com/hazelgrove/grain/issues/1165)) ([2987210](https://github.com/hazelgrove/grain/commit/2987210648873ab474990ff2b7146a489fecb268)) +* **stdlib:** Fix issue with list printing ([#894](https://github.com/hazelgrove/grain/issues/894)) ([e2a33a9](https://github.com/hazelgrove/grain/commit/e2a33a9607bd076abbf6375389f1a7896775e6bc)) +* **stdlib:** Fix memory issue in list printing ([#912](https://github.com/hazelgrove/grain/issues/912)) ([3e0a805](https://github.com/hazelgrove/grain/commit/3e0a8059a36d1042fa06d6aed54565ced116fd87)) +* **stdlib:** Fix memory leaks in Char stdlib ([#929](https://github.com/hazelgrove/grain/issues/929)) ([99cc94b](https://github.com/hazelgrove/grain/commit/99cc94b3e2010c7fa6b2c244758dbbe13e43f903)) +* **stdlib:** Fix String.encode GC ([#1067](https://github.com/hazelgrove/grain/issues/1067)) ([0ab38c9](https://github.com/hazelgrove/grain/commit/0ab38c9f4aa0ee84688ba5c6bec1521b380d38b1)) +* **stdlib:** Fixed a memory leak in Buffer.addStringSlice. ([#1122](https://github.com/hazelgrove/grain/issues/1122)) ([c4e1911](https://github.com/hazelgrove/grain/commit/c4e19110bd9923e58a7953fcbcef18bf07f3efd6)) +* **stdlib:** Fixed length and byteLength for strings over 2GiB. ([#1126](https://github.com/hazelgrove/grain/issues/1126)) ([08a9487](https://github.com/hazelgrove/grain/commit/08a948709270a9aa4ac853c2887bc652c4734f36)) +* **stdlib:** Fixed memory leak in String.explode ([#1001](https://github.com/hazelgrove/grain/issues/1001)) ([c479a05](https://github.com/hazelgrove/grain/commit/c479a05f48abcc4c9e98d5cf0ba698230d41031b)) +* **stdlib:** Fixed memory leak in the print function. ([#770](https://github.com/hazelgrove/grain/issues/770)) ([df094f1](https://github.com/hazelgrove/grain/commit/df094f1ab412a03302aaf9fcb6ac14bd24cd85b2)) +* **stdlib:** Fixed String.writeUtf8CodePoint for two byte sequences. ([#786](https://github.com/hazelgrove/grain/issues/786)) ([20b1a77](https://github.com/hazelgrove/grain/commit/20b1a770fe4dd5302a92c763c4748fd501b41c96)) +* **stdlib:** Make Bytes.length handle sizes over 2GiB ([#1123](https://github.com/hazelgrove/grain/issues/1123)) ([d7386eb](https://github.com/hazelgrove/grain/commit/d7386eb36c32452d69a734b447015b4db23f1ac4)) +* **stdlib:** Make toNumber functions respect Number invariants ([#1347](https://github.com/hazelgrove/grain/issues/1347)) ([78db882](https://github.com/hazelgrove/grain/commit/78db8820cf5667a4d6737c9109f4223c1348b245)) +* **stdlib:** Premature free in toString ([#863](https://github.com/hazelgrove/grain/issues/863)) ([eec0f09](https://github.com/hazelgrove/grain/commit/eec0f092987cd6c9ddd7519b139596611dd84d7c)) +* **stdlib:** Provide correct types for BigInt operations ([#1297](https://github.com/hazelgrove/grain/issues/1297)) ([fdd2f1c](https://github.com/hazelgrove/grain/commit/fdd2f1c49b938a013d6ae199b5e662cb93d051e6)) +* **stdlib:** Remove fd_sync calls that are not used ([#846](https://github.com/hazelgrove/grain/issues/846)) ([3d8f70c](https://github.com/hazelgrove/grain/commit/3d8f70cc8255075a462d892fdfcfe30d48c599f0)) +* **stdlib:** Remove intermediate resizes in Buffer.autogrow ([#1125](https://github.com/hazelgrove/grain/issues/1125)) ([c1695d0](https://github.com/hazelgrove/grain/commit/c1695d066ccd40b3118c5c870353addeef67bfc1)) +* **stdlib:** Removed memory leak in Hash module ([#1045](https://github.com/hazelgrove/grain/issues/1045)) ([01a81c6](https://github.com/hazelgrove/grain/commit/01a81c6a2573cca94b2d57d0fc70693d39f810a1)) +* **stdlib:** Removed memory leaks in Buffer module ([#1047](https://github.com/hazelgrove/grain/issues/1047)) ([d33017b](https://github.com/hazelgrove/grain/commit/d33017b37e988d3facbca2e30e3de4fb8c7b5b8a)) +* **stdlib:** Respect callee-owned convention in sys/xx modules ([35cd957](https://github.com/hazelgrove/grain/commit/35cd957d9c04d84d9f12b54cd2882a6bbc67c175)) +* **stdlib:** Return proper values from getClockTime for Sys/Time ([#705](https://github.com/hazelgrove/grain/issues/705)) ([cab0ce7](https://github.com/hazelgrove/grain/commit/cab0ce7ef9cd5eca7ce8e9302915f1b3e7283143)) +* **stdlib:** String.writeUtf8CodePoint should write 3 bytes for code point 0xFFFF. ([#781](https://github.com/hazelgrove/grain/issues/781)) ([e8f399c](https://github.com/hazelgrove/grain/commit/e8f399c2388aa0a21531127a4ea7ea82c1e2ee7b)) +* **stdlib:** Support arrays of any type in Array rotate ([#1048](https://github.com/hazelgrove/grain/issues/1048)) ([3ceb1cf](https://github.com/hazelgrove/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Support empty arrays in Array rotate ([3ceb1cf](https://github.com/hazelgrove/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/hazelgrove/grain/issues/1301)) ([bad5897](https://github.com/hazelgrove/grain/commit/bad5897062444ec4d4ace805adcd382725b86125)) +* **stdlib:** Use random seed for hash module ([#854](https://github.com/hazelgrove/grain/issues/854)) ([a1a42d8](https://github.com/hazelgrove/grain/commit/a1a42d89893fe97e8557c34a8d8e1884735299bc)) +* **tests:** Fix mistaken `==` in WasmI32 tests ([0f42544](https://github.com/hazelgrove/grain/commit/0f42544597c628454bede14fd82542331211dab8)) +* Throwing an exception now traps immediately in all cases ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Use Is instead of Eq for match variant comparison ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Use proper return type for calls to external functions ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* word-size independent LEB input byte checking ([#567](https://github.com/hazelgrove/grain/issues/567)) ([4079824](https://github.com/hazelgrove/grain/commit/407982444aea158dccfd226d64cb94b3b60ba938)) +* Workaround for Windows drive letters with jsoo & pkg ([#636](https://github.com/hazelgrove/grain/issues/636)) ([d205cde](https://github.com/hazelgrove/grain/commit/d205cde76c97d9b830653c48004b97ec9dc25840)) + + +### Reverts + +* "chore!: rename Queue/Stack lib methods ([#625](https://github.com/hazelgrove/grain/issues/625))" ([#632](https://github.com/hazelgrove/grain/issues/632)) ([c9af90e](https://github.com/hazelgrove/grain/commit/c9af90e77e5c5bb9649b8072b9cdff16ae2d1e60)) + + +### Miscellaneous Chores + +* **cli:** Remove `-f` CLI option ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/hazelgrove/grain/issues/1275)) ([df55898](https://github.com/hazelgrove/grain/commit/df5589882d12ed35ba448de44e06f434bcf59b07)) +* **cli:** Simplify version output ([#1291](https://github.com/hazelgrove/grain/issues/1291)) ([97f99f4](https://github.com/hazelgrove/grain/commit/97f99f4a53c9434175d8bd8bac3c08cdd4257c77)) +* **compiler:** Add interface for compile module to hide resume ([d8ff903](https://github.com/hazelgrove/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Avoid building JS bundles by default ([#739](https://github.com/hazelgrove/grain/issues/739)) ([2925fb8](https://github.com/hazelgrove/grain/commit/2925fb8149cb09659e0267a581f0390b73b0f119)) +* **compiler:** Disallow end-of-line before `=>` ([#1178](https://github.com/hazelgrove/grain/issues/1178)) ([8261e73](https://github.com/hazelgrove/grain/commit/8261e733c9345c690ffc107616512be4eb4c469e)) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged ([#1268](https://github.com/hazelgrove/grain/issues/1268)) ([1590a37](https://github.com/hazelgrove/grain/commit/1590a37ca39e39ee40e0f27986fe8195458c3cb9)) +* **compiler:** Remove --principal-types and --recursive-types compiler flags ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **compiler:** Remove `--lsp` flag from grainc executable ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/hazelgrove/grain/issues/1068)) ([3ae8eaa](https://github.com/hazelgrove/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Rename --cdebug to --verbose ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **compiler:** Rename `grainRuntime` to `_grainEnv` ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Drop node 14 support ([#1092](https://github.com/hazelgrove/grain/issues/1092)) ([ef4358f](https://github.com/hazelgrove/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Introduce `_gmain` for old behavior of `_start` ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` ([#755](https://github.com/hazelgrove/grain/issues/755)) ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Rename `registerBasePrinter` to `dangerouslyRegisterBasePrinter` in runtime/exception ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Rename JS "runtime" to "js-runner"/"runner" throughout project ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* rename Queue/Stack lib methods ([#625](https://github.com/hazelgrove/grain/issues/625)) ([8117592](https://github.com/hazelgrove/grain/commit/8117592dbaa09b4443003f234b6a2dcadb235a8b)) +* **stdlib:** Add type aliases to regex lib ([#1036](https://github.com/hazelgrove/grain/issues/1036)) ([a926ea5](https://github.com/hazelgrove/grain/commit/a926ea5cafa18e46487a585abbdf5460b15b4f48)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/hazelgrove/grain/issues/1300)) ([9101615](https://github.com/hazelgrove/grain/commit/9101615688f20310ae32573f93f36cfcf5c69be1)) +* **stdlib:** Remove deprecated functions ([#812](https://github.com/hazelgrove/grain/issues/812)) ([7b74208](https://github.com/hazelgrove/grain/commit/7b7420860b588862e1947c6fc9860b5bbaf1ff75)) +* **stdlib:** Replace JS entrypoint with locator file ([#586](https://github.com/hazelgrove/grain/issues/586)) ([a9ec7e2](https://github.com/hazelgrove/grain/commit/a9ec7e237f22fe4eb507919972f4c41aa5eed55b)) +* Streamline runtime dependencies & entrypoints ([#585](https://github.com/hazelgrove/grain/issues/585)) ([bbdd38d](https://github.com/hazelgrove/grain/commit/bbdd38d5f4e5958aa10d602ba6b57a588024b050)) +* Switch from yarn to npm ([#1226](https://github.com/hazelgrove/grain/issues/1226)) ([5ea9274](https://github.com/hazelgrove/grain/commit/5ea92743a05fffb4298deda64100a3d7fc2259cb)) +* Tail calls must be enabled explicitly via `--experimental-wasm-tail-call` ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) + ### [0.5.2](https://github.com/grain-lang/grain/compare/grain-v0.5.1...grain-v0.5.2) (2022-06-29) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 28c21e4d..c798adf2 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,5 +1,87 @@ # Changelog +## [0.6.0](https://github.com/hazelgrove/grain/compare/cli-v0.5.2...cli-v0.6.0) (2022-07-03) + + +### ⚠ BREAKING CHANGES + +* **compiler:** Remove `--lsp` flag from grainc executable +* **lsp:** Replaced one-off LSP command with persistent LSP server (#1131) +* **cli:** Simplify version output (#1291) +* **cli:** Show all global options within help for every command (#1285) +* **cli:** Remove graceful flag & behavior (#1275) +* **compiler:** Replace optimization levels with compilation profiles (#1270) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* Switch from yarn to npm (#1226) +* Drop node 14 support (#1092) +* **graindoc:** Add `--current-version` flag, required for since/history attributes (#1116) +* **compiler:** Add `--memory-base` flag (#1115) +* Rename JS "runtime" to "js-runner"/"runner" throughout project +* **compiler:** Rename `grainRuntime` to `_grainEnv` +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` (#755) +* **compiler:** Universal WebAssembly initial and maximum pages flags (#668) +* **cli:** Split -g into --debug and --wat (#620) +* **cli:** Remove `-f` CLI option +* **compiler:** Remove --principal-types and --recursive-types compiler flags +* **compiler:** Rename --cdebug to --verbose +* **cli:** Pass compiler flags from the CLI to grainc directly (#613) + +### Features + +* Add format command to the Grain CLI ([#829](https://github.com/hazelgrove/grain/issues/829)) ([9334b71](https://github.com/hazelgrove/grain/commit/9334b71c8282a143d44c5c8c731bc057281a772c)) +* Add GrainDoc for markdown generation using doc comments ([#574](https://github.com/hazelgrove/grain/issues/574)) ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **ci:** Link all versions during release ([#1290](https://github.com/hazelgrove/grain/issues/1290)) ([ceb8dac](https://github.com/hazelgrove/grain/commit/ceb8dac2e3d3bf7eb92f91daf29173a779a4aa7e)) +* **cli:** Add `grain doc` command ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **cli:** Pass compiler flags from the CLI to grainc directly ([#613](https://github.com/hazelgrove/grain/issues/613)) ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **cli:** Refactor forwardable options ([#908](https://github.com/hazelgrove/grain/issues/908)) ([9ecb49b](https://github.com/hazelgrove/grain/commit/9ecb49b7fc29ab8cb09baefe512471c07b9dbdc6)) +* **cli:** Split -g into --debug and --wat ([#620](https://github.com/hazelgrove/grain/issues/620)) ([79809bb](https://github.com/hazelgrove/grain/commit/79809bb12592bdcb52fcb8301e7d4b64f35276e8)) +* Compile grainc to JS & create binaries with pkg ([#570](https://github.com/hazelgrove/grain/issues/570)) ([f4919bd](https://github.com/hazelgrove/grain/commit/f4919bdbab7dddd433b3f53bf8a8536a7efd5b03)) +* **compiler:** Add --no-bulk-memory flag to polyfill bulk memory ops ([#819](https://github.com/hazelgrove/grain/issues/819)) ([7db4ea6](https://github.com/hazelgrove/grain/commit/7db4ea6578990c2f175c083ef378c47599d47fd1)) +* **compiler:** Add --wasi-polyfill flag for custom implementations ([#800](https://github.com/hazelgrove/grain/issues/800)) ([6879286](https://github.com/hazelgrove/grain/commit/68792867f31671e12d07067dbef2c4c1288d7eac)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/hazelgrove/grain/issues/1115)) ([0680826](https://github.com/hazelgrove/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add Comments module to Grain_diagnostics ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add Markdown module to Grain_utils ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add Range module to Grain_utils ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Allow disabling Binaryen optimizations ([#780](https://github.com/hazelgrove/grain/issues/780)) ([a6c929c](https://github.com/hazelgrove/grain/commit/a6c929c6265dd12379d31cfdc8f50bc83ddc6802)) +* **compiler:** Consolidate exe & js modes ([fc61950](https://github.com/hazelgrove/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/hazelgrove/grain/issues/1270)) ([1a27c12](https://github.com/hazelgrove/grain/commit/1a27c127e8f0318c21fec7ab358ee8e1ad2378e9)) +* **compiler:** Universal WebAssembly initial and maximum pages flags ([#668](https://github.com/hazelgrove/grain/issues/668)) ([ec9c0e2](https://github.com/hazelgrove/grain/commit/ec9c0e211cf0872f2ac2d52fffd848c74e7a8894)) +* **compiler:** Upgrade binaryen to 0.15.0 to support Mac M1 arch ([#1151](https://github.com/hazelgrove/grain/issues/1151)) ([fc61950](https://github.com/hazelgrove/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/hazelgrove/grain/issues/1116)) ([0f681ea](https://github.com/hazelgrove/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **grainfmt:** Add format in place or output to a new file ([#904](https://github.com/hazelgrove/grain/issues/904)) ([0d18935](https://github.com/hazelgrove/grain/commit/0d1893576bf3ad9e4d5c3aca5bfa963966b84b66)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/hazelgrove/grain/issues/1274)) ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **linker:** Add --use-start-section flag to use start section in output ([#844](https://github.com/hazelgrove/grain/issues/844)) ([c221834](https://github.com/hazelgrove/grain/commit/c221834f93b897c001d7530e6b4a354fd5c5d17b)) +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/hazelgrove/grain/issues/1131)) ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) + + +### Bug Fixes + +* **cli:** Correct typo in lsp catch block ([#618](https://github.com/hazelgrove/grain/issues/618)) ([b903ced](https://github.com/hazelgrove/grain/commit/b903ced32ad7a6a2055a73473921e791adfd6ae4)) +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Forward stdlib option to lsp and graindoc ([#916](https://github.com/hazelgrove/grain/issues/916)) ([07c5237](https://github.com/hazelgrove/grain/commit/07c5237795c9717cf925c6889e165f4eb8a04f8d)) +* **cli:** Manually bump CLI dependencies ([#871](https://github.com/hazelgrove/grain/issues/871)) ([1e4a7a1](https://github.com/hazelgrove/grain/commit/1e4a7a171c8dd41caf54e6218d59dffafef8f226)) +* **cli:** Only add --experimental-wasm-bigint flag on node 14 or 15 ([#899](https://github.com/hazelgrove/grain/issues/899)) ([1cc0c5c](https://github.com/hazelgrove/grain/commit/1cc0c5c03d38957c90f71e99a188c448923a481c)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/hazelgrove/grain/issues/1285)) ([1357e16](https://github.com/hazelgrove/grain/commit/1357e162f7e939db21468186d16e6d720b557a57)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) + + +### Miscellaneous Chores + +* **cli:** Remove `-f` CLI option ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/hazelgrove/grain/issues/1275)) ([df55898](https://github.com/hazelgrove/grain/commit/df5589882d12ed35ba448de44e06f434bcf59b07)) +* **cli:** Simplify version output ([#1291](https://github.com/hazelgrove/grain/issues/1291)) ([97f99f4](https://github.com/hazelgrove/grain/commit/97f99f4a53c9434175d8bd8bac3c08cdd4257c77)) +* **compiler:** Remove --principal-types and --recursive-types compiler flags ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **compiler:** Remove `--lsp` flag from grainc executable ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Rename --cdebug to --verbose ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **compiler:** Rename `grainRuntime` to `_grainEnv` ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Drop node 14 support ([#1092](https://github.com/hazelgrove/grain/issues/1092)) ([ef4358f](https://github.com/hazelgrove/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` ([#755](https://github.com/hazelgrove/grain/issues/755)) ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Rename JS "runtime" to "js-runner"/"runner" throughout project ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Switch from yarn to npm ([#1226](https://github.com/hazelgrove/grain/issues/1226)) ([5ea9274](https://github.com/hazelgrove/grain/commit/5ea92743a05fffb4298deda64100a3d7fc2259cb)) + ### [0.5.2](https://github.com/grain-lang/grain/compare/cli-v0.5.1...cli-v0.5.2) (2022-06-29) diff --git a/cli/package.json b/cli/package.json index d4052b4e..a6ad1cf4 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@grain/cli", - "version": "0.5.2", + "version": "0.6.0", "description": "A command line tool for the Grain language.", "main": "index.js", "engines": { @@ -37,8 +37,8 @@ }, "homepage": "https://github.com/grain-lang/grain#readme", "dependencies": { - "@grain/js-runner": "0.5.2", - "@grain/stdlib": "0.5.2", + "@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 6a68b3ad..9afde520 100644 --- a/compiler/CHANGELOG.md +++ b/compiler/CHANGELOG.md @@ -1,5 +1,366 @@ # Changelog +## [0.6.0](https://github.com/hazelgrove/grain/compare/compiler-v0.5.2...compiler-v0.6.0) (2022-07-03) + + +### ⚠ BREAKING CHANGES + +* **stdlib:** Use explicit exports for Pervasives (#1301) +* **stdlib:** Remove `sum` function from the List module (#1300) +* **compiler:** Remove `--lsp` flag from grainc executable +* **lsp:** Replaced one-off LSP command with persistent LSP server (#1131) +* **cli:** Show all global options within help for every command (#1285) +* **cli:** Remove graceful flag & behavior (#1275) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged (#1268) +* **compiler:** Replace optimization levels with compilation profiles (#1270) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* **compiler:** Arbitrary-Precision Integer Arithmetic (#1167) +* Switch from yarn to npm (#1226) +* Drop node 14 support (#1092) +* **compiler:** Selectively include functions in the global function table (#1183) +* **compiler:** Add interface for compile module to hide resume +* **compiler:** Disallow end-of-line before `=>` (#1178) +* **compiler:** Stack-allocated Chars (#1103) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` (#1136) +* **graindoc:** Add `--current-version` flag, required for since/history attributes (#1116) +* **compiler:** Remove decRefIgnoreZeros (#1068) +* **compiler:** Add `--memory-base` flag (#1115) +* **compiler:** Re-implement Grain parser (#1033) +* **compiler:** Add typed well-formedness pass which forbids usage of WasmXX values outside of `@disableGC` context (#772) +* **stdlib:** Convert sys functions to return Results instead of throwing errors (#792) +* **compiler:** Callee-owned values (#803) +* **compiler:** Remove user manual memory management calls when --no-gc supplied (#817) +* **compiler:** Refactor module resolution in order to properly resolve relative paths (#797) +* Rename JS "runtime" to "js-runner"/"runner" throughout project +* **compiler:** Rename `grainRuntime` to `_grainEnv` +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` (#755) +* **compiler:** Improve assert messages to contain location information (#737) +* **runtime:** Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly +* Adjust Number equality, thus that 5 == 5.0 (#726) +* **compiler:** Avoid building JS bundles by default (#739) +* **compiler:** Universal WebAssembly initial and maximum pages flags (#668) +* **cli:** Split -g into --debug and --wat (#620) +* rename Queue/Stack lib methods (#625) +* **cli:** Remove `-f` CLI option +* **compiler:** Remove --principal-types and --recursive-types compiler flags +* **compiler:** Rename --cdebug to --verbose +* **cli:** Pass compiler flags from the CLI to grainc directly (#613) +* Correct type signature for `_start` +* Introduce `_gmain` for old behavior of `_start` +* Tail calls must be enabled explicitly via `--experimental-wasm-tail-call` +* Static linking of Grain modules (#584) +* Rename `registerBasePrinter` to `dangerouslyRegisterBasePrinter` in runtime/exception +* Use Grain exceptions instead of JS exceptions (#565) +* Update assignment semantics (#560) + +### Features + +* Add ability to `throw` exceptions ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add ability to register custom exception printers ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add Exception stdlib with Exception.registerPrinter ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add format command to the Grain CLI ([#829](https://github.com/hazelgrove/grain/issues/829)) ([9334b71](https://github.com/hazelgrove/grain/commit/9334b71c8282a143d44c5c8c731bc057281a772c)) +* Add GrainDoc for markdown generation using doc comments ([#574](https://github.com/hazelgrove/grain/issues/574)) ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **cli:** Add `grain doc` command ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **cli:** Pass compiler flags from the CLI to grainc directly ([#613](https://github.com/hazelgrove/grain/issues/613)) ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **cli:** Split -g into --debug and --wat ([#620](https://github.com/hazelgrove/grain/issues/620)) ([79809bb](https://github.com/hazelgrove/grain/commit/79809bb12592bdcb52fcb8301e7d4b64f35276e8)) +* Compile grainc to JS & create binaries with pkg ([#570](https://github.com/hazelgrove/grain/issues/570)) ([f4919bd](https://github.com/hazelgrove/grain/commit/f4919bdbab7dddd433b3f53bf8a8536a7efd5b03)) +* **compiler:** Add --no-bulk-memory flag to polyfill bulk memory ops ([#819](https://github.com/hazelgrove/grain/issues/819)) ([7db4ea6](https://github.com/hazelgrove/grain/commit/7db4ea6578990c2f175c083ef378c47599d47fd1)) +* **compiler:** Add --wasi-polyfill flag for custom implementations ([#800](https://github.com/hazelgrove/grain/issues/800)) ([6879286](https://github.com/hazelgrove/grain/commit/68792867f31671e12d07067dbef2c4c1288d7eac)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/hazelgrove/grain/issues/1115)) ([0680826](https://github.com/hazelgrove/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add `[@unsafe](https://github.com/unsafe)` attribute for low-level code ([#1074](https://github.com/hazelgrove/grain/issues/1074)) ([212faca](https://github.com/hazelgrove/grain/commit/212faca9a8363002cfc0cb4e3ea293180cbe5b1c)) +* **compiler:** add better hover to LSP ([#667](https://github.com/hazelgrove/grain/issues/667)) ([7c7e9d7](https://github.com/hazelgrove/grain/commit/7c7e9d7a568cc350f6323a8941858c04bb46cac2)) +* **compiler:** Add Comments module to Grain_diagnostics ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add Markdown module to Grain_utils ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add Range module to Grain_utils ([558d5e2](https://github.com/hazelgrove/grain/commit/558d5e2a7bccb5ca5b32b9da036b673e381bfc60)) +* **compiler:** Add typed well-formedness pass which forbids usage of WasmXX values outside of `[@disable](https://github.com/disable)GC` context ([#772](https://github.com/hazelgrove/grain/issues/772)) ([42fbad6](https://github.com/hazelgrove/grain/commit/42fbad632f1f7137285dbf4dbe609ddfb91c956e)) +* **compiler:** Add warning for calls to IntXX.fromNumber and FloatXX.fromNumber with literal integers/floats ([#1218](https://github.com/hazelgrove/grain/issues/1218)) ([2fb86e5](https://github.com/hazelgrove/grain/commit/2fb86e538a9d38241d6c149cec1a290817795b4b)) +* **compiler:** Allow [@external](https://github.com/external)Name attribute for foreign names ([#1060](https://github.com/hazelgrove/grain/issues/1060)) ([f4c1311](https://github.com/hazelgrove/grain/commit/f4c13115ef2eb589f035c31370e56a12bdc2e10c)) +* **compiler:** Allow a newline character before a match guard ([#1063](https://github.com/hazelgrove/grain/issues/1063)) ([bf41a9c](https://github.com/hazelgrove/grain/commit/bf41a9cf585c63eb2482c7d94d9c615428bc8435)) +* **compiler:** Allow compilation of empty programs ([#1336](https://github.com/hazelgrove/grain/issues/1336)) ([32df14b](https://github.com/hazelgrove/grain/commit/32df14b33325c39fd98c452fc2687b788ec35264)) +* **compiler:** Allow disabling Binaryen optimizations ([#780](https://github.com/hazelgrove/grain/issues/780)) ([a6c929c](https://github.com/hazelgrove/grain/commit/a6c929c6265dd12379d31cfdc8f50bc83ddc6802)) +* **compiler:** Allow function re-exports to use regular call instruction ([#1176](https://github.com/hazelgrove/grain/issues/1176)) ([afce3aa](https://github.com/hazelgrove/grain/commit/afce3aaa5382cde54b1e8fd9be3d2ee86daedbbb)) +* **compiler:** Allow newline in or-patterns ([#1323](https://github.com/hazelgrove/grain/issues/1323)) ([8fe8247](https://github.com/hazelgrove/grain/commit/8fe8247ec6c08e04575b42281716eb34c46af97f)) +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/hazelgrove/grain/issues/1167)) ([6f34de2](https://github.com/hazelgrove/grain/commit/6f34de214b28358ea1df553685fa3a19336ddba9)) +* **compiler:** Call known functions across module boundaries ([#1175](https://github.com/hazelgrove/grain/issues/1175)) ([b2d7440](https://github.com/hazelgrove/grain/commit/b2d744034ec7e0601554531c910e9d0f5451d464)) +* **compiler:** Call known functions directly ([#777](https://github.com/hazelgrove/grain/issues/777)) ([ad282be](https://github.com/hazelgrove/grain/commit/ad282be2671a84d5383f4e221059dff527c37049)) +* **compiler:** Callee-owned values ([#803](https://github.com/hazelgrove/grain/issues/803)) ([c242e89](https://github.com/hazelgrove/grain/commit/c242e89767788e590f053c3d3ddfa7208387c247)) +* **compiler:** Cleaner wasm output for low-level wasm types ([#1158](https://github.com/hazelgrove/grain/issues/1158)) ([88060dd](https://github.com/hazelgrove/grain/commit/88060ddb8119e2998d91f4d6770a1cfd101936cf)) +* **compiler:** Consolidate exe & js modes ([fc61950](https://github.com/hazelgrove/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Convert `runtime/dataStructures.gr` to primitives ([#1145](https://github.com/hazelgrove/grain/issues/1145)) ([2d43b28](https://github.com/hazelgrove/grain/commit/2d43b286141df75f6b92300e48d2bc4804014872)) +* **compiler:** Don't close over global values ([#1134](https://github.com/hazelgrove/grain/issues/1134)) ([e8caec6](https://github.com/hazelgrove/grain/commit/e8caec6c2a5892e955c8827b18d8d436bebe6073)) +* **compiler:** Emit a warning when using Pervasives.(!=) with unsafe Wasm types ([#758](https://github.com/hazelgrove/grain/issues/758)) ([1041e38](https://github.com/hazelgrove/grain/commit/1041e38279677e57ef83b7172fc8db95d3fc9598)) +* **compiler:** Emit a warning when using Pervasives.(==) with unsafe Wasm types ([#742](https://github.com/hazelgrove/grain/issues/742)) ([8b00055](https://github.com/hazelgrove/grain/commit/8b00055d7d91b3b8f5d8757a2aed14baa37e4bd6)) +* **compiler:** Improve assert messages to contain location information ([#737](https://github.com/hazelgrove/grain/issues/737)) ([26f645b](https://github.com/hazelgrove/grain/commit/26f645ba5f3be20d5db3a0933165bb6346d06b9d)) +* **compiler:** Inline all primitives ([#1076](https://github.com/hazelgrove/grain/issues/1076)) ([c227130](https://github.com/hazelgrove/grain/commit/c2271307b7220d54dc1c252dfc4ee5532f68dd29)) +* **compiler:** Inline not `(!)` operator ([#937](https://github.com/hazelgrove/grain/issues/937)) ([3f5e9a9](https://github.com/hazelgrove/grain/commit/3f5e9a962ec8565f4fb79a1ee36d7b492da5cf11)) +* **compiler:** List exports in wasm_utils ([#845](https://github.com/hazelgrove/grain/issues/845)) ([4fea67b](https://github.com/hazelgrove/grain/commit/4fea67bc31192e694a4e108ca2917fdae0b8da04)) +* **compiler:** Name globals in wasm output ([#1184](https://github.com/hazelgrove/grain/issues/1184)) ([51170e7](https://github.com/hazelgrove/grain/commit/51170e7c892680f9c730b7f93cf744ffd6b7c15a)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/hazelgrove/grain/issues/1033)) ([9dc3c96](https://github.com/hazelgrove/grain/commit/9dc3c96f87a0b2affe9db36e1b03360d198f79f1)) +* **compiler:** Reduce closure sizes by utilizing `$self` argument when possible ([#1152](https://github.com/hazelgrove/grain/issues/1152)) ([ba6a84c](https://github.com/hazelgrove/grain/commit/ba6a84cea191cf3c7932287c29b198001d490146)) +* **compiler:** Refactor exports ([#1244](https://github.com/hazelgrove/grain/issues/1244)) ([4637667](https://github.com/hazelgrove/grain/commit/4637667cd669c0988cd01c2957534c6a35a3146c)) +* **compiler:** Remove user manual memory management calls when --no-gc supplied ([#817](https://github.com/hazelgrove/grain/issues/817)) ([92efd40](https://github.com/hazelgrove/grain/commit/92efd40264345ddee15acc84899bf3da5bc52b55)) +* **compiler:** Replace optimization levels with compilation profiles ([#1270](https://github.com/hazelgrove/grain/issues/1270)) ([1a27c12](https://github.com/hazelgrove/grain/commit/1a27c127e8f0318c21fec7ab358ee8e1ad2378e9)) +* **compiler:** Selectively include functions in the global function table ([#1183](https://github.com/hazelgrove/grain/issues/1183)) ([67575f7](https://github.com/hazelgrove/grain/commit/67575f712557bc36531f6e40044d1bbfff2454ff)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/hazelgrove/grain/issues/1103)) ([095385e](https://github.com/hazelgrove/grain/commit/095385e7c67bbc7a417a21acaf6f1c498c75ce63)) +* **compiler:** Support pattern aliases ([#1174](https://github.com/hazelgrove/grain/issues/1174)) ([9ed093b](https://github.com/hazelgrove/grain/commit/9ed093be353895bdde8282ee1681089d5fac68ab)) +* **compiler:** Support pattern matching "or" patterns ([#1173](https://github.com/hazelgrove/grain/issues/1173)) ([0fb29c4](https://github.com/hazelgrove/grain/commit/0fb29c4016e1b24b9e3b3b640cc9914b921ec376)) +* **compiler:** Support record field updating assignment ([#1320](https://github.com/hazelgrove/grain/issues/1320)) ([cc5519c](https://github.com/hazelgrove/grain/commit/cc5519ce36418623b05d297d577c2325ad9cbc7a)) +* **compiler:** Type aliases ([#995](https://github.com/hazelgrove/grain/issues/995)) ([bc648ce](https://github.com/hazelgrove/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **compiler:** Universal WebAssembly initial and maximum pages flags ([#668](https://github.com/hazelgrove/grain/issues/668)) ([ec9c0e2](https://github.com/hazelgrove/grain/commit/ec9c0e211cf0872f2ac2d52fffd848c74e7a8894)) +* **compiler:** Upgrade binaryen to 0.15.0 to support Mac M1 arch ([#1151](https://github.com/hazelgrove/grain/issues/1151)) ([fc61950](https://github.com/hazelgrove/grain/commit/fc6195013457dd29f78951322bfaf2ae27c1bdd2)) +* **compiler:** Upgrade to binaryen.ml v0.10.0 ([#623](https://github.com/hazelgrove/grain/issues/623)) ([940f0f1](https://github.com/hazelgrove/grain/commit/940f0f17bc75e6aa861798a765215db0955bbe72)) +* **compiler:** Use symbol for equals sign ([#1128](https://github.com/hazelgrove/grain/issues/1128)) ([3d7fc57](https://github.com/hazelgrove/grain/commit/3d7fc5742ad3016d60e14112fdd68de02fc147f1)) +* Enable Binaryen optimizations ([#556](https://github.com/hazelgrove/grain/issues/556)) ([50ebf74](https://github.com/hazelgrove/grain/commit/50ebf74f98dedad89399424841de1427a8ac10ef)) +* Grain implementation of Char and String libraries ([#559](https://github.com/hazelgrove/grain/issues/559)) ([7424cc5](https://github.com/hazelgrove/grain/commit/7424cc5befe5c3416c26c5e943cc064329eac025)) +* Grain implementation of hashing ([#557](https://github.com/hazelgrove/grain/issues/557)) ([40723fc](https://github.com/hazelgrove/grain/commit/40723fca645f147b98eea83ffc11bd53359ce29a)) +* Grain wasi bindings ([#562](https://github.com/hazelgrove/grain/issues/562)) ([323006b](https://github.com/hazelgrove/grain/commit/323006b7a3e12194b252bcbad2ef8a3eb8e1f043)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/hazelgrove/grain/issues/1116)) ([0f681ea](https://github.com/hazelgrove/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **graindoc:** Add support for deprecated attribute ([#751](https://github.com/hazelgrove/grain/issues/751)) ([8540c73](https://github.com/hazelgrove/grain/commit/8540c73f26b9ed4cdd1a68ea671ad4b54d5ca0b2)) +* **graindoc:** Add support for extra information in module docblock ([#809](https://github.com/hazelgrove/grain/issues/809)) ([f28d234](https://github.com/hazelgrove/grain/commit/f28d2340d3c93be267ac6c2b238679c2259f4a7e)) +* **graindoc:** Allow directory input & output ([#1263](https://github.com/hazelgrove/grain/issues/1263)) ([d4cb8ab](https://github.com/hazelgrove/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **graindoc:** Support `[@since](https://github.com/since)` and `[@history](https://github.com/history)` attributes ([#785](https://github.com/hazelgrove/grain/issues/785)) ([9386f46](https://github.com/hazelgrove/grain/commit/9386f46304ad958c29bb099570f06193911f7131)) +* **grainfmt:** Add format in place or output to a new file ([#904](https://github.com/hazelgrove/grain/issues/904)) ([0d18935](https://github.com/hazelgrove/grain/commit/0d1893576bf3ad9e4d5c3aca5bfa963966b84b66)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/hazelgrove/grain/issues/1274)) ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Drastically improve performance ([#1042](https://github.com/hazelgrove/grain/issues/1042)) ([9bc7a55](https://github.com/hazelgrove/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Implement Bytes type and Bytes stdlib ([#633](https://github.com/hazelgrove/grain/issues/633)) ([4b81898](https://github.com/hazelgrove/grain/commit/4b81898d4cf17b34dc35e975b228b08b53d81a2a)) +* Implement Grain array methods in Grain instead of the compiler ([#660](https://github.com/hazelgrove/grain/issues/660)) ([b1397fa](https://github.com/hazelgrove/grain/commit/b1397fae4c49a6b6789cbacc4f14ec6ee484c483)) +* Implement support for printing in Grain ([#561](https://github.com/hazelgrove/grain/issues/561)) ([bfe471c](https://github.com/hazelgrove/grain/commit/bfe471c668ee5838bde8a307bfc0f5d650a9b594)) +* Keep track of warnings and report them in LSP mode ([#659](https://github.com/hazelgrove/grain/issues/659)) ([5144e1b](https://github.com/hazelgrove/grain/commit/5144e1b2e25c95c195a9ed29676d3bf4f01a81d2)) +* **linker:** Add --use-start-section flag to use start section in output ([#844](https://github.com/hazelgrove/grain/issues/844)) ([c221834](https://github.com/hazelgrove/grain/commit/c221834f93b897c001d7530e6b4a354fd5c5d17b)) +* **linker:** Add better error for failed wasi polyfill import ([3d8f70c](https://github.com/hazelgrove/grain/commit/3d8f70cc8255075a462d892fdfcfe30d48c599f0)) +* **lsp:** Replaced one-off LSP command with persistent LSP server ([#1131](https://github.com/hazelgrove/grain/issues/1131)) ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* Normalized wasm exports for linked modules ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Rename Queue/Stack functions & deprecate old identifiers ([#635](https://github.com/hazelgrove/grain/issues/635)) ([3a8da65](https://github.com/hazelgrove/grain/commit/3a8da654f2f3a032e3413a44f543b79dc3ee23e1)) +* Static linking of Grain modules ([#584](https://github.com/hazelgrove/grain/issues/584)) ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* **stdlib:** add `Queue.size` and `Stack.size` ([#647](https://github.com/hazelgrove/grain/issues/647)) ([82ed533](https://github.com/hazelgrove/grain/commit/82ed5336c3c5ab0679f5a2db2172084ec08ce411)) +* **stdlib:** Add Array.reverse() function ([#698](https://github.com/hazelgrove/grain/issues/698)) ([538e987](https://github.com/hazelgrove/grain/commit/538e987d9828b0851d0cc14a26c8b5815f012f5b)) +* **stdlib:** Add Array.slice function ([#727](https://github.com/hazelgrove/grain/issues/727)) ([66319ca](https://github.com/hazelgrove/grain/commit/66319ca8f3bbeb80e18525d1c15e2b84f0abd0c1)) +* **stdlib:** Add Array.unzip function ([#699](https://github.com/hazelgrove/grain/issues/699)) ([cb9b49e](https://github.com/hazelgrove/grain/commit/cb9b49e5d3110a6c23c72065ee306a5ba7ee27af)) +* **stdlib:** Add buffer module ([627f181](https://github.com/hazelgrove/grain/commit/627f181e38a843d86a52f55b0d0a4fc02b14fc46)) +* **stdlib:** Add Conv.wasmI32ToNumber function ([#978](https://github.com/hazelgrove/grain/issues/978)) ([c93ade8](https://github.com/hazelgrove/grain/commit/c93ade873b51acca556e19a7483a5f29b4b6caa9)) +* **stdlib:** Add cycle function to Array module ([#993](https://github.com/hazelgrove/grain/issues/993)) ([c595622](https://github.com/hazelgrove/grain/commit/c595622b28366655dfd5447270e8f9fc3f988a67)) +* **stdlib:** Add Float32/Float64 constants for infinity/nan ([#720](https://github.com/hazelgrove/grain/issues/720)) ([4ff3b9f](https://github.com/hazelgrove/grain/commit/4ff3b9f99369e9b69a0b29299c89050180bbf8ec)) +* **stdlib:** Add List.join and Array.join functions ([#722](https://github.com/hazelgrove/grain/issues/722)) ([01a64b6](https://github.com/hazelgrove/grain/commit/01a64b64f2c6e5233f2e1492c75c7531d19f637b)) +* **stdlib:** Add module for pseudo-random number generation ([#921](https://github.com/hazelgrove/grain/issues/921)) ([db1fa4e](https://github.com/hazelgrove/grain/commit/db1fa4e491d35bb582beaba12157884647384a77)) +* **stdlib:** Add number constants to number libraries ([#1331](https://github.com/hazelgrove/grain/issues/1331)) ([f640ec2](https://github.com/hazelgrove/grain/commit/f640ec20aa507c83c9cde290b911d0adcb4e8254)) +* **stdlib:** add Range.map ([#674](https://github.com/hazelgrove/grain/issues/674)) ([5c33861](https://github.com/hazelgrove/grain/commit/5c33861d933e6ee0049dadd54e612c2c25d623ca)), closes [#616](https://github.com/hazelgrove/grain/issues/616) +* **stdlib:** Add Result.expect & Result.unwrap functions ([#808](https://github.com/hazelgrove/grain/issues/808)) ([c390e61](https://github.com/hazelgrove/grain/commit/c390e610e3c05eadc42aca57804a4ddb48cccff2)) +* **stdlib:** Add reverse function to String module ([#1027](https://github.com/hazelgrove/grain/issues/1027)) ([df761db](https://github.com/hazelgrove/grain/commit/df761db55b3e14e31190090ae008ce5047135c09)) +* **stdlib:** Add rotate function in Array module ([#838](https://github.com/hazelgrove/grain/issues/838)) ([98fc577](https://github.com/hazelgrove/grain/commit/98fc577ee754317cd2421bfaa8e3c1e049488949)) +* **stdlib:** Add sign function to Number module ([#1079](https://github.com/hazelgrove/grain/issues/1079)) ([b6483d5](https://github.com/hazelgrove/grain/commit/b6483d5046cd1b6b89a717a925594d3b20b05837)) +* **stdlib:** Add sort function to Array module ([#1012](https://github.com/hazelgrove/grain/issues/1012)) ([9091930](https://github.com/hazelgrove/grain/commit/9091930344224925bb7b2e1ef6f879c79a5c2f62)) +* **stdlib:** Add string trim functions to String module ([#951](https://github.com/hazelgrove/grain/issues/951)) ([e55de8f](https://github.com/hazelgrove/grain/commit/e55de8fc0335b45252da9741a80b46a702cdb5b6)) +* **stdlib:** Add String.chatAt function ([#721](https://github.com/hazelgrove/grain/issues/721)) ([94ffbbe](https://github.com/hazelgrove/grain/commit/94ffbbe0f84820d282784d62e295796ab865c837)) +* **stdlib:** Add String.encode and String.decode functions to standard library ([#683](https://github.com/hazelgrove/grain/issues/683)) ([5635a36](https://github.com/hazelgrove/grain/commit/5635a3682e88292e3623157b34323d968f6946c3)) +* **stdlib:** Add unsigned versions of Int32/Int64 comparison operations ([#831](https://github.com/hazelgrove/grain/issues/831)) ([5f20868](https://github.com/hazelgrove/grain/commit/5f20868e7b6e3f52d62c8531d99d1130ca84961e)) +* **stdlib:** Convert sys functions to return Results instead of throwing errors ([#792](https://github.com/hazelgrove/grain/issues/792)) ([35cd957](https://github.com/hazelgrove/grain/commit/35cd957d9c04d84d9f12b54cd2882a6bbc67c175)) +* **stdlib:** forEachCodePoint and forEachCodePointi ([#766](https://github.com/hazelgrove/grain/issues/766)) ([b95cfb7](https://github.com/hazelgrove/grain/commit/b95cfb77fd2f248f611f2b6a55d58d67ee800859)) +* **stdlib:** Implement initial Number library ([#687](https://github.com/hazelgrove/grain/issues/687)) ([4a71209](https://github.com/hazelgrove/grain/commit/4a7120964a31602f763b31064e112cfeaa4d1d38)) +* **stdlib:** Implement List.sort via mergesort ([#1014](https://github.com/hazelgrove/grain/issues/1014)) ([a076e20](https://github.com/hazelgrove/grain/commit/a076e200013114ccf16c2e6cbe814af1ec09c1ce)) +* **stdlib:** Implement Number.sin and Number.cos ([#1343](https://github.com/hazelgrove/grain/issues/1343)) ([9357126](https://github.com/hazelgrove/grain/commit/93571267b7df53e1cb9f61eaebf8748885e7392c)) +* **stdlib:** Int32/64 clz, ctz, popcnt, rotl, rotr, eq, ne, eqz ([#807](https://github.com/hazelgrove/grain/issues/807)) ([ffddc51](https://github.com/hazelgrove/grain/commit/ffddc512d2c2879b76486f9d7a91621cebb064bd)) +* **stdlib:** Number utilities isNaN, isFinite, and isInfinite ([#729](https://github.com/hazelgrove/grain/issues/729)) ([b907da7](https://github.com/hazelgrove/grain/commit/b907da7a9e2e7fdbf5d9f376533fbec21458017e)) +* **stdlib:** Number.parseInt ([#1051](https://github.com/hazelgrove/grain/issues/1051)) ([abafb58](https://github.com/hazelgrove/grain/commit/abafb587e54219a32ed77ba09863bb2d6a80bac8)) +* **stdlib:** Provide Bytes hash implementation ([#853](https://github.com/hazelgrove/grain/issues/853)) ([ec7d902](https://github.com/hazelgrove/grain/commit/ec7d902e900e57a0e3e6fb2a9c16e8c578a1ba47)) +* **stdlib:** Regular Expressions ([#680](https://github.com/hazelgrove/grain/issues/680)) ([9601e16](https://github.com/hazelgrove/grain/commit/9601e1655f1ffc76b700efef317366457c5614ef)) +* Support \b, \f, \t, and \v escapes ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* Support for more WebAssembly runtimes, including Wasmtime and Wasmer ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Support mutually recursive data definitions ([#725](https://github.com/hazelgrove/grain/issues/725)) ([4474f88](https://github.com/hazelgrove/grain/commit/4474f887514caa35132724ad2c658cc5328807c5)) +* Update assignment semantics ([#560](https://github.com/hazelgrove/grain/issues/560)) ([03a3217](https://github.com/hazelgrove/grain/commit/03a3217fb7bc755407917991e0ebac3a66ea071e)) +* Use Grain exceptions instead of JS exceptions ([#565](https://github.com/hazelgrove/grain/issues/565)) ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) + + +### Bug Fixes + +* `export *` with exceptions ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Adjust Number equality, thus that 5 == 5.0 ([#726](https://github.com/hazelgrove/grain/issues/726)) ([04aef16](https://github.com/hazelgrove/grain/commit/04aef163b862588e5d7f699fc33e0810625ab22a)) +* Always use correct wasm type for throw ([#652](https://github.com/hazelgrove/grain/issues/652)) ([dcec4e0](https://github.com/hazelgrove/grain/commit/dcec4e0a9b620248b19b311d952a601e0967a92b)) +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **cli:** Rework JSOO hacks to ensure stdin always gets data ([#614](https://github.com/hazelgrove/grain/issues/614)) ([b064119](https://github.com/hazelgrove/grain/commit/b064119fe2a10dca68e30f4d66db455d37991ead)) +* **cli:** Show all global options within help for every command ([#1285](https://github.com/hazelgrove/grain/issues/1285)) ([1357e16](https://github.com/hazelgrove/grain/commit/1357e162f7e939db21468186d16e6d720b557a57)) +* **compiler:** Account for config that is not digestable ([#1098](https://github.com/hazelgrove/grain/issues/1098)) ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **compiler:** Allow modules to re-export imported types containing generics ([#1019](https://github.com/hazelgrove/grain/issues/1019)) ([003cb1e](https://github.com/hazelgrove/grain/commit/003cb1e10ca51c3f16d2155581eb8dccdde3ce5c)) +* **compiler:** Allow trailing commas in imports and destructuring ([#890](https://github.com/hazelgrove/grain/issues/890)) ([f5c24c9](https://github.com/hazelgrove/grain/commit/f5c24c946b3356090b9aca6123bc14a19b4e06fb)) +* **compiler:** Always get little endian i64 from bytes ([#587](https://github.com/hazelgrove/grain/issues/587)) ([1b9853a](https://github.com/hazelgrove/grain/commit/1b9853ad3ebc91c1022efbf484532254c67c845e)) +* **compiler:** Apply correct allocation type to numbers ([#1140](https://github.com/hazelgrove/grain/issues/1140)) ([b9e9d59](https://github.com/hazelgrove/grain/commit/b9e9d59143f529f7c0ae100b048988e6ba0e8d54)) +* **compiler:** Apply optimization flag at link stage ([#1099](https://github.com/hazelgrove/grain/issues/1099)) ([49dac79](https://github.com/hazelgrove/grain/commit/49dac797aa4833cc141f7c58d18d80d7cbc6b1c7)) +* **compiler:** Avoid module aliases of themselves ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Consider invalid CMIs as out of date and recompile ([#1061](https://github.com/hazelgrove/grain/issues/1061)) ([80da3a9](https://github.com/hazelgrove/grain/commit/80da3a9667020e4f5f855a0b9da8286508a07275)) +* **compiler:** Correct error message for unbound type variables ([#1327](https://github.com/hazelgrove/grain/issues/1327)) ([762362a](https://github.com/hazelgrove/grain/commit/762362a06e1676540cd33df8200ea2a6b7006a5e)) +* **compiler:** Correct pretty-printing of record types ([#750](https://github.com/hazelgrove/grain/issues/750)) ([3c0f942](https://github.com/hazelgrove/grain/commit/3c0f942395aa2417b50bba68e5009510c5a49a36)) +* **compiler:** Correct reporting of locations for CRLF files ([#658](https://github.com/hazelgrove/grain/issues/658)) ([457a011](https://github.com/hazelgrove/grain/commit/457a01183e9234a2190f9e50668305cfcefd8d87)) +* **compiler:** Correctly supply locations for types & variants ([9bc7a55](https://github.com/hazelgrove/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **compiler:** Do not add transitive dependencies as imports during CRC consistency check ([#830](https://github.com/hazelgrove/grain/issues/830)) ([a1caacc](https://github.com/hazelgrove/grain/commit/a1caacc523a2af52f5f0f2655211b9257b30af73)) +* **compiler:** Do not inline aliased mutables ([#909](https://github.com/hazelgrove/grain/issues/909)) ([a50430a](https://github.com/hazelgrove/grain/commit/a50430a2cff5f50dd666f1ec14bd485bfda77e86)) +* **compiler:** Don't over-optimize mutable imports ([#967](https://github.com/hazelgrove/grain/issues/967)) ([c3066f6](https://github.com/hazelgrove/grain/commit/c3066f6e32bbbe3bd51b9a7b498567b8deb8d9ba)) +* **compiler:** Don't report comment locations when disabled ([#861](https://github.com/hazelgrove/grain/issues/861)) ([c6821dd](https://github.com/hazelgrove/grain/commit/c6821ddb63cf42a04c7ee86bc7b248765f605d1d)) +* **compiler:** Don't warn on exhaustive boolean matches ([#913](https://github.com/hazelgrove/grain/issues/913)) ([4189745](https://github.com/hazelgrove/grain/commit/4189745d09c3fc6971f95dc1c8428dc73761aed3)) +* **compiler:** Ensure cwd directory is normalized on Windows ([#952](https://github.com/hazelgrove/grain/issues/952)) ([a3ab9c3](https://github.com/hazelgrove/grain/commit/a3ab9c3cd2359866a61a1dd4b63f40b0f964e2a4)) +* **compiler:** Ensure main module is included in linker dependency graph ([#996](https://github.com/hazelgrove/grain/issues/996)) ([d5c6c04](https://github.com/hazelgrove/grain/commit/d5c6c048d4239ef07fb6ac0a79774d85933cccf9)) +* **compiler:** Ensure TExpApp is always expansive in Grain ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Export functions with aliased names as wasm functions ([#920](https://github.com/hazelgrove/grain/issues/920)) ([afba142](https://github.com/hazelgrove/grain/commit/afba142ef90d0d95ae0085debe50e1b34588b267)) +* **compiler:** Fix binop operator reported location ([#1018](https://github.com/hazelgrove/grain/issues/1018)) ([422dbcb](https://github.com/hazelgrove/grain/commit/422dbcb01cd09627c6a5f4494cc7c2e7644e92f0)) +* **compiler:** Fix compilation of closure scope mutable destructuring ([#1346](https://github.com/hazelgrove/grain/issues/1346)) ([bdcdb3c](https://github.com/hazelgrove/grain/commit/bdcdb3c66a9a60fc44956225491c12cc14250009)) +* **compiler:** Fix compilation of functions annotated with alias ([#1293](https://github.com/hazelgrove/grain/issues/1293)) ([b3e1882](https://github.com/hazelgrove/grain/commit/b3e188299be6af22bb64cf5ae9a41afa05e4c16f)) +* **compiler:** Fix counting of stack size ([#1066](https://github.com/hazelgrove/grain/issues/1066)) ([f1b3e51](https://github.com/hazelgrove/grain/commit/f1b3e51580062da9b7e42ec36eb9880b71375cb9)) +* **compiler:** Fix error message when trying to export a constructor ([#1055](https://github.com/hazelgrove/grain/issues/1055)) ([54ddb67](https://github.com/hazelgrove/grain/commit/54ddb671745b554eacc8640b1337a46f423b1cc5)) +* **compiler:** fix formatter multiple data bug ([#1282](https://github.com/hazelgrove/grain/issues/1282)) ([f6fd962](https://github.com/hazelgrove/grain/commit/f6fd96250dbe95d6b6c56d663f6d7f2704b792b3)) +* **compiler:** Fix incorrect char well-formedness error ([#837](https://github.com/hazelgrove/grain/issues/837)) ([4a201cf](https://github.com/hazelgrove/grain/commit/4a201cf2829a1721fe1f5e322d45106bd06d51e8)) +* **compiler:** Fix location information for parsed toplevel statements ([#801](https://github.com/hazelgrove/grain/issues/801)) ([36c85f7](https://github.com/hazelgrove/grain/commit/36c85f7b8aae010401c92ceb2b33224938e10fa7)) +* **compiler:** Fix location of toplevel import statement ([#794](https://github.com/hazelgrove/grain/issues/794)) ([3f94057](https://github.com/hazelgrove/grain/commit/3f9405754f2b58f32819f7d8809eab1563c4a31a)) +* **compiler:** Fix memory leaks when loading from heap values ([#1038](https://github.com/hazelgrove/grain/issues/1038)) ([7d3402d](https://github.com/hazelgrove/grain/commit/7d3402db09b6e4e24e49d168e8ddd49044a98df1)) +* **compiler:** Fix parsing of block with lone 0-arg enum ([#885](https://github.com/hazelgrove/grain/issues/885)) ([edfc21e](https://github.com/hazelgrove/grain/commit/edfc21e0ca8f76f00b53d0fd07075ccf6299358e)) +* **compiler:** Fix stack/heap number allocation boundary ([#974](https://github.com/hazelgrove/grain/issues/974)) ([47b0f56](https://github.com/hazelgrove/grain/commit/47b0f56c00e88ddc6054b8f8f8eea4b21da0c7f7)) +* **compiler:** Fix typechecking of single-argument tuple annotation ([#827](https://github.com/hazelgrove/grain/issues/827)) ([7b1bb58](https://github.com/hazelgrove/grain/commit/7b1bb58971bf6b714454c1cfce9c0dea673a3670)) +* **compiler:** Follow proper calling convention when callling stdlib equals in match ([#895](https://github.com/hazelgrove/grain/issues/895)) ([73fe7d4](https://github.com/hazelgrove/grain/commit/73fe7d47783a76454496c8bba55ff051561ef975)) +* **compiler:** Handle let-mut value restriction, such that mutable lets are always expansive ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Implement proper dependency resolver ([#590](https://github.com/hazelgrove/grain/issues/590)) ([d9ce392](https://github.com/hazelgrove/grain/commit/d9ce392341acebd0b46a0e6fe78469e23e73ee92)) +* **compiler:** Inform the compiler that lsp mode is running on a root file ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **compiler:** Iterate over guard clauses in typedTreeIter/typedTreeMap ([#1283](https://github.com/hazelgrove/grain/issues/1283)) ([96e8ecb](https://github.com/hazelgrove/grain/commit/96e8ecb9e84e54d0640bc775e23e25b93c4dda7c)) +* **compiler:** Move Filename usage to Filepath.String & normalize separators ([584bcad](https://github.com/hazelgrove/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Move lsp flag into grainc to remove it as a recompilation flag ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **compiler:** Parse array set with newline correctly ([#926](https://github.com/hazelgrove/grain/issues/926)) ([14e1822](https://github.com/hazelgrove/grain/commit/14e18229f82637870c651b948fb15c3e5a7b082c)) +* **compiler:** Preserve all configs when compiling ([#1207](https://github.com/hazelgrove/grain/issues/1207)) ([d8ff903](https://github.com/hazelgrove/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Print parens for unit functions ([#749](https://github.com/hazelgrove/grain/issues/749)) ([fd88d2e](https://github.com/hazelgrove/grain/commit/fd88d2e7a82c852ef52f13c3cd58e3fd6fd789df)) +* **compiler:** Properly apply bindings when executing match guard ([#1039](https://github.com/hazelgrove/grain/issues/1039)) ([121644b](https://github.com/hazelgrove/grain/commit/121644be48e66ea1a7ce884ea816fe9af223442c)) +* **compiler:** Properly handle corrupted CMIs ([#1314](https://github.com/hazelgrove/grain/issues/1314)) ([7f97410](https://github.com/hazelgrove/grain/commit/7f9741016fac55bd63aa74d9bd2fef49dd34d03b)) +* **compiler:** properly handle special float equality ([#664](https://github.com/hazelgrove/grain/issues/664)) ([b63597a](https://github.com/hazelgrove/grain/commit/b63597a2a0a490015b2af0668894ed9c9afb81ce)) +* **compiler:** Properly handle types not imported ([#1329](https://github.com/hazelgrove/grain/issues/1329)) ([75bbb93](https://github.com/hazelgrove/grain/commit/75bbb9367a43c923fc97b25ea0ed9315190f5702)) +* **compiler:** Properly handle value restriction on function application & mutable vars ([#988](https://github.com/hazelgrove/grain/issues/988)) ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Properly unmark type manifest bodies ([bc648ce](https://github.com/hazelgrove/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **compiler:** Provide named function export for recursive functions ([#843](https://github.com/hazelgrove/grain/issues/843)) ([e7d2ff4](https://github.com/hazelgrove/grain/commit/e7d2ff42d2a6e287ec6152b1a4e7cf2b366658f1)) +* **compiler:** Read custom sections in full ([#1243](https://github.com/hazelgrove/grain/issues/1243)) ([f8a0891](https://github.com/hazelgrove/grain/commit/f8a0891f253e33153feb2ec20afe6443391a1aa8)) +* **compiler:** Recompile cached modules when compiler flags change ([#820](https://github.com/hazelgrove/grain/issues/820)) ([50497dd](https://github.com/hazelgrove/grain/commit/50497dd62aa02043f1f7bf1a5cc3ea74e7c080b6)) +* **compiler:** Refactor function return value incRef logic ([#765](https://github.com/hazelgrove/grain/issues/765)) ([97fbe3d](https://github.com/hazelgrove/grain/commit/97fbe3dd6615b07db249eae5946a6dfeebcec3c0)) +* **compiler:** Refactor module resolution in order to properly resolve relative paths ([#797](https://github.com/hazelgrove/grain/issues/797)) ([97cd97d](https://github.com/hazelgrove/grain/commit/97cd97d2126297044391c92d791846932eef1ded)) +* **compiler:** Refactor WASI polyfill resolution ([#1261](https://github.com/hazelgrove/grain/issues/1261)) ([a39b48f](https://github.com/hazelgrove/grain/commit/a39b48ff95f4ef7ce5a4b5454dbc620ae4044c17)) +* **compiler:** Remove from default ident printer ([#1056](https://github.com/hazelgrove/grain/issues/1056)) ([49cd5a0](https://github.com/hazelgrove/grain/commit/49cd5a08e5d9b2753b47af324b7fb90f4a98b339)) +* **compiler:** Remove existing exports when writing universal exports ([#919](https://github.com/hazelgrove/grain/issues/919)) ([e80de43](https://github.com/hazelgrove/grain/commit/e80de439e79ed1dab1c1adcbd5b9cca7a79be023)) +* **compiler:** Report binop locations properly ([#1271](https://github.com/hazelgrove/grain/issues/1271)) ([4b9dd9c](https://github.com/hazelgrove/grain/commit/4b9dd9c35969cf86f1d2d9a8013b7f6d347c508e)) +* **compiler:** Report Win32 instead of Cygwin in JS compiler ([#1251](https://github.com/hazelgrove/grain/issues/1251)) ([584bcad](https://github.com/hazelgrove/grain/commit/584bcad942f91d86c9b328e61f34af6e3cfbd050)) +* **compiler:** Resolve all modules fully during linking ([#950](https://github.com/hazelgrove/grain/issues/950)) ([33b33a3](https://github.com/hazelgrove/grain/commit/33b33a3926cc059a0a759c4ec894fb9f6f03d904)) +* **compiler:** Resolve names when doing CRC checks ([#615](https://github.com/hazelgrove/grain/issues/615)) ([15ea9a1](https://github.com/hazelgrove/grain/commit/15ea9a18c0c5a8762a4e232720a2654c33881dac)) +* **compiler:** Respect stack type when dropping statements ([#1138](https://github.com/hazelgrove/grain/issues/1138)) ([5a44e93](https://github.com/hazelgrove/grain/commit/5a44e93ab646f1e9998ce6c23245e41c4bf0019a)) +* **compiler:** Return full string locations from parsing ([#798](https://github.com/hazelgrove/grain/issues/798)) ([392eabf](https://github.com/hazelgrove/grain/commit/392eabf6c1fa6963d7d08f95549e1a213e7acb03)) +* **compiler:** Strip leading line asterisks in block and doc comments ([#740](https://github.com/hazelgrove/grain/issues/740)) ([45d8564](https://github.com/hazelgrove/grain/commit/45d85644e2b686462ef58dcee608a19058c4a2d1)) +* **compiler:** Supply correct error for unbound record labels ([#1200](https://github.com/hazelgrove/grain/issues/1200)) ([86e1bc0](https://github.com/hazelgrove/grain/commit/86e1bc0ba099c5b48ba72e98530a634e15f6bb77)) +* **compiler:** Support printing tuple types in oprint ([#1324](https://github.com/hazelgrove/grain/issues/1324)) ([c1d8907](https://github.com/hazelgrove/grain/commit/c1d89076cad153ed4aa02593f628f4d152ff7139)) +* **compiler:** Update binaryen.ml bindings to include JS fixes ([#600](https://github.com/hazelgrove/grain/issues/600)) ([7bd9ac6](https://github.com/hazelgrove/grain/commit/7bd9ac69a1ba9c9506e8d65b1f51831a63fdf294)) +* Correct type signature for `_start` ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Correctly preserve start position for character literals ([#931](https://github.com/hazelgrove/grain/issues/931)) ([8fcc575](https://github.com/hazelgrove/grain/commit/8fcc575a3afde79ac6455b35839b1bcdd6ded41f)) +* else clause on new line ([#678](https://github.com/hazelgrove/grain/issues/678)) ([13b01c9](https://github.com/hazelgrove/grain/commit/13b01c9df77d261e55639ae10ded50a922485894)) +* Fix parsing of '\'' char literal ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* **grainc:** Apply separator normalization before cmdliner util ([#654](https://github.com/hazelgrove/grain/issues/654)) ([992dfbd](https://github.com/hazelgrove/grain/commit/992dfbdf3f3c58927eb4eccf125173b9994b4626)) +* **grainc:** Only print compiler backtraces in debug mode ([#588](https://github.com/hazelgrove/grain/issues/588)) ([f5145ff](https://github.com/hazelgrove/grain/commit/f5145ff5eb931ec017228c08d6516384dae6b0e5)) +* **graindoc:** Add parens around infix operators in titles ([#1303](https://github.com/hazelgrove/grain/issues/1303)) ([acba9c1](https://github.com/hazelgrove/grain/commit/acba9c1757688756c3ca98b22a0a159b8d8f9e7d)) +* **graindoc:** Added linker fixes for Windows ([#824](https://github.com/hazelgrove/grain/issues/824)) ([41dc6c8](https://github.com/hazelgrove/grain/commit/41dc6c824055cec9118015dd3d5c8b8e8af65305)) +* **graindoc:** Avoid singletons when building ordered comments ([#1208](https://github.com/hazelgrove/grain/issues/1208)) ([3f28e6e](https://github.com/hazelgrove/grain/commit/3f28e6e226bbd951aedc6f8783203152919c7d08)) +* **graindoc:** Correctly order sections from source code ([#748](https://github.com/hazelgrove/grain/issues/748)) ([61da929](https://github.com/hazelgrove/grain/commit/61da9296e3c9b61181acb82c0c09cf7b197d6ef6)) +* **graindoc:** Correctly parse attributes, no matter the order ([#784](https://github.com/hazelgrove/grain/issues/784)) ([4a1b280](https://github.com/hazelgrove/grain/commit/4a1b2807cb76a3cedc40e66a4ce6442cd87ef7ef)) +* **graindoc:** Ensure argument-less variants print with trailing comma ([#810](https://github.com/hazelgrove/grain/issues/810)) ([d0cc615](https://github.com/hazelgrove/grain/commit/d0cc6153fc1187e509e1e4356bb054f2776dc8e7)) +* **graindoc:** Ensure value_description is resolved to outcome before printing ([#1070](https://github.com/hazelgrove/grain/issues/1070)) ([5eb05cc](https://github.com/hazelgrove/grain/commit/5eb05cc2dedc3b933e194be86dd5d3c3656d6490)) +* **graindoc:** Fix type printing for types and abstract types ([#1238](https://github.com/hazelgrove/grain/issues/1238)) ([aea3ea9](https://github.com/hazelgrove/grain/commit/aea3ea9f6b72182dfffb8af4c9af83a444fb6a83)) +* **graindoc:** Improve location lookup so re-exports do not crash it ([#1280](https://github.com/hazelgrove/grain/issues/1280)) ([6e782ee](https://github.com/hazelgrove/grain/commit/6e782ee146e16aefd3b88441de500d82a20508be)) +* **graindoc:** Only extract attributes from Doc comments ([#970](https://github.com/hazelgrove/grain/issues/970)) ([7b6ee5f](https://github.com/hazelgrove/grain/commit/7b6ee5f085af89f3db181c8d6c2718ca161f2ead)) +* **graindoc:** Preserve indentation in Doc comments during trim ([#1119](https://github.com/hazelgrove/grain/issues/1119)) ([b8a6d57](https://github.com/hazelgrove/grain/commit/b8a6d57cce274bfbc2cc16c5b25215b042d4264c)) +* **graindoc:** Remove spaces between parens and infix idents ([#1302](https://github.com/hazelgrove/grain/issues/1302)) ([95e596f](https://github.com/hazelgrove/grain/commit/95e596fa3fdae5a8a0e07d76ff8c11eeab99e8d7)) +* **graindoc:** Remove special idents from receiving parens ([#1104](https://github.com/hazelgrove/grain/issues/1104)) ([5cb0fda](https://github.com/hazelgrove/grain/commit/5cb0fda652cad0644f48d8196089430dca1cac0d)) +* **graindoc:** Use value_descriptions and type_declarations defined by the module signature ([#1241](https://github.com/hazelgrove/grain/issues/1241)) ([5896242](https://github.com/hazelgrove/grain/commit/5896242c324622f3329c144bd2c9642aade9d049)) +* **grainfmt:** Break long parameterized types ([bc648ce](https://github.com/hazelgrove/grain/commit/bc648ce98f1263cdb4163f7fd620de75771848ab)) +* **grainfmt:** Correctly add space between arguments in enum pattern ([#865](https://github.com/hazelgrove/grain/issues/865)) ([8c647fa](https://github.com/hazelgrove/grain/commit/8c647fab856a15f06ebfe9e0cc75e0f090ed707d)) +* **grainfmt:** fix some spacing issues with the formatter ([#955](https://github.com/hazelgrove/grain/issues/955)) ([9c4be85](https://github.com/hazelgrove/grain/commit/9c4be85011d6c030fd54954bd86b0a3ee0f80660)) +* **grainfmt:** Format CRLF files without error ([#941](https://github.com/hazelgrove/grain/issues/941)) ([ece7536](https://github.com/hazelgrove/grain/commit/ece7536b6d20694360257515a6f963f115ed21b3)) +* **grainfmt:** Group infix functions when passed as params ([bb9666d](https://github.com/hazelgrove/grain/commit/bb9666d24991df94c82d4f50c1d25d7669cec3c9)) +* **grainfmt:** handle empty type for foreign exports ([#907](https://github.com/hazelgrove/grain/issues/907)) ([d3b60a4](https://github.com/hazelgrove/grain/commit/d3b60a422568941185c2446464ba2eeb4a776ed2)) +* **grainfmt:** Handle recursive enums ([7dc77cd](https://github.com/hazelgrove/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **grainfmt:** Handle trailing block comments better ([#860](https://github.com/hazelgrove/grain/issues/860)) ([f15f37b](https://github.com/hazelgrove/grain/commit/f15f37ba1b1df776d868e0dfccf0bb8d42ada2a7)) +* **grainfmt:** Improve correctness of formatting ([9bc7a55](https://github.com/hazelgrove/grain/commit/9bc7a55a525c8018e9d915cf94af2f2486a21e27)) +* **grainfmt:** Improve formatter performance ([#959](https://github.com/hazelgrove/grain/issues/959)) ([4e739f1](https://github.com/hazelgrove/grain/commit/4e739f1d12a1493207a81549f1c0145f296b50be)) +* **grainfmt:** Indent function application args when adding parens ([#1095](https://github.com/hazelgrove/grain/issues/1095)) ([64af7d3](https://github.com/hazelgrove/grain/commit/64af7d387dca2fddb9b3d190ccdf5790ec3d8e65)) +* **grainfmt:** Inform the formatter that it is running against root files ([b58323f](https://github.com/hazelgrove/grain/commit/b58323f1764f4d870875b8c4ef19f9861b4188ad)) +* **grainfmt:** Preserve the EOL characters of file ([#1216](https://github.com/hazelgrove/grain/issues/1216)) ([ef2835a](https://github.com/hazelgrove/grain/commit/ef2835a5608cb1d5de52b280b6d4fd5b563ce725)) +* **grainfmt:** Print attributes for non-toplevel expressions ([#887](https://github.com/hazelgrove/grain/issues/887)) ([72292fe](https://github.com/hazelgrove/grain/commit/72292fe67cb21905dd976933d278810ac49bd35b)) +* **grainfmt:** Properly handle if/then/else line breaks ([#1217](https://github.com/hazelgrove/grain/issues/1217)) ([93fd3b5](https://github.com/hazelgrove/grain/commit/93fd3b5d0a5ccbc11baaab08d0f65ff9ec98aead)) +* **grainfmt:** remove extra spaces around for/while loop conditions ([#897](https://github.com/hazelgrove/grain/issues/897)) ([2054a83](https://github.com/hazelgrove/grain/commit/2054a832d713cd335417fe6e04e537453045c43f)) +* **grainfmt:** Remove extra spacing from type signatures ([#877](https://github.com/hazelgrove/grain/issues/877)) ([c8cf421](https://github.com/hazelgrove/grain/commit/c8cf421940fb21c06c5e3f9a11c72670bccccfb2)) +* **grainfmt:** Remove extraneous parens around infix function application ([#902](https://github.com/hazelgrove/grain/issues/902)) ([5c1906a](https://github.com/hazelgrove/grain/commit/5c1906a98664f1b14f969fff5c0e48ddd08988c4)) +* **grainfmt:** Remove parens around annotated types ([#1109](https://github.com/hazelgrove/grain/issues/1109)) ([0ca66bd](https://github.com/hazelgrove/grain/commit/0ca66bd43703826f86ef5b28b49d250af219fb0b)) +* **grainfmt:** Removed a trailing comma after a spread in a list, and fixed escaped single quote ([#923](https://github.com/hazelgrove/grain/issues/923)) ([3a138d6](https://github.com/hazelgrove/grain/commit/3a138d6002fdb2a84df89355e10a143ff792b122)) +* **grainfmt:** Resolve issues with comments within braces ([#888](https://github.com/hazelgrove/grain/issues/888)) ([9c88b89](https://github.com/hazelgrove/grain/commit/9c88b89db4ce1d7a256cbde51d74225513b76a3e)) +* **grainfmt:** Resugar match lists properly ([7dc77cd](https://github.com/hazelgrove/grain/commit/7dc77cd3ec28745dfad6cdbd1551c09a82a1ba6b)) +* **grainfmt:** Scope the comments in callback lambda closure ([#1090](https://github.com/hazelgrove/grain/issues/1090)) ([0975580](https://github.com/hazelgrove/grain/commit/09755801d8598691e4a2884a732c0ed9a9e10a2d)) +* **grainfmt:** Support PPatOr and PPatAlias ([#1322](https://github.com/hazelgrove/grain/issues/1322)) ([20050d2](https://github.com/hazelgrove/grain/commit/20050d2c975f60ae7ead41c76871562f7636c499)) +* **grainfmt:** Use Doc.space and surround trailing type annotations with parens ([#866](https://github.com/hazelgrove/grain/issues/866)) ([7bad8e2](https://github.com/hazelgrove/grain/commit/7bad8e2afb00b3756c191acc2181acefd28ed7fc)) +* **grainfmt:** Wrap type annotation for a long line let assignment ([#1005](https://github.com/hazelgrove/grain/issues/1005)) ([963b505](https://github.com/hazelgrove/grain/commit/963b5053b57aece6b721bd99dbe143b117ad86d7)) +* **linking:** Close file after reading ([c404fcf](https://github.com/hazelgrove/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* **lsp:** Always respond to hover request ([#1328](https://github.com/hazelgrove/grain/issues/1328)) ([fb947b5](https://github.com/hazelgrove/grain/commit/fb947b5dc47f306f6399d2b4564fe8f33ffd80b1)) +* **lsp:** Pattern-match the phase to match the stop hook ([#760](https://github.com/hazelgrove/grain/issues/760)) ([c4da4d9](https://github.com/hazelgrove/grain/commit/c4da4d938ffa15a21dbdef7b2648b37e2278b079)) +* Parsing of conditional assignment with binary operators ([#572](https://github.com/hazelgrove/grain/issues/572)) ([17fd4fa](https://github.com/hazelgrove/grain/commit/17fd4fa7e2d14d0392c98924625248ed6fd20b9a)) +* Properly escape quoted strings in toString/print ([#670](https://github.com/hazelgrove/grain/issues/670)) ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* Properly incRef exception printers ([#581](https://github.com/hazelgrove/grain/issues/581)) ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Properly initialize malloc free list ([#700](https://github.com/hazelgrove/grain/issues/700)) ([0576fd9](https://github.com/hazelgrove/grain/commit/0576fd9be8dbfecc5d7081731a1c5bedee32f9f1)) +* Properly open & close files ([#985](https://github.com/hazelgrove/grain/issues/985)) ([c404fcf](https://github.com/hazelgrove/grain/commit/c404fcf30bceab2911d3ab0c99f284791c799ca0)) +* Record function-call associativity ([#701](https://github.com/hazelgrove/grain/issues/701)) ([a6ca63f](https://github.com/hazelgrove/grain/commit/a6ca63fd8b3830b076d649e8c78cdde7b86507ca)) +* Remove ppx_expect entirely to build on Windows ([#609](https://github.com/hazelgrove/grain/issues/609)) ([a234dd8](https://github.com/hazelgrove/grain/commit/a234dd8e027bbdb0f5dbf66bcf09fe8298a6ef7d)) +* **runtime:** Add types to boxed GC functions to avoid weak type errors ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **runtime:** Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly ([04aef16](https://github.com/hazelgrove/grain/commit/04aef163b862588e5d7f699fc33e0810625ab22a)) +* **runtime:** Return correct pointer to morecore ([#602](https://github.com/hazelgrove/grain/issues/602)) ([af39cc4](https://github.com/hazelgrove/grain/commit/af39cc46c8e12d869aaf5c42c0a3fd2afbc61638)) +* **stdlib:** Add bounds checking to Buffer addStringSlice & addBytesSlice ([#1065](https://github.com/hazelgrove/grain/issues/1065)) ([06fe512](https://github.com/hazelgrove/grain/commit/06fe512e863aeeb855ccf3e3b83bcd3bc8854723)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/hazelgrove/grain/issues/1136)) ([0c7cb82](https://github.com/hazelgrove/grain/commit/0c7cb820d49cda74598680cc614c0d893b4d2b40)) +* **stdlib:** Avoid `Pervasives.(!=)` references on WasmI32 values ([#759](https://github.com/hazelgrove/grain/issues/759)) ([0f42544](https://github.com/hazelgrove/grain/commit/0f42544597c628454bede14fd82542331211dab8)) +* **stdlib:** Correctly indent nested record braces when printing ([#724](https://github.com/hazelgrove/grain/issues/724)) ([05f795d](https://github.com/hazelgrove/grain/commit/05f795dcbf77642070eae1613492d701d7b78113)) +* **stdlib:** fdWrite range error ([#677](https://github.com/hazelgrove/grain/issues/677)) ([73e0a7a](https://github.com/hazelgrove/grain/commit/73e0a7a1d5d393dd4b050275b68b949a14fe9936)) +* **stdlib:** Fix Char.code memory issue ([#928](https://github.com/hazelgrove/grain/issues/928)) ([dfa31d8](https://github.com/hazelgrove/grain/commit/dfa31d8aa60a41d08494f3817bdb628a30d83f41)) +* **stdlib:** Fix float printing in dtoa ([#1165](https://github.com/hazelgrove/grain/issues/1165)) ([2987210](https://github.com/hazelgrove/grain/commit/2987210648873ab474990ff2b7146a489fecb268)) +* **stdlib:** Fix issue with list printing ([#894](https://github.com/hazelgrove/grain/issues/894)) ([e2a33a9](https://github.com/hazelgrove/grain/commit/e2a33a9607bd076abbf6375389f1a7896775e6bc)) +* **stdlib:** Fix memory issue in list printing ([#912](https://github.com/hazelgrove/grain/issues/912)) ([3e0a805](https://github.com/hazelgrove/grain/commit/3e0a8059a36d1042fa06d6aed54565ced116fd87)) +* **stdlib:** Fixed String.writeUtf8CodePoint for two byte sequences. ([#786](https://github.com/hazelgrove/grain/issues/786)) ([20b1a77](https://github.com/hazelgrove/grain/commit/20b1a770fe4dd5302a92c763c4748fd501b41c96)) +* **stdlib:** Make toNumber functions respect Number invariants ([#1347](https://github.com/hazelgrove/grain/issues/1347)) ([78db882](https://github.com/hazelgrove/grain/commit/78db8820cf5667a4d6737c9109f4223c1348b245)) +* **stdlib:** Premature free in toString ([#863](https://github.com/hazelgrove/grain/issues/863)) ([eec0f09](https://github.com/hazelgrove/grain/commit/eec0f092987cd6c9ddd7519b139596611dd84d7c)) +* **stdlib:** Remove fd_sync calls that are not used ([#846](https://github.com/hazelgrove/grain/issues/846)) ([3d8f70c](https://github.com/hazelgrove/grain/commit/3d8f70cc8255075a462d892fdfcfe30d48c599f0)) +* **stdlib:** Respect callee-owned convention in sys/xx modules ([35cd957](https://github.com/hazelgrove/grain/commit/35cd957d9c04d84d9f12b54cd2882a6bbc67c175)) +* **stdlib:** Support arrays of any type in Array rotate ([#1048](https://github.com/hazelgrove/grain/issues/1048)) ([3ceb1cf](https://github.com/hazelgrove/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Support empty arrays in Array rotate ([3ceb1cf](https://github.com/hazelgrove/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/hazelgrove/grain/issues/1301)) ([bad5897](https://github.com/hazelgrove/grain/commit/bad5897062444ec4d4ace805adcd382725b86125)) +* **tests:** Fix mistaken `==` in WasmI32 tests ([0f42544](https://github.com/hazelgrove/grain/commit/0f42544597c628454bede14fd82542331211dab8)) +* Throwing an exception now traps immediately in all cases ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Use Is instead of Eq for match variant comparison ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Use proper return type for calls to external functions ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* word-size independent LEB input byte checking ([#567](https://github.com/hazelgrove/grain/issues/567)) ([4079824](https://github.com/hazelgrove/grain/commit/407982444aea158dccfd226d64cb94b3b60ba938)) +* Workaround for Windows drive letters with jsoo & pkg ([#636](https://github.com/hazelgrove/grain/issues/636)) ([d205cde](https://github.com/hazelgrove/grain/commit/d205cde76c97d9b830653c48004b97ec9dc25840)) + + +### Reverts + +* "chore!: rename Queue/Stack lib methods ([#625](https://github.com/hazelgrove/grain/issues/625))" ([#632](https://github.com/hazelgrove/grain/issues/632)) ([c9af90e](https://github.com/hazelgrove/grain/commit/c9af90e77e5c5bb9649b8072b9cdff16ae2d1e60)) + + +### Miscellaneous Chores + +* **cli:** Remove `-f` CLI option ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **cli:** Remove graceful flag & behavior ([#1275](https://github.com/hazelgrove/grain/issues/1275)) ([df55898](https://github.com/hazelgrove/grain/commit/df5589882d12ed35ba448de44e06f434bcf59b07)) +* **compiler:** Add interface for compile module to hide resume ([d8ff903](https://github.com/hazelgrove/grain/commit/d8ff9037fc3148384d2157f76e4394322ba4ed58)) +* **compiler:** Avoid building JS bundles by default ([#739](https://github.com/hazelgrove/grain/issues/739)) ([2925fb8](https://github.com/hazelgrove/grain/commit/2925fb8149cb09659e0267a581f0390b73b0f119)) +* **compiler:** Disallow end-of-line before `=>` ([#1178](https://github.com/hazelgrove/grain/issues/1178)) ([8261e73](https://github.com/hazelgrove/grain/commit/8261e733c9345c690ffc107616512be4eb4c469e)) +* **compiler:** Refactor HeapAllocated/StackAllocated into Managed/Unmanaged ([#1268](https://github.com/hazelgrove/grain/issues/1268)) ([1590a37](https://github.com/hazelgrove/grain/commit/1590a37ca39e39ee40e0f27986fe8195458c3cb9)) +* **compiler:** Remove --principal-types and --recursive-types compiler flags ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **compiler:** Remove `--lsp` flag from grainc executable ([df91849](https://github.com/hazelgrove/grain/commit/df91849bd65a729fe4e0b03f51bc6d28017935cb)) +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/hazelgrove/grain/issues/1068)) ([3ae8eaa](https://github.com/hazelgrove/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Rename --cdebug to --verbose ([8f40383](https://github.com/hazelgrove/grain/commit/8f40383af23b236b0333032bba193c39757d2569)) +* **compiler:** Rename `grainRuntime` to `_grainEnv` ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Drop node 14 support ([#1092](https://github.com/hazelgrove/grain/issues/1092)) ([ef4358f](https://github.com/hazelgrove/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Introduce `_gmain` for old behavior of `_start` ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` ([#755](https://github.com/hazelgrove/grain/issues/755)) ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Rename `registerBasePrinter` to `dangerouslyRegisterBasePrinter` in runtime/exception ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Rename JS "runtime" to "js-runner"/"runner" throughout project ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* rename Queue/Stack lib methods ([#625](https://github.com/hazelgrove/grain/issues/625)) ([8117592](https://github.com/hazelgrove/grain/commit/8117592dbaa09b4443003f234b6a2dcadb235a8b)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/hazelgrove/grain/issues/1300)) ([9101615](https://github.com/hazelgrove/grain/commit/9101615688f20310ae32573f93f36cfcf5c69be1)) +* Switch from yarn to npm ([#1226](https://github.com/hazelgrove/grain/issues/1226)) ([5ea9274](https://github.com/hazelgrove/grain/commit/5ea92743a05fffb4298deda64100a3d7fc2259cb)) +* Tail calls must be enabled explicitly via `--experimental-wasm-tail-call` ([3d4ac6e](https://github.com/hazelgrove/grain/commit/3d4ac6edd1b805d7cada5e6fa951bb6afb0467d9)) + ### [0.5.2](https://github.com/grain-lang/grain/compare/compiler-v0.5.1...compiler-v0.5.2) (2022-06-29) diff --git a/compiler/dune-project b/compiler/dune-project index e40ae8b7..20316405 100644 --- a/compiler/dune-project +++ b/compiler/dune-project @@ -1,6 +1,6 @@ (lang dune 2.3) (name grain) -(version 0.5.2) +(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 3e8b01c1..927c9941 100644 --- a/compiler/esy.json +++ b/compiler/esy.json @@ -1,6 +1,6 @@ { "name": "@grain/compiler", - "version": "0.5.2", + "version": "0.6.0", "esy": { "build": [ "dune build @native --no-buffer" diff --git a/compiler/package.json b/compiler/package.json index 0e1fedbf..f194610b 100644 --- a/compiler/package.json +++ b/compiler/package.json @@ -1,7 +1,7 @@ { "name": "@grain/compiler", "private": true, - "version": "0.5.2", + "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 f4955e5d..86f7d254 100644 --- a/js-runner/CHANGELOG.md +++ b/js-runner/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [0.6.0](https://github.com/hazelgrove/grain/compare/js-runner-v0.5.2...js-runner-v0.6.0) (2022-07-03) + + +### ⚠ BREAKING CHANGES + +* **compiler:** Remove decRefIgnoreZeros (#1068) +* **compiler:** Callee-owned values (#803) +* Rename JS "runtime" to "js-runner"/"runner" throughout project +* **compiler:** Rename `grainRuntime` to `_grainEnv` +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` (#755) + +### Features + +* **compiler:** Callee-owned values ([#803](https://github.com/hazelgrove/grain/issues/803)) ([c242e89](https://github.com/hazelgrove/grain/commit/c242e89767788e590f053c3d3ddfa7208387c247)) + + +### Bug Fixes + +* **js-runner:** Add default object for destructuring ([#833](https://github.com/hazelgrove/grain/issues/833)) ([ab96fd6](https://github.com/hazelgrove/grain/commit/ab96fd6c29f297f0e5423f3a6011fe07cf488df8)) +* **js-runner:** Monkeypatch fs_write in browser environment ([#832](https://github.com/hazelgrove/grain/issues/832)) ([330b56f](https://github.com/hazelgrove/grain/commit/330b56f3bdda17bf993e88bb35532831f95c63b3)) + + +### Miscellaneous Chores + +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/hazelgrove/grain/issues/1068)) ([3ae8eaa](https://github.com/hazelgrove/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* **compiler:** Rename `grainRuntime` to `_grainEnv` ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Refactor out references to "runtime" that aren't related to `stdlib/runtime` ([#755](https://github.com/hazelgrove/grain/issues/755)) ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) +* Rename JS "runtime" to "js-runner"/"runner" throughout project ([2d99c5a](https://github.com/hazelgrove/grain/commit/2d99c5ab8fa527328f18d471e8a9128561af7056)) + ### [0.5.2](https://github.com/grain-lang/grain/compare/js-runner-v0.5.1...js-runner-v0.5.2) (2022-06-29) diff --git a/js-runner/package.json b/js-runner/package.json index 351c6d6b..aaec4d6d 100644 --- a/js-runner/package.json +++ b/js-runner/package.json @@ -1,6 +1,6 @@ { "name": "@grain/js-runner", - "version": "0.5.2", + "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 0b39f008..af0128c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "grain", - "version": "0.5.2", + "version": "0.6.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "grain", - "version": "0.5.2", + "version": "0.6.0", "workspaces": [ "cli", "js-runner", diff --git a/package.json b/package.json index 4620cdad..850381ac 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grain", "private": true, - "version": "0.5.2", + "version": "0.6.0", "description": "The Grain monorepo.", "workspaces": [ "cli", diff --git a/stdlib/CHANGELOG.md b/stdlib/CHANGELOG.md index 49d5326e..ef0f045f 100644 --- a/stdlib/CHANGELOG.md +++ b/stdlib/CHANGELOG.md @@ -1,5 +1,207 @@ # Changelog +## [0.6.0](https://github.com/hazelgrove/grain/compare/stdlib-v0.5.2...stdlib-v0.6.0) (2022-07-03) + + +### ⚠ BREAKING CHANGES + +* **stdlib:** Use explicit exports for Pervasives (#1301) +* **stdlib:** Remove `sum` function from the List module (#1300) +* **stdlib:** Ensure Void return for forEach functions in List module (#1307) +* **stdlib:** Provide correct types for BigInt operations (#1297) +* **grainfmt:** Replace `--in-place` flag with `-o` flag +* **grainfmt:** Remove stdin formatting support +* **compiler:** Arbitrary-Precision Integer Arithmetic (#1167) +* Drop node 14 support (#1092) +* **stdlib:** Add explicit void return type on Set.forEach (#1225) +* **stdlib:** Add explicit void return type on Map.forEach (#1220) +* **stdlib:** Add type aliases to regex lib (#1036) +* **compiler:** Stack-allocated Chars (#1103) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` (#1136) +* **graindoc:** Add `--current-version` flag, required for since/history attributes (#1116) +* **compiler:** Remove decRefIgnoreZeros (#1068) +* **compiler:** Add `--memory-base` flag (#1115) +* **compiler:** Re-implement Grain parser (#1033) +* **compiler:** Add typed well-formedness pass which forbids usage of WasmXX values outside of `@disableGC` context (#772) +* **stdlib:** Use random seed for hash module (#854) +* **stdlib:** Remove deprecated functions (#812) +* **stdlib:** Convert sys functions to return Results instead of throwing errors (#792) +* **compiler:** Callee-owned values (#803) +* **compiler:** Improve assert messages to contain location information (#737) +* **runtime:** Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly +* Adjust Number equality, thus that 5 == 5.0 (#726) +* **stdlib:** Export coerceNumberToWasmI32/I64/F32/F64 from Number runtime (#713) +* rename Queue/Stack lib methods (#625) +* **stdlib:** Replace JS entrypoint with locator file (#586) +* Rename `registerBasePrinter` to `dangerouslyRegisterBasePrinter` in runtime/exception +* Use Grain exceptions instead of JS exceptions (#565) +* Update assignment semantics (#560) + +### Features + +* Add ability to `throw` exceptions ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add ability to register custom exception printers ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add Exception stdlib with Exception.registerPrinter ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Compile grainc to JS & create binaries with pkg ([#570](https://github.com/hazelgrove/grain/issues/570)) ([f4919bd](https://github.com/hazelgrove/grain/commit/f4919bdbab7dddd433b3f53bf8a8536a7efd5b03)) +* **compiler:** Add --no-bulk-memory flag to polyfill bulk memory ops ([#819](https://github.com/hazelgrove/grain/issues/819)) ([7db4ea6](https://github.com/hazelgrove/grain/commit/7db4ea6578990c2f175c083ef378c47599d47fd1)) +* **compiler:** Add `--memory-base` flag ([#1115](https://github.com/hazelgrove/grain/issues/1115)) ([0680826](https://github.com/hazelgrove/grain/commit/068082663c4387c3ab54c052869e9b9a06b87e26)) +* **compiler:** Add typed well-formedness pass which forbids usage of WasmXX values outside of `[@disable](https://github.com/disable)GC` context ([#772](https://github.com/hazelgrove/grain/issues/772)) ([42fbad6](https://github.com/hazelgrove/grain/commit/42fbad632f1f7137285dbf4dbe609ddfb91c956e)) +* **compiler:** Arbitrary-Precision Integer Arithmetic ([#1167](https://github.com/hazelgrove/grain/issues/1167)) ([6f34de2](https://github.com/hazelgrove/grain/commit/6f34de214b28358ea1df553685fa3a19336ddba9)) +* **compiler:** Call known functions across module boundaries ([#1175](https://github.com/hazelgrove/grain/issues/1175)) ([b2d7440](https://github.com/hazelgrove/grain/commit/b2d744034ec7e0601554531c910e9d0f5451d464)) +* **compiler:** Callee-owned values ([#803](https://github.com/hazelgrove/grain/issues/803)) ([c242e89](https://github.com/hazelgrove/grain/commit/c242e89767788e590f053c3d3ddfa7208387c247)) +* **compiler:** Convert `runtime/dataStructures.gr` to primitives ([#1145](https://github.com/hazelgrove/grain/issues/1145)) ([2d43b28](https://github.com/hazelgrove/grain/commit/2d43b286141df75f6b92300e48d2bc4804014872)) +* **compiler:** Convert Sys libraries to [@unsafe](https://github.com/unsafe) ([#1272](https://github.com/hazelgrove/grain/issues/1272)) ([fcdfc2a](https://github.com/hazelgrove/grain/commit/fcdfc2a815be889d5f0424a04dd5b2373dbd983b)) +* **compiler:** Don't close over global values ([#1134](https://github.com/hazelgrove/grain/issues/1134)) ([e8caec6](https://github.com/hazelgrove/grain/commit/e8caec6c2a5892e955c8827b18d8d436bebe6073)) +* **compiler:** Improve assert messages to contain location information ([#737](https://github.com/hazelgrove/grain/issues/737)) ([26f645b](https://github.com/hazelgrove/grain/commit/26f645ba5f3be20d5db3a0933165bb6346d06b9d)) +* **compiler:** Inline not `(!)` operator ([#937](https://github.com/hazelgrove/grain/issues/937)) ([3f5e9a9](https://github.com/hazelgrove/grain/commit/3f5e9a962ec8565f4fb79a1ee36d7b492da5cf11)) +* **compiler:** Re-implement Grain parser ([#1033](https://github.com/hazelgrove/grain/issues/1033)) ([9dc3c96](https://github.com/hazelgrove/grain/commit/9dc3c96f87a0b2affe9db36e1b03360d198f79f1)) +* **compiler:** Stack-allocated Chars ([#1103](https://github.com/hazelgrove/grain/issues/1103)) ([095385e](https://github.com/hazelgrove/grain/commit/095385e7c67bbc7a417a21acaf6f1c498c75ce63)) +* Export number runtime functions as operators & deprecate old identifiers ([#629](https://github.com/hazelgrove/grain/issues/629)) ([b99441a](https://github.com/hazelgrove/grain/commit/b99441aebc8c6d643be460177277112428e7cf58)) +* Grain implementation of Char and String libraries ([#559](https://github.com/hazelgrove/grain/issues/559)) ([7424cc5](https://github.com/hazelgrove/grain/commit/7424cc5befe5c3416c26c5e943cc064329eac025)) +* Grain implementation of hashing ([#557](https://github.com/hazelgrove/grain/issues/557)) ([40723fc](https://github.com/hazelgrove/grain/commit/40723fca645f147b98eea83ffc11bd53359ce29a)) +* Grain wasi bindings ([#562](https://github.com/hazelgrove/grain/issues/562)) ([323006b](https://github.com/hazelgrove/grain/commit/323006b7a3e12194b252bcbad2ef8a3eb8e1f043)) +* **graindoc:** Add `--current-version` flag, required for since/history attributes ([#1116](https://github.com/hazelgrove/grain/issues/1116)) ([0f681ea](https://github.com/hazelgrove/grain/commit/0f681ea140749395f3ce99a460f30778537183ac)) +* **graindoc:** Add support for deprecated attribute ([#751](https://github.com/hazelgrove/grain/issues/751)) ([8540c73](https://github.com/hazelgrove/grain/commit/8540c73f26b9ed4cdd1a68ea671ad4b54d5ca0b2)) +* **graindoc:** Allow directory input & output ([#1263](https://github.com/hazelgrove/grain/issues/1263)) ([d4cb8ab](https://github.com/hazelgrove/grain/commit/d4cb8abcb4accafeb3cae0bac77eee9a365e464d)) +* **graindoc:** Support `[@since](https://github.com/since)` and `[@history](https://github.com/history)` attributes ([#785](https://github.com/hazelgrove/grain/issues/785)) ([9386f46](https://github.com/hazelgrove/grain/commit/9386f46304ad958c29bb099570f06193911f7131)) +* **grainfmt:** Allow directory input & output ([#1274](https://github.com/hazelgrove/grain/issues/1274)) ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **grainfmt:** Replace `--in-place` flag with `-o` flag ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Implement Bytes type and Bytes stdlib ([#633](https://github.com/hazelgrove/grain/issues/633)) ([4b81898](https://github.com/hazelgrove/grain/commit/4b81898d4cf17b34dc35e975b228b08b53d81a2a)) +* Implement Grain array methods in Grain instead of the compiler ([#660](https://github.com/hazelgrove/grain/issues/660)) ([b1397fa](https://github.com/hazelgrove/grain/commit/b1397fae4c49a6b6789cbacc4f14ec6ee484c483)) +* Implement support for printing in Grain ([#561](https://github.com/hazelgrove/grain/issues/561)) ([bfe471c](https://github.com/hazelgrove/grain/commit/bfe471c668ee5838bde8a307bfc0f5d650a9b594)) +* **linker:** Add better error for failed wasi polyfill import ([3d8f70c](https://github.com/hazelgrove/grain/commit/3d8f70cc8255075a462d892fdfcfe30d48c599f0)) +* Rename Queue/Stack functions & deprecate old identifiers ([#635](https://github.com/hazelgrove/grain/issues/635)) ([3a8da65](https://github.com/hazelgrove/grain/commit/3a8da654f2f3a032e3413a44f543b79dc3ee23e1)) +* **stdlib:** add `Queue.size` and `Stack.size` ([#647](https://github.com/hazelgrove/grain/issues/647)) ([82ed533](https://github.com/hazelgrove/grain/commit/82ed5336c3c5ab0679f5a2db2172084ec08ce411)) +* **stdlib:** Add Array.reverse() function ([#698](https://github.com/hazelgrove/grain/issues/698)) ([538e987](https://github.com/hazelgrove/grain/commit/538e987d9828b0851d0cc14a26c8b5815f012f5b)) +* **stdlib:** Add Array.slice function ([#727](https://github.com/hazelgrove/grain/issues/727)) ([66319ca](https://github.com/hazelgrove/grain/commit/66319ca8f3bbeb80e18525d1c15e2b84f0abd0c1)) +* **stdlib:** Add Array.unzip function ([#699](https://github.com/hazelgrove/grain/issues/699)) ([cb9b49e](https://github.com/hazelgrove/grain/commit/cb9b49e5d3110a6c23c72065ee306a5ba7ee27af)) +* **stdlib:** Add Array.zip function ([#719](https://github.com/hazelgrove/grain/issues/719)) ([1dc7f56](https://github.com/hazelgrove/grain/commit/1dc7f56b8d4edafe0b720e031793d01b7d471855)) +* **stdlib:** Add buffer module ([627f181](https://github.com/hazelgrove/grain/commit/627f181e38a843d86a52f55b0d0a4fc02b14fc46)) +* **stdlib:** Add Conv.wasmI32ToNumber function ([#978](https://github.com/hazelgrove/grain/issues/978)) ([c93ade8](https://github.com/hazelgrove/grain/commit/c93ade873b51acca556e19a7483a5f29b4b6caa9)) +* **stdlib:** Add cycle function to Array module ([#993](https://github.com/hazelgrove/grain/issues/993)) ([c595622](https://github.com/hazelgrove/grain/commit/c595622b28366655dfd5447270e8f9fc3f988a67)) +* **stdlib:** Add Float32/Float64 constants for infinity/nan ([#720](https://github.com/hazelgrove/grain/issues/720)) ([4ff3b9f](https://github.com/hazelgrove/grain/commit/4ff3b9f99369e9b69a0b29299c89050180bbf8ec)) +* **stdlib:** Add GrainDoc to Array module ([#763](https://github.com/hazelgrove/grain/issues/763)) ([155c3e8](https://github.com/hazelgrove/grain/commit/155c3e835850472529f21401a138b69bb5ff7318)) +* **stdlib:** Add List.join and Array.join functions ([#722](https://github.com/hazelgrove/grain/issues/722)) ([01a64b6](https://github.com/hazelgrove/grain/commit/01a64b64f2c6e5233f2e1492c75c7531d19f637b)) +* **stdlib:** Add module for pseudo-random number generation ([#921](https://github.com/hazelgrove/grain/issues/921)) ([db1fa4e](https://github.com/hazelgrove/grain/commit/db1fa4e491d35bb582beaba12157884647384a77)) +* **stdlib:** Add number constants to number libraries ([#1331](https://github.com/hazelgrove/grain/issues/1331)) ([f640ec2](https://github.com/hazelgrove/grain/commit/f640ec20aa507c83c9cde290b911d0adcb4e8254)) +* **stdlib:** add Range.map ([#674](https://github.com/hazelgrove/grain/issues/674)) ([5c33861](https://github.com/hazelgrove/grain/commit/5c33861d933e6ee0049dadd54e612c2c25d623ca)), closes [#616](https://github.com/hazelgrove/grain/issues/616) +* **stdlib:** Add Result.expect & Result.unwrap functions ([#808](https://github.com/hazelgrove/grain/issues/808)) ([c390e61](https://github.com/hazelgrove/grain/commit/c390e610e3c05eadc42aca57804a4ddb48cccff2)) +* **stdlib:** Add reverse function to String module ([#1027](https://github.com/hazelgrove/grain/issues/1027)) ([df761db](https://github.com/hazelgrove/grain/commit/df761db55b3e14e31190090ae008ce5047135c09)) +* **stdlib:** Add rotate function in Array module ([#838](https://github.com/hazelgrove/grain/issues/838)) ([98fc577](https://github.com/hazelgrove/grain/commit/98fc577ee754317cd2421bfaa8e3c1e049488949)) +* **stdlib:** Add sign function to Number module ([#1079](https://github.com/hazelgrove/grain/issues/1079)) ([b6483d5](https://github.com/hazelgrove/grain/commit/b6483d5046cd1b6b89a717a925594d3b20b05837)) +* **stdlib:** Add sort function to Array module ([#1012](https://github.com/hazelgrove/grain/issues/1012)) ([9091930](https://github.com/hazelgrove/grain/commit/9091930344224925bb7b2e1ef6f879c79a5c2f62)) +* **stdlib:** Add string trim functions to String module ([#951](https://github.com/hazelgrove/grain/issues/951)) ([e55de8f](https://github.com/hazelgrove/grain/commit/e55de8fc0335b45252da9741a80b46a702cdb5b6)) +* **stdlib:** Add String.chatAt function ([#721](https://github.com/hazelgrove/grain/issues/721)) ([94ffbbe](https://github.com/hazelgrove/grain/commit/94ffbbe0f84820d282784d62e295796ab865c837)) +* **stdlib:** Add String.encode and String.decode functions to standard library ([#683](https://github.com/hazelgrove/grain/issues/683)) ([5635a36](https://github.com/hazelgrove/grain/commit/5635a3682e88292e3623157b34323d968f6946c3)) +* **stdlib:** Add unsigned versions of Int32/Int64 comparison operations ([#831](https://github.com/hazelgrove/grain/issues/831)) ([5f20868](https://github.com/hazelgrove/grain/commit/5f20868e7b6e3f52d62c8531d99d1130ca84961e)) +* **stdlib:** Added Bytes.clear function. Avoid allocation in Buffer.clear ([#1124](https://github.com/hazelgrove/grain/issues/1124)) ([4afd17a](https://github.com/hazelgrove/grain/commit/4afd17a91e59027fa7af0fe58977bdbe942f8072)) +* **stdlib:** Convert runtime printing utils to [@unsafe](https://github.com/unsafe) ([#1135](https://github.com/hazelgrove/grain/issues/1135)) ([403e1d2](https://github.com/hazelgrove/grain/commit/403e1d20e2082fe2dcd2721f83f6c2b36d4154bf)) +* **stdlib:** Convert sys functions to return Results instead of throwing errors ([#792](https://github.com/hazelgrove/grain/issues/792)) ([35cd957](https://github.com/hazelgrove/grain/commit/35cd957d9c04d84d9f12b54cd2882a6bbc67c175)) +* **stdlib:** Export coerceNumberToWasmI32/I64/F32/F64 from Number runtime ([#713](https://github.com/hazelgrove/grain/issues/713)) ([9353f0b](https://github.com/hazelgrove/grain/commit/9353f0b103f6fd047230a55eb6bdede95fccceb2)) +* **stdlib:** forEachCodePoint and forEachCodePointi ([#766](https://github.com/hazelgrove/grain/issues/766)) ([b95cfb7](https://github.com/hazelgrove/grain/commit/b95cfb77fd2f248f611f2b6a55d58d67ee800859)) +* **stdlib:** Implement initial Number library ([#687](https://github.com/hazelgrove/grain/issues/687)) ([4a71209](https://github.com/hazelgrove/grain/commit/4a7120964a31602f763b31064e112cfeaa4d1d38)) +* **stdlib:** Implement List.sort via mergesort ([#1014](https://github.com/hazelgrove/grain/issues/1014)) ([a076e20](https://github.com/hazelgrove/grain/commit/a076e200013114ccf16c2e6cbe814af1ec09c1ce)) +* **stdlib:** Implement Number.sin and Number.cos ([#1343](https://github.com/hazelgrove/grain/issues/1343)) ([9357126](https://github.com/hazelgrove/grain/commit/93571267b7df53e1cb9f61eaebf8748885e7392c)) +* **stdlib:** Int32/64 clz, ctz, popcnt, rotl, rotr, eq, ne, eqz ([#807](https://github.com/hazelgrove/grain/issues/807)) ([ffddc51](https://github.com/hazelgrove/grain/commit/ffddc512d2c2879b76486f9d7a91621cebb064bd)) +* **stdlib:** Number utilities isNaN, isFinite, and isInfinite ([#729](https://github.com/hazelgrove/grain/issues/729)) ([b907da7](https://github.com/hazelgrove/grain/commit/b907da7a9e2e7fdbf5d9f376533fbec21458017e)) +* **stdlib:** Number.parseInt ([#1051](https://github.com/hazelgrove/grain/issues/1051)) ([abafb58](https://github.com/hazelgrove/grain/commit/abafb587e54219a32ed77ba09863bb2d6a80bac8)) +* **stdlib:** Optimized coerceNumberToWasmI32. ([#782](https://github.com/hazelgrove/grain/issues/782)) ([98e86ae](https://github.com/hazelgrove/grain/commit/98e86ae98fff4b9b3d07f2815477762d2d797e30)) +* **stdlib:** Provide Bytes hash implementation ([#853](https://github.com/hazelgrove/grain/issues/853)) ([ec7d902](https://github.com/hazelgrove/grain/commit/ec7d902e900e57a0e3e6fb2a9c16e8c578a1ba47)) +* **stdlib:** Regular Expressions ([#680](https://github.com/hazelgrove/grain/issues/680)) ([9601e16](https://github.com/hazelgrove/grain/commit/9601e1655f1ffc76b700efef317366457c5614ef)) +* **stdlib:** String.encodeAtHelp bounds checks and optimization ([#764](https://github.com/hazelgrove/grain/issues/764)) ([27fccae](https://github.com/hazelgrove/grain/commit/27fccae0ffbfd4cd60cd64f60927ca4a1a7b9fae)) +* Support \b, \f, \t, and \v escapes ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* Update assignment semantics ([#560](https://github.com/hazelgrove/grain/issues/560)) ([03a3217](https://github.com/hazelgrove/grain/commit/03a3217fb7bc755407917991e0ebac3a66ea071e)) +* Use Grain exceptions instead of JS exceptions ([#565](https://github.com/hazelgrove/grain/issues/565)) ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) + + +### Bug Fixes + +* `export *` with exceptions ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) +* Add [@disable](https://github.com/disable)GC annotation to WasmXX-using getSize function in Bytes ([#771](https://github.com/hazelgrove/grain/issues/771)) ([bc4146b](https://github.com/hazelgrove/grain/commit/bc4146b426860f519d4fb7bb4e8345e227dffc69)) +* Adjust Number equality, thus that 5 == 5.0 ([#726](https://github.com/hazelgrove/grain/issues/726)) ([04aef16](https://github.com/hazelgrove/grain/commit/04aef163b862588e5d7f699fc33e0810625ab22a)) +* **cli:** Ensure parent flags are inherited by the format command ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* **compiler:** Ensure TExpApp is always expansive in Grain ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Handle let-mut value restriction, such that mutable lets are always expansive ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** properly handle special float equality ([#664](https://github.com/hazelgrove/grain/issues/664)) ([b63597a](https://github.com/hazelgrove/grain/commit/b63597a2a0a490015b2af0668894ed9c9afb81ce)) +* **compiler:** Properly handle value restriction on function application & mutable vars ([#988](https://github.com/hazelgrove/grain/issues/988)) ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **compiler:** Refactor function return value incRef logic ([#765](https://github.com/hazelgrove/grain/issues/765)) ([97fbe3d](https://github.com/hazelgrove/grain/commit/97fbe3dd6615b07db249eae5946a6dfeebcec3c0)) +* **compiler:** Strip leading line asterisks in block and doc comments ([#740](https://github.com/hazelgrove/grain/issues/740)) ([45d8564](https://github.com/hazelgrove/grain/commit/45d85644e2b686462ef58dcee608a19058c4a2d1)) +* Fix parsing of '\'' char literal ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* **graindoc:** Add parens around infix operators in titles ([#1303](https://github.com/hazelgrove/grain/issues/1303)) ([acba9c1](https://github.com/hazelgrove/grain/commit/acba9c1757688756c3ca98b22a0a159b8d8f9e7d)) +* **graindoc:** Ensure value_description is resolved to outcome before printing ([#1070](https://github.com/hazelgrove/grain/issues/1070)) ([5eb05cc](https://github.com/hazelgrove/grain/commit/5eb05cc2dedc3b933e194be86dd5d3c3656d6490)) +* **graindoc:** Preserve indentation in Doc comments during trim ([#1119](https://github.com/hazelgrove/grain/issues/1119)) ([b8a6d57](https://github.com/hazelgrove/grain/commit/b8a6d57cce274bfbc2cc16c5b25215b042d4264c)) +* **graindoc:** Remove spaces between parens and infix idents ([#1302](https://github.com/hazelgrove/grain/issues/1302)) ([95e596f](https://github.com/hazelgrove/grain/commit/95e596fa3fdae5a8a0e07d76ff8c11eeab99e8d7)) +* **graindoc:** Use value_descriptions and type_declarations defined by the module signature ([#1241](https://github.com/hazelgrove/grain/issues/1241)) ([5896242](https://github.com/hazelgrove/grain/commit/5896242c324622f3329c144bd2c9642aade9d049)) +* **grainfmt:** Indent function application args when adding parens ([#1095](https://github.com/hazelgrove/grain/issues/1095)) ([64af7d3](https://github.com/hazelgrove/grain/commit/64af7d387dca2fddb9b3d190ccdf5790ec3d8e65)) +* **grainfmt:** Remove parens around annotated types ([#1109](https://github.com/hazelgrove/grain/issues/1109)) ([0ca66bd](https://github.com/hazelgrove/grain/commit/0ca66bd43703826f86ef5b28b49d250af219fb0b)) +* Properly escape quoted strings in toString/print ([#670](https://github.com/hazelgrove/grain/issues/670)) ([c5d3e44](https://github.com/hazelgrove/grain/commit/c5d3e44981b4456bbb9c9c63ef5f46721cb4a8c7)) +* Properly incRef exception printers ([#581](https://github.com/hazelgrove/grain/issues/581)) ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Properly initialize malloc free list ([#700](https://github.com/hazelgrove/grain/issues/700)) ([0576fd9](https://github.com/hazelgrove/grain/commit/0576fd9be8dbfecc5d7081731a1c5bedee32f9f1)) +* Reduce reduntant memory loads in Malloc.free ([#747](https://github.com/hazelgrove/grain/issues/747)) ([a5817b1](https://github.com/hazelgrove/grain/commit/a5817b10fc0c7170ab75d03f0e2cc2abae8f77c6)) +* **runtime:** Add types to boxed GC functions to avoid weak type errors ([ef0a69f](https://github.com/hazelgrove/grain/commit/ef0a69fb4418d318b3227e5db7e743a026762274)) +* **runtime:** Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly ([04aef16](https://github.com/hazelgrove/grain/commit/04aef163b862588e5d7f699fc33e0810625ab22a)) +* **runtime:** Return correct pointer to morecore ([#602](https://github.com/hazelgrove/grain/issues/602)) ([af39cc4](https://github.com/hazelgrove/grain/commit/af39cc46c8e12d869aaf5c42c0a3fd2afbc61638)) +* **stdlib:** Add bounds checking to Buffer addStringSlice & addBytesSlice ([#1065](https://github.com/hazelgrove/grain/issues/1065)) ([06fe512](https://github.com/hazelgrove/grain/commit/06fe512e863aeeb855ccf3e3b83bcd3bc8854723)) +* **stdlib:** Add explicit void return type on Map.forEach ([#1220](https://github.com/hazelgrove/grain/issues/1220)) ([ab2066a](https://github.com/hazelgrove/grain/commit/ab2066aadffa8813344d9df7c7a10ec0f76751b6)) +* **stdlib:** Add explicit void return type on Set.forEach ([#1225](https://github.com/hazelgrove/grain/issues/1225)) ([694e6cf](https://github.com/hazelgrove/grain/commit/694e6cf8fcd061a77b2915dc0ea9e9b1ae143ae4)) +* **stdlib:** Align Buffer's `addStringSlice` API with String's `slice` ([#1136](https://github.com/hazelgrove/grain/issues/1136)) ([0c7cb82](https://github.com/hazelgrove/grain/commit/0c7cb820d49cda74598680cc614c0d893b4d2b40)) +* **stdlib:** Annotate generic types in Buffer ([#876](https://github.com/hazelgrove/grain/issues/876)) ([ad46b9e](https://github.com/hazelgrove/grain/commit/ad46b9e6b0d2d9d562b56e5cbf1ae6751028d93a)) +* **stdlib:** Avoid `Pervasives.(!=)` references on WasmI32 values ([#759](https://github.com/hazelgrove/grain/issues/759)) ([0f42544](https://github.com/hazelgrove/grain/commit/0f42544597c628454bede14fd82542331211dab8)) +* **stdlib:** Buffer.toBytes should not expose the raw instance of Bytes used by the buffer ([#1130](https://github.com/hazelgrove/grain/issues/1130)) ([d2bb585](https://github.com/hazelgrove/grain/commit/d2bb585d3e2092f1331a679f4e84a9500b8c87a5)) +* **stdlib:** Correct fdPwrite return value ([#875](https://github.com/hazelgrove/grain/issues/875)) ([ceaf6af](https://github.com/hazelgrove/grain/commit/ceaf6af52889f5d7c8a16df9a5a9ae5ff6752105)) +* **stdlib:** Correct type signatures on some Array functions ([#880](https://github.com/hazelgrove/grain/issues/880)) ([04bf4d3](https://github.com/hazelgrove/grain/commit/04bf4d3066cf80de8cb3da834124e29558c6d21a)) +* **stdlib:** Correctly indent nested record braces when printing ([#724](https://github.com/hazelgrove/grain/issues/724)) ([05f795d](https://github.com/hazelgrove/grain/commit/05f795dcbf77642070eae1613492d701d7b78113)) +* **stdlib:** decodeRangeHelp equality check in String module ([#735](https://github.com/hazelgrove/grain/issues/735)) ([42a03ca](https://github.com/hazelgrove/grain/commit/42a03ca7a13187f69107e920ee25d026fd467f61)) +* **stdlib:** Ensure Void return for forEach functions in List module ([#1307](https://github.com/hazelgrove/grain/issues/1307)) ([31f480c](https://github.com/hazelgrove/grain/commit/31f480c22e0a39b347fc3a48e1d0b5bd40c2f19e)) +* **stdlib:** fdWrite range error ([#677](https://github.com/hazelgrove/grain/issues/677)) ([73e0a7a](https://github.com/hazelgrove/grain/commit/73e0a7a1d5d393dd4b050275b68b949a14fe9936)) +* **stdlib:** Fix Char.code memory issue ([#928](https://github.com/hazelgrove/grain/issues/928)) ([dfa31d8](https://github.com/hazelgrove/grain/commit/dfa31d8aa60a41d08494f3817bdb628a30d83f41)) +* **stdlib:** Fix float printing in dtoa ([#1165](https://github.com/hazelgrove/grain/issues/1165)) ([2987210](https://github.com/hazelgrove/grain/commit/2987210648873ab474990ff2b7146a489fecb268)) +* **stdlib:** Fix issue with list printing ([#894](https://github.com/hazelgrove/grain/issues/894)) ([e2a33a9](https://github.com/hazelgrove/grain/commit/e2a33a9607bd076abbf6375389f1a7896775e6bc)) +* **stdlib:** Fix memory issue in list printing ([#912](https://github.com/hazelgrove/grain/issues/912)) ([3e0a805](https://github.com/hazelgrove/grain/commit/3e0a8059a36d1042fa06d6aed54565ced116fd87)) +* **stdlib:** Fix memory leaks in Char stdlib ([#929](https://github.com/hazelgrove/grain/issues/929)) ([99cc94b](https://github.com/hazelgrove/grain/commit/99cc94b3e2010c7fa6b2c244758dbbe13e43f903)) +* **stdlib:** Fix String.encode GC ([#1067](https://github.com/hazelgrove/grain/issues/1067)) ([0ab38c9](https://github.com/hazelgrove/grain/commit/0ab38c9f4aa0ee84688ba5c6bec1521b380d38b1)) +* **stdlib:** Fixed a memory leak in Buffer.addStringSlice. ([#1122](https://github.com/hazelgrove/grain/issues/1122)) ([c4e1911](https://github.com/hazelgrove/grain/commit/c4e19110bd9923e58a7953fcbcef18bf07f3efd6)) +* **stdlib:** Fixed length and byteLength for strings over 2GiB. ([#1126](https://github.com/hazelgrove/grain/issues/1126)) ([08a9487](https://github.com/hazelgrove/grain/commit/08a948709270a9aa4ac853c2887bc652c4734f36)) +* **stdlib:** Fixed memory leak in String.explode ([#1001](https://github.com/hazelgrove/grain/issues/1001)) ([c479a05](https://github.com/hazelgrove/grain/commit/c479a05f48abcc4c9e98d5cf0ba698230d41031b)) +* **stdlib:** Fixed memory leak in the print function. ([#770](https://github.com/hazelgrove/grain/issues/770)) ([df094f1](https://github.com/hazelgrove/grain/commit/df094f1ab412a03302aaf9fcb6ac14bd24cd85b2)) +* **stdlib:** Fixed String.writeUtf8CodePoint for two byte sequences. ([#786](https://github.com/hazelgrove/grain/issues/786)) ([20b1a77](https://github.com/hazelgrove/grain/commit/20b1a770fe4dd5302a92c763c4748fd501b41c96)) +* **stdlib:** Make Bytes.length handle sizes over 2GiB ([#1123](https://github.com/hazelgrove/grain/issues/1123)) ([d7386eb](https://github.com/hazelgrove/grain/commit/d7386eb36c32452d69a734b447015b4db23f1ac4)) +* **stdlib:** Make toNumber functions respect Number invariants ([#1347](https://github.com/hazelgrove/grain/issues/1347)) ([78db882](https://github.com/hazelgrove/grain/commit/78db8820cf5667a4d6737c9109f4223c1348b245)) +* **stdlib:** Premature free in toString ([#863](https://github.com/hazelgrove/grain/issues/863)) ([eec0f09](https://github.com/hazelgrove/grain/commit/eec0f092987cd6c9ddd7519b139596611dd84d7c)) +* **stdlib:** Provide correct types for BigInt operations ([#1297](https://github.com/hazelgrove/grain/issues/1297)) ([fdd2f1c](https://github.com/hazelgrove/grain/commit/fdd2f1c49b938a013d6ae199b5e662cb93d051e6)) +* **stdlib:** Remove fd_sync calls that are not used ([#846](https://github.com/hazelgrove/grain/issues/846)) ([3d8f70c](https://github.com/hazelgrove/grain/commit/3d8f70cc8255075a462d892fdfcfe30d48c599f0)) +* **stdlib:** Remove intermediate resizes in Buffer.autogrow ([#1125](https://github.com/hazelgrove/grain/issues/1125)) ([c1695d0](https://github.com/hazelgrove/grain/commit/c1695d066ccd40b3118c5c870353addeef67bfc1)) +* **stdlib:** Removed memory leak in Hash module ([#1045](https://github.com/hazelgrove/grain/issues/1045)) ([01a81c6](https://github.com/hazelgrove/grain/commit/01a81c6a2573cca94b2d57d0fc70693d39f810a1)) +* **stdlib:** Removed memory leaks in Buffer module ([#1047](https://github.com/hazelgrove/grain/issues/1047)) ([d33017b](https://github.com/hazelgrove/grain/commit/d33017b37e988d3facbca2e30e3de4fb8c7b5b8a)) +* **stdlib:** Respect callee-owned convention in sys/xx modules ([35cd957](https://github.com/hazelgrove/grain/commit/35cd957d9c04d84d9f12b54cd2882a6bbc67c175)) +* **stdlib:** Return proper values from getClockTime for Sys/Time ([#705](https://github.com/hazelgrove/grain/issues/705)) ([cab0ce7](https://github.com/hazelgrove/grain/commit/cab0ce7ef9cd5eca7ce8e9302915f1b3e7283143)) +* **stdlib:** String.writeUtf8CodePoint should write 3 bytes for code point 0xFFFF. ([#781](https://github.com/hazelgrove/grain/issues/781)) ([e8f399c](https://github.com/hazelgrove/grain/commit/e8f399c2388aa0a21531127a4ea7ea82c1e2ee7b)) +* **stdlib:** Support arrays of any type in Array rotate ([#1048](https://github.com/hazelgrove/grain/issues/1048)) ([3ceb1cf](https://github.com/hazelgrove/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Support empty arrays in Array rotate ([3ceb1cf](https://github.com/hazelgrove/grain/commit/3ceb1cf04c1604f49077e8733dcccb6cdaaf9f3a)) +* **stdlib:** Use explicit exports for Pervasives ([#1301](https://github.com/hazelgrove/grain/issues/1301)) ([bad5897](https://github.com/hazelgrove/grain/commit/bad5897062444ec4d4ace805adcd382725b86125)) +* **stdlib:** Use random seed for hash module ([#854](https://github.com/hazelgrove/grain/issues/854)) ([a1a42d8](https://github.com/hazelgrove/grain/commit/a1a42d89893fe97e8557c34a8d8e1884735299bc)) +* **tests:** Fix mistaken `==` in WasmI32 tests ([0f42544](https://github.com/hazelgrove/grain/commit/0f42544597c628454bede14fd82542331211dab8)) +* Throwing an exception now traps immediately in all cases ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* Use Is instead of Eq for match variant comparison ([1f1cd4a](https://github.com/hazelgrove/grain/commit/1f1cd4a90f853a2c6290e736043d008643f768f7)) + + +### Reverts + +* "chore!: rename Queue/Stack lib methods ([#625](https://github.com/hazelgrove/grain/issues/625))" ([#632](https://github.com/hazelgrove/grain/issues/632)) ([c9af90e](https://github.com/hazelgrove/grain/commit/c9af90e77e5c5bb9649b8072b9cdff16ae2d1e60)) + + +### Miscellaneous Chores + +* **compiler:** Remove decRefIgnoreZeros ([#1068](https://github.com/hazelgrove/grain/issues/1068)) ([3ae8eaa](https://github.com/hazelgrove/grain/commit/3ae8eaabad4467304c500c2f0cc9c40749d8513b)) +* Drop node 14 support ([#1092](https://github.com/hazelgrove/grain/issues/1092)) ([ef4358f](https://github.com/hazelgrove/grain/commit/ef4358ff7de14a35edf3e971e04513d497fe1574)) +* **grainfmt:** Remove stdin formatting support ([d3e7a33](https://github.com/hazelgrove/grain/commit/d3e7a33b01352a9c2bcc3b17a5b2995451d92221)) +* Rename `registerBasePrinter` to `dangerouslyRegisterBasePrinter` in runtime/exception ([61c2a94](https://github.com/hazelgrove/grain/commit/61c2a94dbe38ff074e6b53395c403d30996b60a0)) +* rename Queue/Stack lib methods ([#625](https://github.com/hazelgrove/grain/issues/625)) ([8117592](https://github.com/hazelgrove/grain/commit/8117592dbaa09b4443003f234b6a2dcadb235a8b)) +* **stdlib:** Add type aliases to regex lib ([#1036](https://github.com/hazelgrove/grain/issues/1036)) ([a926ea5](https://github.com/hazelgrove/grain/commit/a926ea5cafa18e46487a585abbdf5460b15b4f48)) +* **stdlib:** Remove `sum` function from the List module ([#1300](https://github.com/hazelgrove/grain/issues/1300)) ([9101615](https://github.com/hazelgrove/grain/commit/9101615688f20310ae32573f93f36cfcf5c69be1)) +* **stdlib:** Remove deprecated functions ([#812](https://github.com/hazelgrove/grain/issues/812)) ([7b74208](https://github.com/hazelgrove/grain/commit/7b7420860b588862e1947c6fc9860b5bbaf1ff75)) +* **stdlib:** Replace JS entrypoint with locator file ([#586](https://github.com/hazelgrove/grain/issues/586)) ([a9ec7e2](https://github.com/hazelgrove/grain/commit/a9ec7e237f22fe4eb507919972f4c41aa5eed55b)) + ### [0.5.2](https://github.com/grain-lang/grain/compare/stdlib-v0.5.1...stdlib-v0.5.2) (2022-06-29) diff --git a/stdlib/package.json b/stdlib/package.json index 27511b10..7a10037e 100644 --- a/stdlib/package.json +++ b/stdlib/package.json @@ -1,6 +1,6 @@ { "name": "@grain/stdlib", - "version": "0.5.2", + "version": "0.6.0", "description": "The standard library for the Grain language.", "license": "MIT", "homepage": "https://grain-lang.org",