| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| grain-win-x64.exe | 2025-04-27 | 63.4 MB | |
| grain-mac-x64 | 2025-04-27 | 74.0 MB | |
| grain-linux-x64 | 2025-04-27 | 78.7 MB | |
| Grain v0.7.0 source code.tar.gz | 2025-04-27 | 1.5 MB | |
| Grain v0.7.0 source code.zip | 2025-04-27 | 2.1 MB | |
| README.md | 2025-04-27 | 14.5 kB | |
| Totals: 6 Items | 219.7 MB | 0 | |
0.7.0 (2025-04-26)
⚠ BREAKING CHANGES
- cli: Require node
>=22.13(#2256) - compiler: Disallow whitespace for negative literals + allow infix operators on new line (#2136)
- compiler: Custom Grain object files (#2104)
- Remove
->token in favor of=>(#2177) - stdlib: Seeded hashing (#2170)
- stdlib: Add an
Asciisubmodule toCharand moveisAscii,toUppercase,toLowercase(#2178)
Features
- Add
getAll,setAll,removeAlltoList.Associative(#2224) (9c49a23) - cli: Support node v22 and v23 (#2207) (130c494)
- compiler: Custom Grain object files (#2104) (4b56c53)
- compiler: Deduplicate foreign imports (#2233) (e8a3ed2)
- compiler: Disallow whitespace for negative literals + allow infix operators on new line (#2136) (3186155)
- compiler: Enable single-file compilation (#2105) (824b365)
- compiler: Improve exhaustive warning for lists (#2220) (f54dbdf)
- compiler: Use location for
Unbound_label_with_alterror (#2196) (271d7cb) - compiler: Use program location for
_gmain(#2231) (bdbbd05) - docs: Update
stdlibcontributor guidelines (#2277) (9631e72) - fmt: Add trailing comma on inline records (#2266) (cbe12e2)
- lsp: Add or remove block braces code action (#2222) (3134504)
- Remove
->token in favor of=>(#2177) (d0038d3) - runtime: Optimize
==for lists (#2247) (1cba005) - runtime: Prevent stack overflow while collecting large lists (#2248) (097ae7d)
- runtime: Simplify
copyandfillpolyfills inMemorymodule (#2148) (1b3a9f0) - stdlib:
List.AssociativeSubmodule (#2202) (fbb08bf) - stdlib: Add
**toFloat64andFloat32(#2163) (7542d92) - stdlib: Add
Array.tryInit(#2209) (218ff78) - stdlib: Add
Bytes.setCharandBytes.getChar(#2215) (4919ba3) - stdlib: Add
Char.encodedLength(#2238) (c549fac) - stdlib: Add
copySign,sqrt,min,max,round,trunc,floor,ceiltoFloat32(#2161) (f5a3dd3) - stdlib: Add
copySign,sqrt,min,max,round,trunc,floor,ceiltoFloat64(#2162) (e99dcba) - stdlib: Add
Exception.toString(#2143) (0894dc5) - stdlib: Add
isFinite,isClose,sin,cos,tanto Float32 (#2168) (bdb4641) - stdlib: Add
isFinite,isClose,sin,cos,tanto Float64 (#2166) (fa728d2) - stdlib: Add
List.filterMap,List.filterMapi,List.findMap(#2201) (551f5ad) - stdlib: add
Path.removeExtension(#2226) (7b7acfd) - stdlib: Add
Path.updateExtension(#2282) (6d795d0) - stdlib: Add
String.repeattoStringmodule (#2140) (6c33d08) - stdlib: Add
toList,fromList,toArray,fromArrayto Stack (#2198) (b815bcd) - stdlib: Add an
Asciisubmodule toCharand moveisAscii,toUppercase,toLowercase(#2178) (328cf01) - stdlib: Add user-friendly file system module (#1966) (c4f638e)
- stdlib: Implement
reinterpretbetween float and int values (#2257) (e3a4eac) - stdlib: Json value access utils (#2150) (72cc978)
- stdlib: Optimize
List.initto support large lists (#2249) (3de64ba) - stdlib: Reimplement
Number.gammaandNumber.factorial(#2182) (1e5f921) - stdlib: Reimplement
Number.sin,Number.cos,Number.tan(#2158) (f97c011) - stdlib: Seeded hashing (#2170) (ce872ab)
Bug Fixes
- cli: Only accept
--dir,--envongrain runorgrain(#2279) (0d249dc) - compiler: Correct
in_functionstate when typing record properties (#2205) (d9dd274) - compiler: Correct
Include_module_name_mismatcherror (#2261) (ef77a31) - compiler: Correct location of parmatch mismatch type error (#2259) (eb85692)
- compiler: Correct type approximation on recursive functions (#2154) (b0fb040)
- compiler: Fix 'inconsistent assumptions over interface' bug (#2253) (66e5929)
- compiler: Handle non-exhaustive record patterns (#2274) (0431e74)
- compiler: Prevent impossible string error from pattern matching (#2218) (a1caf87)
- compiler: Reduce stack usage when allocating lists (#2214) (cad45e4)
- compiler: Resolve Not_found for use statements with module aliases (#2285) (fd2dbef)
- compiler: Write universal exports on linked module (#2234) (2dba010)
- grainc: Correct behaviour of
-oflag (#2270) (3124ede) - grainfmt: correct fmt of operator funcs applied with labeled args (#2251) (30f5cc3)
- grainfmt: Correct formatting of nested constraints (#2245) (bdb7f7c)
- grainfmt: Fix formatting of function types with a single tuple arg (#2230) (13ac7fa)
- lsp: Add test harness, update named arg code action title, fix code action trigger points, do not print LSP warnings (#2134) (36c0bb8)
- lsp: Correct use argument label code_action with inferred funcs (#2283) (7d4fd44)
- lsp: Ensure file changes update lsp state (#2267) (031e39a)
- lsp: Use correct origin selection range (#2146) (ab3dde8)
- runtime: Correct
Bi.toFloat64rounding (#2160) (6755782) - stdlib: Correct sign bit in
_rempiowhen computing trig reduction (#2181) (6a78502) - stdlib: Optimize number modulo (#2144) (960fadd)
- stdlib: Properly print
Rangevalues (#2184) (11b1fc2)