Skip to content

Releases: grain-lang/grain

cli: v0.6.2

01 Apr 22:19
8d157f3
Compare
Choose a tag to compare

0.6.2 (2024-04-01)

Miscellaneous Chores

  • cli: Synchronize Grain versions

stdlib: v0.6.1

30 Mar 01:50
889e0b8
Compare
Choose a tag to compare

0.6.1 (2024-03-29)

Bug Fixes

  • stdlib: Avoid WASI random_get in Hash stdlib during module startup (#2078) (7eadfb0)
  • stdlib: Implement print using a single element io vec (#2066) (9eeb0f2)

Grain v0.6.1

30 Mar 01:50
889e0b8
Compare
Choose a tag to compare

0.6.1 (2024-03-29)

Features

  • compiler: Add warning for non-integer array indices (#2077) (520dd8a)
  • compiler: Allow non-block bodies with loops (#2064) (6fd1603)
  • compiler: Improve warning when omitting fields in record pattern (#2079) (4a929fc)

Bug Fixes

  • compiler: Allow proper disambiguation of enum variants (#2068) (f3007b4)
  • compiler: Fix array infix assign semantics (#2080) (bea360d)
  • compiler: Fix disambiguation of record label access (#2072) (1f8a20d)
  • compiler: Set maximum wasm table size (#2061) (e8d643c)
  • grainfmt: Ensure constraints and keyword functions group properly (#2070) (12281ad)
  • grainfmt: Fix formatting of default argument types (#2081) (0c15e4a)
  • grainfmt: Fix printing of qualified infix operators (#2071) (c22932d)
  • stdlib: Avoid WASI random_get in Hash stdlib during module startup (#2078) (7eadfb0)
  • stdlib: Implement print using a single element io vec (#2066) (9eeb0f2)

compiler: v0.6.1

30 Mar 01:50
889e0b8
Compare
Choose a tag to compare

0.6.1 (2024-03-29)

Features

  • compiler: Add warning for non-integer array indices (#2077) (520dd8a)
  • compiler: Allow non-block bodies with loops (#2064) (6fd1603)
  • compiler: Improve warning when omitting fields in record pattern (#2079) (4a929fc)

Bug Fixes

  • compiler: Allow proper disambiguation of enum variants (#2068) (f3007b4)
  • compiler: Fix array infix assign semantics (#2080) (bea360d)
  • compiler: Fix disambiguation of record label access (#2072) (1f8a20d)
  • compiler: Set maximum wasm table size (#2061) (e8d643c)
  • grainfmt: Ensure constraints and keyword functions group properly (#2070) (12281ad)
  • grainfmt: Fix formatting of default argument types (#2081) (0c15e4a)
  • grainfmt: Fix printing of qualified infix operators (#2071) (c22932d)

cli: v0.6.1

30 Mar 01:50
889e0b8
Compare
Choose a tag to compare

0.6.1 (2024-03-29)

Miscellaneous Chores

  • cli: Synchronize Grain versions

stdlib: v0.6.0

04 Mar 21:38
2af70da
Compare
Choose a tag to compare

0.6.0 (2024-03-04)

� BREAKING CHANGES

  • stdlib: Replace parseInt error strings with structured error enum (#1755)
  • stdlib: Move stdlib sys modules to wasi (#2056)
  • compiler: Remove arbitrary per-file compiler flags, add acceptable options as module attributes (#1804)
  • compiler: Require extension when including relative file paths (#1842)
  • compiler: Update include syntax (#2043)
  • stdlib: Remove sin, cos, tan, gamma, factorial from Number module (#2046)
  • compiler: Update use syntax (#2041)
  • grainfmt: Implement new formatter (#1976)
  • stdlib: Use default arguments in more of stdlib (#1772)
  • stdlib: Add print suffix default argument (#1768)
  • graindoc: Improve docgen for labeled & default arguments (#1776)
  • stdlib: Replace Float64 arithmatic/comparison functions with operators (#1957)
  • stdlib: Replace Float32 arithmatic/comparison functions with operators (#1954)
  • stdlib: Replace Int64 arithmatic functions with operators (#1935)
  • stdlib: Replace Int32 arithmatic functions with operators (#1936)
  • stdlib: Switch to using records for getInternalStats (#1898)
  • cli: Allow specifying WASI environment variables and CLI args (#1840)
  • stdlib: Reorder parameters to List.insert (#1857)
  • stdlib: Handle printing of reference cycles (#1844)
  • compiler: Change -> to => in type signatures (#1855)
  • compiler: Make types nonrecursive by default (#1826)
  • compiler: Remove static runtime pointers (#1806)
  • compiler: Changed comma to and in mutually rec types
  • compiler: Changed comma to and in recursive types and bindings (#1827)
  • Remove js-runner (#1585)
  • stdlib: Replace Result/Option and/or functions with operators (#1821)
  • compiler: Reduce size of runtime heap (#1807)
  • Require node version >=18.15 for WASI support (#1612)
  • stdlib: Ensure Array.fillRange works with negative indexing & throws IndexOutOfBound (#1761)
  • stdlib: Remove extra space when converting Bytes to String (#1800)
  • stdlib: Convert unsafe Wasm functions to operators (#1734)
  • stdlib: Use Array length as default end in Array.slice function (#1762)
  • stdlib: Use String length as default end in String.slice function (#1748)
  • Rework preopened directories (#1656)
  • stdlib: Group mutable/immutable data structures (#1652)
  • compiler: Optimize type metadata loading (#1741)
  • compiler: Labeled and default arguments (#1623)
  • stdlib: Replace bigint/number arithmetic functions with operators (#1742)
  • stdlib: Update Operator uint operator Names (#1738)
  • stdlib: Provide empty byte array from Bytes.make (#1729)
  • stdlib: Add optimization for Number.pow(Rational, Int) (#1716)
  • compiler: Custom box printing (#1713)
  • stdlib: Update Buffer/Bytes to use new integer types (#1704)
  • compiler: Require floats always have a digit on left & right of dot (#1703)
  • compiler: Remove 32-bit numbers from Number type (#1683)
  • compiler: Short integer values (#1669)
  • compiler: Supply primitive types via the compiler (#1667)
  • stdlib: Add ** (pow) operator to Pervasives module (#1690)
  • compiler: Remove Exclusive/Inclusive Ranges, provide as record via compiler (#1616)
  • stdlib: Make queue and stack mutable & provide Immutable submodules (#1479)
  • compiler: Disallow multiple provides of the same value (#1689)
  • graindoc: Only use original doc blocks when re-providing (#1687)
  • graindoc: Support docblocks on submodules (#1684)
  • graindoc: Remove section attribute (#1681)
  • compiler: Explicit abstract types (#1680)
  • compiler: Add Uint32 and Uint64 types (#1531)
  • stdlib: Remove cons and empty from Pervasives (#1657)
  • stdlib: Sys/File reading and writing operate on Bytes (#1655)
  • compiler: Make List a language-supplied type (#1648)
  • stdlib: Use correct casing for BigInt module name
  • graindoc: Replace module attribute with docblock on module header (#1647)
  • compiler: Module system (#1584)
  • compiler: Change Char internal representation (#1622)
  • compiler: Inline record constructors (#1586)
  • stdlib: Replace Number.nan & Number.infinity constants with keywords (#1618)
  • compiler: Remove support of single-argument tuples (#1608)
  • stdlib: List.rotate wraparound for count > length (#1558)
  • compiler: Include Option and Result as language-supplied types (#1591)
  • stdlib: Change array rotation direction (#1552)
  • stdlib: Support zipping arrays of different sizes (#1402)
  • compiler: Refactor enum constructors (#1211)

Features

  • Add Hex Exponent Decimals (8a69eb3)
  • cli: Allow specifying WASI environment variables and CLI args (#1840) (fb8fbf2)
  • compiler: Add hex float syntax (#1743) (8a69eb3)
  • compiler: Add Uint32 and Uint64 types (#1531) (42ffdc4)
  • compiler: Change -> to => in type signatures (#1855) (b3d68a4)
  • compiler: Change Char internal representation (#1622) (58c9a51)
  • compiler: Changed comma to and in mutually rec types (923625d)
  • compiler: Changed comma to and in recursive types and bindings (#1827) (923625d)
  • compiler: Custom box printing (#1713) ([3c86e45](3...
Read more

Grain v0.6.0 Emmer

04 Mar 21:38
2af70da
Compare
Choose a tag to compare

0.6.0 (2024-03-04)

� BREAKING CHANGES

  • stdlib: Replace parseInt error strings with structured error enum (#1755)
  • stdlib: Move stdlib sys modules to wasi (#2056)
  • compiler: Remove arbitrary per-file compiler flags, add acceptable options as module attributes (#1804)
  • compiler: Require extension when including relative file paths (#1842)
  • compiler: Update include syntax (#2043)
  • stdlib: Remove sin, cos, tan, gamma, factorial from Number module (#2046)
  • compiler: Update use syntax (#2041)
  • grainfmt: Implement new formatter (#1976)
  • stdlib: Use default arguments in more of stdlib (#1772)
  • stdlib: Add print suffix default argument (#1768)
  • graindoc: Allow @since and @returns once per export (#1946)
  • graindoc: Improve docgen for labeled & default arguments (#1776)
  • stdlib: Replace Float64 arithmatic/comparison functions with operators (#1957)
  • stdlib: Replace Float32 arithmatic/comparison functions with operators (#1954)
  • stdlib: Replace Int64 arithmatic functions with operators (#1935)
  • stdlib: Replace Int32 arithmatic functions with operators (#1936)
  • stdlib: Switch to using records for getInternalStats (#1898)
  • cli: Ensure --use-start-section can only be used with compile command (#1871)
  • cli: Allow specifying WASI environment variables and CLI args (#1840)
  • compiler: Require module prefix on use/provide for modules (#1868)
  • stdlib: Reorder parameters to List.insert (#1857)
  • stdlib: Handle printing of reference cycles (#1844)
  • compiler: Change -> to => in type signatures (#1855)
  • compiler: Make types nonrecursive by default (#1826)
  • compiler: Remove static runtime pointers (#1806)
  • compiler: Remove memory import from _genv (#1830)
  • compiler: Changed comma to and in mutually rec types
  • compiler: Changed comma to and in recursive types and bindings (#1827)
  • Remove js-runner (#1585)
  • stdlib: Replace Result/Option and/or functions with operators (#1821)
  • compiler: Reduce size of runtime heap (#1807)
  • Require node version >=18.15 for WASI support (#1612)
  • stdlib: Ensure Array.fillRange works with negative indexing & throws IndexOutOfBound (#1761)
  • compiler: Disallow enum variants with parens but no types (#1809)
  • stdlib: Remove extra space when converting Bytes to String (#1800)
  • stdlib: Convert unsafe Wasm functions to operators (#1734)
  • stdlib: Use Array length as default end in Array.slice function (#1762)
  • compiler: Remove recursive_types and principal config (#1751)
  • stdlib: Use String length as default end in String.slice function (#1748)
  • Rework preopened directories (#1656)
  • stdlib: Group mutable/immutable data structures (#1652)
  • compiler: Optimize type metadata loading (#1741)
  • compiler: Labeled and default arguments (#1623)
  • compiler: Remove built-in FileDescriptor type (#1747)
  • compiler: Enable tail calls by default (#1589)
  • stdlib: Replace bigint/number arithmetic functions with operators (#1742)
  • stdlib: Update Operator uint operator Names (#1738)
  • stdlib: Provide empty byte array from Bytes.make (#1729)
  • stdlib: Add optimization for Number.pow(Rational, Int) (#1716)
  • compiler: Custom box printing (#1713)
  • stdlib: Update Buffer/Bytes to use new integer types (#1704)
  • compiler: Require floats always have a digit on left & right of dot (#1703)
  • compiler: Remove 32-bit numbers from Number type (#1683)
  • compiler: Short integer values (#1669)
  • compiler: Supply primitive types via the compiler (#1667)
  • compiler: Allocate closures only when necessary (#1660)
  • stdlib: Add ** (pow) operator to Pervasives module (#1690)
  • compiler: Remove Exclusive/Inclusive Ranges, provide as record via compiler (#1616)
  • stdlib: Make queue and stack mutable & provide Immutable submodules (#1479)
  • compiler: Disallow multiple provides of the same value (#1689)
  • graindoc: Only use original doc blocks when re-providing (#1687)
  • graindoc: Support docblocks on submodules (#1684)
  • graindoc: Remove section attribute (#1681)
  • compiler: Explicit abstract types (#1680)
  • compiler: Add Uint32 and Uint64 types (#1531)
  • stdlib: Remove cons and empty from Pervasives (#1657)
  • stdlib: Sys/File reading and writing operate on Bytes (#1655)
  • compiler: Make List a language-supplied type (#1648)
  • stdlib: Use correct casing for BigInt module name
  • graindoc: Replace module attribute with docblock on module header (#1647)
  • compiler: Apply correct rules for parsing Unicode whitespace (#1554)
  • compiler: Module system (#1584)
  • compiler: Change Char internal representation (#1622)
  • compiler: Inline record constructors (#1586)
  • stdlib: Replace Number.nan & Number.infinity constants with keywords (#1618)
  • compiler: Remove support of single-argument tuples (#1608)
  • compiler: Rename _grainEnv to _genv (#1607)
  • compiler: Add yield and macro reserved keywords (#1471)
  • compiler: Implement Infinity and NaN syntax (#1472)
  • stdlib: List.rotate wraparound for count > length (#1558)
  • compiler: Early return (#1464)
  • compiler: Include Option and Result as language-supplied types (#1591)
  • stdlib: Change array rotation direction (#1552)
  • stdlib: Support zipping arrays of different sizes (#1402)
  • Remove --parser-debug-level (#1311) (#1447)
  • **compiler:*...
Read more

compiler: v0.6.0

04 Mar 21:38
2af70da
Compare
Choose a tag to compare

0.6.0 (2024-03-04)

� BREAKING CHANGES

  • stdlib: Replace parseInt error strings with structured error enum (#1755)
  • stdlib: Move stdlib sys modules to wasi (#2056)
  • compiler: Remove arbitrary per-file compiler flags, add acceptable options as module attributes (#1804)
  • compiler: Require extension when including relative file paths (#1842)
  • compiler: Update include syntax (#2043)
  • stdlib: Remove sin, cos, tan, gamma, factorial from Number module (#2046)
  • compiler: Update use syntax (#2041)
  • grainfmt: Implement new formatter (#1976)
  • stdlib: Use default arguments in more of stdlib (#1772)
  • stdlib: Add print suffix default argument (#1768)
  • graindoc: Allow @since and @returns once per export (#1946)
  • graindoc: Improve docgen for labeled & default arguments (#1776)
  • stdlib: Replace Float64 arithmatic/comparison functions with operators (#1957)
  • stdlib: Replace Float32 arithmatic/comparison functions with operators (#1954)
  • stdlib: Replace Int64 arithmatic functions with operators (#1935)
  • stdlib: Replace Int32 arithmatic functions with operators (#1936)
  • stdlib: Switch to using records for getInternalStats (#1898)
  • cli: Allow specifying WASI environment variables and CLI args (#1840)
  • compiler: Require module prefix on use/provide for modules (#1868)
  • stdlib: Reorder parameters to List.insert (#1857)
  • stdlib: Handle printing of reference cycles (#1844)
  • compiler: Change -> to => in type signatures (#1855)
  • compiler: Make types nonrecursive by default (#1826)
  • compiler: Remove static runtime pointers (#1806)
  • compiler: Remove memory import from _genv (#1830)
  • compiler: Changed comma to and in mutually rec types
  • compiler: Changed comma to and in recursive types and bindings (#1827)
  • Remove js-runner (#1585)
  • stdlib: Replace Result/Option and/or functions with operators (#1821)
  • Require node version >=18.15 for WASI support (#1612)
  • stdlib: Ensure Array.fillRange works with negative indexing & throws IndexOutOfBound (#1761)
  • compiler: Disallow enum variants with parens but no types (#1809)
  • stdlib: Remove extra space when converting Bytes to String (#1800)
  • stdlib: Convert unsafe Wasm functions to operators (#1734)
  • stdlib: Use Array length as default end in Array.slice function (#1762)
  • compiler: Remove recursive_types and principal config (#1751)
  • stdlib: Use String length as default end in String.slice function (#1748)
  • Rework preopened directories (#1656)
  • stdlib: Group mutable/immutable data structures (#1652)
  • compiler: Optimize type metadata loading (#1741)
  • compiler: Labeled and default arguments (#1623)
  • compiler: Remove built-in FileDescriptor type (#1747)
  • compiler: Enable tail calls by default (#1589)
  • stdlib: Replace bigint/number arithmetic functions with operators (#1742)
  • stdlib: Update Operator uint operator Names (#1738)
  • stdlib: Provide empty byte array from Bytes.make (#1729)
  • stdlib: Add optimization for Number.pow(Rational, Int) (#1716)
  • compiler: Custom box printing (#1713)
  • stdlib: Update Buffer/Bytes to use new integer types (#1704)
  • compiler: Require floats always have a digit on left & right of dot (#1703)
  • compiler: Remove 32-bit numbers from Number type (#1683)
  • compiler: Short integer values (#1669)
  • compiler: Supply primitive types via the compiler (#1667)
  • compiler: Allocate closures only when necessary (#1660)
  • stdlib: Add ** (pow) operator to Pervasives module (#1690)
  • compiler: Remove Exclusive/Inclusive Ranges, provide as record via compiler (#1616)
  • stdlib: Make queue and stack mutable & provide Immutable submodules (#1479)
  • compiler: Disallow multiple provides of the same value (#1689)
  • graindoc: Only use original doc blocks when re-providing (#1687)
  • graindoc: Support docblocks on submodules (#1684)
  • graindoc: Remove section attribute (#1681)
  • compiler: Explicit abstract types (#1680)
  • compiler: Add Uint32 and Uint64 types (#1531)
  • stdlib: Remove cons and empty from Pervasives (#1657)
  • stdlib: Sys/File reading and writing operate on Bytes (#1655)
  • compiler: Make List a language-supplied type (#1648)
  • stdlib: Use correct casing for BigInt module name
  • graindoc: Replace module attribute with docblock on module header (#1647)
  • compiler: Apply correct rules for parsing Unicode whitespace (#1554)
  • compiler: Module system (#1584)
  • compiler: Change Char internal representation (#1622)
  • compiler: Inline record constructors (#1586)
  • stdlib: Replace Number.nan & Number.infinity constants with keywords (#1618)
  • compiler: Remove support of single-argument tuples (#1608)
  • compiler: Rename _grainEnv to _genv (#1607)
  • compiler: Add yield and macro reserved keywords (#1471)
  • compiler: Implement Infinity and NaN syntax (#1472)
  • stdlib: List.rotate wraparound for count > length (#1558)
  • compiler: Early return (#1464)
  • compiler: Include Option and Result as language-supplied types (#1591)
  • stdlib: Change array rotation direction (#1552)
  • stdlib: Support zipping arrays of different sizes (#1402)
  • Remove --parser-debug-level (#1311) (#1447)
  • compiler: Refactor enum constructors (#1211)

Features

  • Add exception opentype implementation to Oprint (#1896) (51d53f7)
  • Add Hex E...
Read more

cli: v0.6.0

04 Mar 21:38
2af70da
Compare
Choose a tag to compare

0.6.0 (2024-03-04)

� BREAKING CHANGES

  • compiler: Remove arbitrary per-file compiler flags, add acceptable options as module attributes (#1804)
  • cli: Ensure --use-start-section can only be used with compile command (#1871)
  • cli: Allow specifying WASI environment variables and CLI args (#1840)
  • Remove js-runner (#1585)
  • Require node version >=18.15 for WASI support (#1612)
  • stdlib: Convert unsafe Wasm functions to operators (#1734)
  • Rework preopened directories (#1656)
  • compiler: Enable tail calls by default (#1589)
  • compiler: Module system (#1584)
  • Remove --parser-debug-level (#1311) (#1447)

Features

  • cli: Allow specifying WASI environment variables and CLI args (#1840) (fb8fbf2)
  • cli: Improve error handling around grain run (#1913) (fc9b434)
  • compiler: Allow importing a memory (#1661) (3140ba2)
  • compiler: Enable tail calls by default (#1589) (f6e5b00)
  • compiler: Module system (#1584) (752da69)
  • compiler: Remove arbitrary per-file compiler flags, add acceptable options as module attributes (#1804) (72b2139)
  • Remove js-runner (#1585) (e10d612)
  • Rework preopened directories (#1656) (7d3006d)
  • stdlib: Convert unsafe Wasm functions to operators (#1734) (114d17b)

Bug Fixes

  • cli: Correct typo in printing stack (#1924) (a4016f1)
  • cli: Ensure --use-start-section can only be used with compile command (#1871) (d9227d7)
  • cli: Show correct error when module traps (#2050) (88560f2)

Miscellaneous Chores

stdlib: v0.5.13

08 Jan 17:11
7180c72
Compare
Choose a tag to compare

0.5.13 (2023-01-07)

Miscellaneous Chores

  • stdlib: Synchronize Grain versions