Skip to content

Bend 2.0.36

Latest

Choose a tag to compare

@gmtaelin gmtaelin released this 07 Oct 04:53
  • HOC's proving agent is now named BendAI: bend login logs in to
    BendAI at bend-lang.com/bendai and writes its key to
    ~/.bend/bendai.json; a key an older bend wrote moves there at the next
    --publish <name>@…, so it keeps working. The publish notice links
    https://bend-lang.com/bendai/terms#s18, and the installer's card ends
    "You're now a Bend developer." The old addresses redirect.
  • Every channel and socket wait has a try_ twin with a limit in ms
    that answers Poll (PR #1259 by nicolas-abril), and UDP gets the byte
    twins TCP and File already have: send_bytes_to, recv_bytes_from and
    their try_ twins (PR #1359 by kbrianps).
  • BendTT's kinds are quantity terms, with meets, Σ at any kind and
    subsumption under ∀, and --verdict emits a generic def once (PR #1203
    by nicolas-abril); a λ+ converts as a λ (#1189, PR #1224 by
    nicolas-abril).
  • Faster checks: a name lookup is one map read, not a scan of the book
    (PR #1372); types never read, or already reduced, are not reduced again
    (PR #1362); roots share their ~ constants, so a template goes to the
    kernel once (PR #1358 by chelokot); n instances of a def take O(n log n)
    characters of names, not O(n²) (PR #1350 by chelokot); a graph closure
    is linear in the graph (PR #1298 by moorbrook).
  • Fixes:
    • A value past 2^24-1 live copies fail-stops with its own message, and
      WONTFIX names the cap (PR #1366 by nicolas-abril).
    • A type under a rewrite stuck on an open proof is read as its body, and
      a type the C facts can't read is a compile error (#1273, PR #1276 by
      nicolas-abril).
    • A constructor's fields compile with their declared types, so a Word
      folded out of a U32 literal emits (#1100, PR #1361 by nicolas-abril);
      datatypes of boxed constructors are registered (PR #1351 by
      vicmcorrea); spare nodes stay apart across sum arms (PR #1279 by
      jasisz); C emits right when a native effect calls back into Bend (PR
      #1286 by mizchi).
    • The work pass after a grow runs each lane's own ring (#925, PR #1132),
      and on MSL 3.2+ heap_free reads the error flag with a coherent
      volatile load (#1143, PR #1299 by nicolas-abril).
    • --verdict checks what bend checks for a match carrying a later
      variable (#1292, PR #1293 by aaaxn), respects Unit provenance and word
      constructor families (PR #1338 by oxura), verifies the Lean version and
      drops unversioned kernel caches (PR #1339 by oxura), and cleans up its
      temporary input when the kernel build fails (PR #1327 by Osraka).
    • Unsafe dependencies are tracked in datatype kinds (#1205, PR #1220 by
      oxura).
    • A nested match on a split value is refused with its name and where to
      match it (#1125, PR #1290 by nicolas-abril); only a statement
      a[i] <- v is the write let, so Array.set(..); in an inline match
      keeps the next row (#1126, PR #1289 by nicolas-abril).
    • F32.read skips leading whitespace (PR #1335 by vicmcorrea); the
      formatter keeps unsafe declaration suffixes (PR #1296 by vicmcorrea).
    • A CUDA probe failure names its stage and the Driver API error (PR
      #1341 by oxura).

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:

  • 2876687ceb0aba836abc98b3f62c8fc9fb612d124ae2af6814d5ec937760878d bend-2.0.36-darwin-arm64.tar.gz
  • 925bb306c60260e1cdde56c2b8e4ba0e1eb4cbc88a76372cc0bb389a172dccdf bend-2.0.36-darwin-x64.tar.gz
  • a14a311e39bad45f9669d4eab39d156b578c945f13a2b7bae20d9c23567a4664 bend-2.0.36-linux-arm64.tar.gz
  • 02089dc0eed0fd5fd6d73c74cc9cffcb2c6638dd3b02ae83f7b8cc57fbe381ba bend-2.0.36-linux-x64.tar.gz