Releases: grain-lang/grain
Releases · grain-lang/grain
Grain v0.4.2
@grain/cli cli-v0.4.2
Dependencies
- The following workspace dependencies were updated
- dependencies
- @grain/stdlib bumped from ^0.4.0 to ^0.4.1
- dependencies
@grain/compiler @grain/compiler-v0.4.1
@grain/stdlib stdlib-v0.4.0
⚠ BREAKING CHANGES
- 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)
Features
- compiler: Add --no-bulk-memory flag to polyfill bulk memory ops (#819) (7db4ea6)
- compiler: Add typed well-formedness pass which forbids usage of WasmXX values outside of
[@disable](https://www.github.com/disable)GC
context (#772) (42fbad6) - compiler: Callee-owned values (#803) (c242e89)
- compiler: Improve assert messages to contain location information (#737) (26f645b)
- graindoc: Add support for deprecated attribute (#751) (8540c73)
- graindoc: Support
[@since](https://www.github.com/since)
and[@history](https://www.github.com/history)
attributes (#785) (9386f46) - linker: Add better error for failed wasi polyfill import (3d8f70c)
- stdlib: Add Array.reverse() function (#698) (538e987)
- stdlib: Add Array.slice function (#727) (66319ca)
- stdlib: Add Array.unzip function (#699) (cb9b49e)
- stdlib: Add Array.zip function (#719) (1dc7f56)
- stdlib: Add buffer module (627f181)
- stdlib: Add Float32/Float64 constants for infinity/nan (#720) (4ff3b9f)
- stdlib: Add GrainDoc to Array module (#763) (155c3e8)
- stdlib: Add List.join and Array.join functions (#722) (01a64b6)
- stdlib: Add Result.expect & Result.unwrap functions (#808) (c390e61)
- stdlib: Add String.chatAt function (#721) (94ffbbe)
- stdlib: Add String.encode and String.decode functions to standard library (#683) (5635a36)
- stdlib: Convert sys functions to return Results instead of throwing errors (#792) (35cd957)
- stdlib: Export coerceNumberToWasmI32/I64/F32/F64 from Number runtime (#713) (9353f0b)
- stdlib: forEachCodePoint and forEachCodePointi (#766) (b95cfb7)
- stdlib: Implement initial Number library (#687) (4a71209)
- stdlib: Int32/64 clz, ctz, popcnt, rotl, rotr, eq, ne, eqz (#807) (ffddc51)
- stdlib: Number utilities isNaN, isFinite, and isInfinite (#729) (b907da7)
- stdlib: Optimized coerceNumberToWasmI32. (#782) (98e86ae)
- stdlib: Provide Bytes hash implementation (#853) (ec7d902)
- stdlib: String.encodeAtHelp bounds checks and optimization (#764) (27fccae)
Bug Fixes
- Add @disableGC annotation to WasmXX-using getSize function in Bytes (#771) (bc4146b)
- Adjust Number equality, thus that 5 == 5.0 (#726) (04aef16)
- compiler: Refactor function return value incRef logic (#765) (97fbe3d)
- compiler: Strip leading line asterisks in block and doc comments (#740) (45d8564)
- Properly initialize malloc free list (#700) (0576fd9)
- Reduce reduntant memory loads in Malloc.free (#747) (a5817b1)
- runtime: Fix bug in equalHelp preventing simpleNum/boxedNum equality checks from happening correctly (04aef16)
- stdlib: Avoid
Pervasives.(!=)
references on WasmI32 values (#759) (0f42544) - stdlib: Correctly indent nested record braces when printing (#724) (05f795d)
- stdlib: decodeRangeHelp equality check in String module (#735) (42a03ca)
- stdlib: Fixed memory leak in the print function. (#770) (df094f1)
- stdlib: Fixed String.writeUtf8CodePoint for two byte sequences. (#786) (20b1a77)
- stdlib: Premature free in toString (#863) (eec0f09)
- stdlib: Remove fd_sync calls that are not used (#846) (3d8f70c)
- stdlib: Respect callee-owned convention in sys/xx modules (35cd957)
- stdlib: Return proper values from getClockTime for Sys/Time ([#705](https://www.github.com/grain-lang/grain...
@grain/js-runner js-runner-v0.4.0
⚠ BREAKING CHANGES
- 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
Bug Fixes
- js-runner: Add default object for destructuring (#833) (ab96fd6)
- js-runner: Monkeypatch fs_write in browser environment (#832) (330b56f)
Miscellaneous Chores
Grain v0.4.1
Grain v0.4.0 - Cereal
⚠ BREAKING CHANGES
- 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)
Features
- Add format command to the Grain CLI (#829) (9334b71)
- Add GrainDoc for markdown generation using doc comments (#574) (558d5e2)
- cli: Add
grain doc
command (558d5e2) - cli: Split -g into --debug and --wat (#620) (79809bb)
- compiler: Add --no-bulk-memory flag to polyfill bulk memory ops (#819) (7db4ea6)
- compiler: Add --wasi-polyfill flag for custom implementations (#800) (6879286)
- compiler: Add Comments module to Grain_diagnostics (558d5e2)
- compiler: Add Markdown module to Grain_utils (558d5e2)
- compiler: Add Range module to Grain_utils (558d5e2)
- compiler: Add typed well-formedness pass which forbids usage of WasmXX values outside of
[@disable](https://www.github.com/disable)GC
context (#772) (42fbad6) - compiler: Allow disabling Binaryen optimizations (#780) (a6c929c)
- compiler: Call known functions directly (#777) (ad282be)
- compiler: Callee-owned values (#803) (c242e89)
- compiler: Emit a warning when using Pervasives.(!=) with unsafe Wasm types (#758) (1041e38)
- compiler: Emit a warning when using Pervasives.(==) with unsafe Wasm types (#742) (8b00055)
- compiler: Improve assert messages to contain location information (#737) (26f645b)
- compiler: List exports in wasm_utils (#845) (4fea67b)
- compiler: Remove user manual memory management calls when --no-gc supplied (#817) (92efd40)
- compiler: Universal WebAssembly initial and maximum pages flags (#668) (ec9c0e2)
- graindoc: Add support for deprecated attribute (#751) (8540c73)
- graindoc: Add support for extra information in module docblock (#809) (f28d234)
- graindoc: Support
[@since](https://www.github.com/since)
and[@history](https://www.github.com/history)
attributes (#785) (9386f46) - linker: Add --use-start-section flag to use start section in output (#844) (c221834)
- linker: Add better error for failed wasi polyfill import (3d8f70c)
- stdlib: Add Array.reverse() function (#698) (538e987)
- stdlib: Add Array.slice function (#727) (66319ca)
- stdlib: Add Array.unzip function (#699) (cb9b49e)
- stdlib: Add Array.zip function (#719) (1dc7f56)
- stdlib: Add buffer module (627f181)
- stdlib: Add Float32/Float64 constants for infinity/nan (#720) (4ff3b9f)
- stdlib: Add GrainDoc to Array module (#763) (155c3e8)
- stdlib: Add List.join and Array.join functions (#722) (01a64b6)
- stdlib: Add Result.expect & Result.unwrap functions (#808) (c390e61)
- stdlib: Add String.chatAt function (#721) (94ffbbe)
- stdlib: Add String.encode and String.decode functions to standard library (#683) (5635a36)
- stdlib: Convert sys functions to return Results instead of throwing errors (#792) (35cd957)
- stdlib: Export coerceNumberToWasmI32/I64/F32/F64 from Number runtime (#713) (9353f0b)
- stdlib: forEachCodePoint and forEachCodePointi (#766) (b95cfb7)
- stdlib: Implement initial Number library (#687) (4a71209)
- stdlib: Int32/64 clz, ctz, popcnt, rotl, rotr, eq, ne, eqz (#807) (ffddc51)
- stdlib: Number utilities isNaN, isFinite, and isInfinite ([#729](https://www.github.com/grain-lang/grain/issu...
@grain/cli cli-v0.4.1
@grain/cli cli-v0.4.0
⚠ BREAKING CHANGES
- 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)
Features
- Add format command to the Grain CLI (#829) (9334b71)
- Add GrainDoc for markdown generation using doc comments (#574) (558d5e2)
- cli: Add
grain doc
command (558d5e2) - cli: Split -g into --debug and --wat (#620) (79809bb)
- compiler: Add --no-bulk-memory flag to polyfill bulk memory ops (#819) (7db4ea6)
- compiler: Add --wasi-polyfill flag for custom implementations (#800) (6879286)
- compiler: Add Comments module to Grain_diagnostics (558d5e2)
- compiler: Add Markdown module to Grain_utils (558d5e2)
- compiler: Add Range module to Grain_utils (558d5e2)
- compiler: Allow disabling Binaryen optimizations (#780) (a6c929c)
- compiler: Universal WebAssembly initial and maximum pages flags (#668) (ec9c0e2)
- linker: Add --use-start-section flag to use start section in output (#844) (c221834)
Miscellaneous Chores
@grain/compiler @grain/compiler-v0.4.0
⚠ BREAKING CHANGES
- 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)
Features
- Add format command to the Grain CLI (#829) (9334b71)
- Add GrainDoc for markdown generation using doc comments (#574) (558d5e2)
- cli: Add
grain doc
command (558d5e2) - cli: Split -g into --debug and --wat (#620) (79809bb)
- compiler: Add --no-bulk-memory flag to polyfill bulk memory ops (#819) (7db4ea6)
- compiler: Add --wasi-polyfill flag for custom implementations (#800) (6879286)
- compiler: Add Comments module to Grain_diagnostics (558d5e2)
- compiler: Add Markdown module to Grain_utils (558d5e2)
- compiler: Add Range module to Grain_utils (558d5e2)
- compiler: Add typed well-formedness pass which forbids usage of WasmXX values outside of
[@disable](https://www.github.com/disable)GC
context (#772) (42fbad6) - compiler: Allow disabling Binaryen optimizations (#780) (a6c929c)
- compiler: Call known functions directly (#777) (ad282be)
- compiler: Callee-owned values (#803) (c242e89)
- compiler: Emit a warning when using Pervasives.(!=) with unsafe Wasm types (#758) (1041e38)
- compiler: Emit a warning when using Pervasives.(==) with unsafe Wasm types (#742) (8b00055)
- compiler: Improve assert messages to contain location information (#737) (26f645b)
- compiler: List exports in wasm_utils (#845) (4fea67b)
- compiler: Remove user manual memory management calls when --no-gc supplied (#817) (92efd40)
- compiler: Universal WebAssembly initial and maximum pages flags (#668) (ec9c0e2)
- graindoc: Add support for deprecated attribute (#751) (8540c73)
- graindoc: Add support for extra information in module docblock (#809) (f28d234)
- graindoc: Support
[@since](https://www.github.com/since)
and[@history](https://www.github.com/history)
attributes (#785) (9386f46) - linker: Add --use-start-section flag to use start section in output (#844) (c221834)
- linker: Add better error for failed wasi polyfill import (3d8f70c)
- stdlib: Add Array.reverse() function (#698) (538e987)
- stdlib: Add Array.slice function (#727) (66319ca)
- stdlib: Add Array.unzip function (#699) (cb9b49e)
- stdlib: Add buffer module (627f181)
- stdlib: Add Float32/Float64 constants for infinity/nan (#720) (4ff3b9f)
- stdlib: Add List.join and Array.join functions (#722) (01a64b6)
- stdlib: Add Result.expect & Result.unwrap functions (#808) (c390e61)
- stdlib: Add String.chatAt function (#721) (94ffbbe)
- stdlib: Add String.encode and String.decode functions to standard library (#683) (5635a36)
- stdlib: Convert sys functions to return Results instead of throwing errors (#792) (35cd957)
- stdlib: forEachCodePoint and forEachCodePointi (#766) (b95cfb7)
- stdlib: Implement initial Number library (#687) (4a71209)
- stdlib: Int32/64 clz, ctz, popcnt, rotl, rotr, eq, ne, eqz (#807) (ffddc51)
- stdlib: Number utilities isNaN, isFinite, and isInfinite (#729) (b907da7)
- stdlib: Provide Bytes hash implementation (#853) (ec7d902)
- Support mutually recursive data definitions (#725) (4474f88)