Releases: grain-lang/grain
Releases · grain-lang/grain
cli: v0.6.2
stdlib: v0.6.1
Grain v0.6.1
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
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
stdlib: v0.6.0
0.6.0 (2024-03-04)
� BREAKING CHANGES
- stdlib: Replace
parseInt
error strings with structured error enum (#1755) - stdlib: Move stdlib
sys
modules towasi
(#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
fromNumber
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
provide
s 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
andempty
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...
Grain v0.6.0 Emmer
0.6.0 (2024-03-04)
� BREAKING CHANGES
- stdlib: Replace
parseInt
error strings with structured error enum (#1755) - stdlib: Move stdlib
sys
modules towasi
(#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
fromNumber
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 onuse
/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
provide
s 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
andempty
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
andmacro
reserved keywords (#1471) - compiler: Implement
Infinity
andNaN
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:*...
compiler: v0.6.0
0.6.0 (2024-03-04)
� BREAKING CHANGES
- stdlib: Replace
parseInt
error strings with structured error enum (#1755) - stdlib: Move stdlib
sys
modules towasi
(#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
fromNumber
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 onuse
/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
provide
s 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
andempty
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
andmacro
reserved keywords (#1471) - compiler: Implement
Infinity
andNaN
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
cli: v0.6.0
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)