| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| bend-2.0.38-darwin-arm64.tar.gz | 2026-10-20 | 25.8 MB | |
| bend-2.0.38-darwin-x64.tar.gz | 2026-10-20 | 28.8 MB | |
| bend-2.0.38-linux-arm64.tar.gz | 2026-10-20 | 36.9 MB | |
| bend-2.0.38-linux-x64.tar.gz | 2026-10-20 | 36.9 MB | |
| Bend 2.0.38 source code.tar.gz | 2026-10-20 | 59.5 MB | |
| Bend 2.0.38 source code.zip | 2026-10-20 | 60.3 MB | |
| README.md | 2026-10-20 | 7.0 kB | |
| Totals: 7 Items | 248.3 MB | 1 | |
- A compiled program's runtime options go between
+RTSand-RTS(#1466, PR [#1530] by viridale). Breaking:./main --threads 4now passes--threads 4to the program (IO.args); write./main +RTS --threads 4 -RTS. A trailing-RTSmay be left off,BENDRTSholds options too (the command line wins),--stops option reading and reaches the program, and an unknown option inside the bracket is an error.--threadstakes digits,--gputakeson,offor a size inGBorMB. - JS modules keep their names apart. Breaking for JS hosts: a
constructor's JS tag is its name in the file that declares it, so a
value crosses modules and matches the right arm (#1105, PR [#1488] by
oxura); imported export keys and foreign JS def ids keep their
:(#1758, [#1759], [#1766], PR [#1760] by oxura). TCP.sendandTCP.try_sendhand back unsent bytes, aList<&2, U32>to resume withTCP.send_bytes, so a write cut inside a UTF-8 character loses nothing (#1764, PR [#1765] by oxura). Breaking for code that read the residue as a String.- Native windows emit
Textevents with the typed characters on Linux and macOS (#1019, PR [#1441] by oxura). - A
Charholds any u32 on every lane; a non-scalar becomes U+FFFD only where text leaves Bend (#1080, PR [#1411] by oxura). --verdict:- The verdict says why each def it lists relies on unsafe or foreign code (PR #1531 by MattCozendey), and hints when those defs come only through unused imports (#1463, PR #1558).
- A def specialized at a finite
~parameter is checked by the kernel over each value, so an empty type no longer passes unchecked (#1186, PR #1225 by nicolas-abril); a~constant takes its model from the template's instances (PR #1580 by nicolas-abril). - The kernel accepts a self-call on a constructor rebuilt around a smaller part of its input, as the checker does (#1167, PR #1200 by nicolas-abril).
- Fixes: annotations under η and let inlining (#1665, [#1669], PR [#1666] by aaaxn); a bare constructor in a type (#1619, PR #1620 by ScottMoore0); shared group prefixes (PR #1704 by sebastian-griego); kernel failures show their details (#1535, PR #1536 by viridale).
- Faster:
- A GPU bang chains its rounds on the device, three command buffers in flight, with no host round trip per stage (PR #1447 by nicolas-abril).
- A flat generic def's spin takes words at its instance's layouts (#1195, PR #1588).
String.orderwalks both strings once: 8x on C, andString.eqof long strings no longer overflows the JS lane (PR #1459 by aldeni);String.containsis linear on JS (PR #1628 by sebastian-griego).- Emission allocates 40% less on large files (PR [#1617] by nicolas-abril); word matches with many literals compile faster (PR #1387 by Iann29).
U32.powby squaring andF32.showwithout a second conversion on C (PRs #1567 and #1591 by sebastian-griego);F32.readrejects bad input in linear time (PR #1625 by toprameen); expired channel waiters leave in constant time (PR #1671 by sebastian-griego).- CUDA keeps its L1 cache in
bend_dev(PR [#1602] by wakamex). - Fixes:
- Metal: a full lane stack spills to the heap, so non-tail recursion
under
!no longer faults at 1023 frames (#1393, #1394, PR #1439 by totaland). - C: a shared word is written back to its fork frame slot (PR [#1615] by viridale); a recursive spine is freed cell by cell (#1307, PR #1438 by oxura); native channels free their rows and unread values (#1268, PR #1532 by oxura); Nat powers and bit widths take checked paths (#1709, #1710, PR #1713 by oxura); functions only an effect calls stay reachable (#1711, #1712, PR #1714 by oxura); the crash trap is async-signal-safe (PR #1655 by adeerkhan).
- IO: ready effects yield to other computations every 64 (#1719, PR
#1723 by oxura);
IO.exitflushes buffered output (PR #1519 by vicmcorrea); file and JS stream writes fail on zero progress (#1445, PRs #1446 by oxura and #1747 by vicmcorrea); nested JS IO schedulers are isolated and resume their own channel waiters (#1524, #1761, #1770, PRs #1525 and #1762 by oxura); UDP receive buffers are bounded (#1695, PR #1698 by oxura);TCP.connectchecks its arguments on JS (PR #1618 by vicmcorrea); JSAudio.writecounts whole frames and paces on monotonic time (PRs #1683 by toprameen and #1597 by vicmcorrea). - Base:
List.any,all,containsandfindstop once the answer is known (#1726-#1729, PR #1730 by oxura); prefix checks stop at the prefix (#1640, PR #1645 by EpsilonPhoenix);F32.roundkeeps negative zero and rounds once (#1611, PRs #1613 by oxura and #1547 by vicmcorrea);F32.lerpstays finite and keeps its endpoints (#1607, #1749, PRs #1608 and #1754 by oxura);F32.to_natkeeps wide values (#1636, PR #1642 by oxura); JSU32.to_f32keeps zero positive and scalar F32 host inputs are rounded (#1692, #1568, PRs #1693 and #1569 by oxura). - Effects:
CID/FIDare scanned with the source's own comment rules (#1604, PR #1653 by adeerkhan); a bad Nat from a JS host says its range (#1634, PR #1656 by oxura). - CLI:
bend page.html -o <dir>never overwrites its own page (PR [#1690] by toprameen); inline HTML modules stay apart from real assets and from each other (#1752, #1753, #1767, PRs #1756 and #1768 by oxura); decoded module paths are classified right (#1570, PR #1571 by oxura).- Output finishes after short writes to a pipe (PR [#1691] by toprameen);
a failed update check keeps the command's status (PR #1603 by
vicmcorrea); filtered Base output keeps
@unsafe(PR #1538 by toprameen). - Tools: the formatter keeps column-pinned blocks, nested match arms,
inline bodies and mixed line endings (PRs [#1302] by dearlordylord, [#1755],
[#1672] by oxura, [#1583], [#1584], [#1590], [#1757] by vicmcorrea and
sebastian-griego); the LSP keeps match scopes across forall bodies (PR
[#1791] by vicmcorrea). Breaking for bend-lint rule authors: option
constructors are
OptionNum,OptionFlagandOptionText(PR [#1565] by vicmcorrea); bend-lint also fixes new buffers, cancelled runs and downloaded checkouts (PRs [#1745], [#1746] by oxura, [#1587], [#1605] by vicmcorrea).
Install: curl -fsSL https://bend-lang.com/install.sh | sh (or Homebrew: brew install bendlang/bend/bend, or Nix: nix profile install github:bendlang/bend).
sha256:
- 9d5331d01e82dac40dd012953e78221f533f7df7ad7e16b07f1f7bd0dcd088dd bend-2.0.38-darwin-arm64.tar.gz
- 870be3b91290e14259dba432788c71d7190d8984f8606255e5333c3a03896d5a bend-2.0.38-darwin-x64.tar.gz
- 1f7c6e74a6ef7412cf08eee0e4d45fe5960f89d66fdaca2466f6a4856f0d400a bend-2.0.38-linux-arm64.tar.gz
- f19d088b079c9e1a8834ecd153b7d58c11a5f8f9ab1bdb78dbc96a6bf49aaa81 bend-2.0.38-linux-x64.tar.gz