Repository navigation
Bend 2.0.35
- M1 and M2 run the GPU again (#1154, PR #1274 by nicolas-abril): since
2.0.29 Apple's compiler died building the GPU program of any program with
a!on M1 and M2 chips; M3 and M4 were never affected. - A library's names stay its own (#1045, #1124, #1184, PR #1156 by
nicolas-abril): a name the entry file declares aslib.Noneno longer
takes the key oflib.bend's ownNone, so its foreignCID(None)
means the constructor its Bend code means, and C no longer takes the
wrong arm or frees into the wrong size class. - Less memory on the CPU (PRs #1171, #1269 by nicolas-abril): the host
grows fewer tasks up front and splits a drain into finer units, so
parallel tree-matmul peaks at 14.5 MB instead of 68.5 MB and kmeans at
10.8 MB instead of 22.9 MB, with every bench as fast or faster. A spin
called in a jump's argument frees the variable it was lent, so a loop
over a list no longer keeps the old list's cells (81.6 MB to 1.6 MB, PR
#1243 by mizchi). U32/and%divide directly on the host and CUDA;
only Metal keeps its workaround (PR #1277 by nicolas-abril). - Arrays of equality proofs build in JS and C (#1130, PR #1219 by oxura).
- A deadline or a timer fires while computations keep the loop busy
(#1122, PR #1245 by nicolas-abril):IO.withinandIO.sleepno longer
wait for a channel pipeline to end. - Fixes:
- A chain of more than about 86 U32 or 130 F32 operators builds in C
(#1123, PR #1239 by nicolas-abril). bend f.bend -o f.cbuilds at-O0with clang 19 and later, for a
debug build (PR #1074 by aldeni).- A type with deeply nested sums compiles without hundreds of MB (#1270,
PRs #1196 and #1244 by vicmcorrea). - A template with many instances names them in linear time, not
quadratic (#1271, PR #1275 by nicolas-abril). IO.random_u32answersFailon the JS lane, as on C, instead of
ending the run (#1146, PR #1198 by Yi-111-a).- A match on a binder a constructor column closed says so and lists the
causes (#1134, PR #1226 by nicolas-abril). bend ... | headkeeps the command's exit status when the reader
closes early (#1211, PR #1214 by oxura).--verdict --publishis refused instead of publishing unchecked
(#1191, PR #1199 by vicmcorrea).--publishdrops a leading byte order mark, so a package whose LICENSE
was saved with one imports (PR #1188).--verdict: model search is bounded (#1181, PR #1218 by oxura);
recursive groups follow live references only (#1212, PR #1215 by
oxura); a dead fallback past the last constructor checks (#1204); an
empty datatype goes out withD.efq : D -> <>(#1183); a specialized
argument is elaborated at each use (#1168, #1178); a match inside a type
goes at the goals bend2 checked it at (#1157).
- A chain of more than about 86 U32 or 130 F32 operators builds in C
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:
- 2582f25057a519c330e6875798b784b727d4201f1c1f6944a105348f0eb8972e bend-2.0.35-darwin-arm64.tar.gz
- 7e59da4513e32ea7526464b342344a992a56372cdf62e0c55a30e9ce26baaeef bend-2.0.35-darwin-x64.tar.gz
- 09b813073241628f590f2c2fe420299ec25e4dddd6cf3fdc49c9486339989564 bend-2.0.35-linux-arm64.tar.gz
- 63039d1a119f716767ac5a7d8fe0717cfacf219c6c253c35192148e0dade722f bend-2.0.35-linux-x64.tar.gz