Skip to content

Releases: grain-lang/grain

Grain v0.4.2

08 Sep 00:58
2a5ec3d
Compare
Choose a tag to compare

Bug Fixes

  • grainfmt: Remove extra spacing from type signatures (#877) (c8cf421)
  • stdlib: Annotate generic types in Buffer (#876) (ad46b9e)
  • stdlib: Correct fdPwrite return value (#875) (ceaf6af)
  • stdlib: Correct type signatures on some Array functions (#880) (04bf4d3)

@grain/cli cli-v0.4.2

08 Sep 00:58
2a5ec3d
Compare
Choose a tag to compare

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @grain/stdlib bumped from ^0.4.0 to ^0.4.1

@grain/compiler @grain/compiler-v0.4.1

08 Sep 00:58
2a5ec3d
Compare
Choose a tag to compare

Bug Fixes

  • grainfmt: Remove extra spacing from type signatures (#877) (c8cf421)

@grain/stdlib stdlib-v0.4.0

06 Sep 22:06
a7e08fd
Compare
Choose a tag to compare

⚠ 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...
Read more

@grain/js-runner js-runner-v0.4.0

06 Sep 22:06
a7e08fd
Compare
Choose a tag to compare

⚠ 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

  • compiler: Rename grainRuntime to _grainEnv (2d99c5a)
  • Refactor out references to "runtime" that aren't related to stdlib/runtime (#755) (2d99c5a)
  • Rename JS "runtime" to "js-runner"/"runner" throughout project (2d99c5a)

Grain v0.4.1

06 Sep 23:02
15416b3
Compare
Choose a tag to compare

Bug Fixes

Grain v0.4.0 - Cereal

06 Sep 22:06
a7e08fd
Compare
Choose a tag to compare

⚠ 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...
Read more

@grain/cli cli-v0.4.1

06 Sep 23:02
15416b3
Compare
Choose a tag to compare

Bug Fixes

@grain/cli cli-v0.4.0

06 Sep 22:06
a7e08fd
Compare
Choose a tag to compare

⚠ 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

  • compiler: Rename grainRuntime to _grainEnv (2d99c5a)
  • Refactor out references to "runtime" that aren't related to stdlib/runtime (#755) (2d99c5a)
  • Rename JS "runtime" to "js-runner"/"runner" throughout project (2d99c5a)

@grain/compiler @grain/compiler-v0.4.0

06 Sep 22:06
a7e08fd
Compare
Choose a tag to compare

⚠ 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)

Bug Fixes

Read more