Skip to content

fix: bend 2.0.28 (wire effect registration, bench renames) - #14

Merged
noah-emp merged 4 commits into
mainfrom
build/bend-2.0.28
Sep 25, 2026
Merged

noah-emp merged 4 commits into
mainfrom
build/bend-2.0.28

Conversation

@noah-emp

Copy link
Copy Markdown
Collaborator

Moves ezhttp to bend 2.0.28.

What 2.0.28 broke

  1. Effects: a JS effect now registers with io_eff(CID(Name), run, need), each effect .js runs in its own closure, and the C side's CID_<NAME> macros are gone. Unported, the JS lane stops at no effect registers ezhttp/wire.ezwire.talk.
  2. Numeric name segments in bench/main.bend (not in the hub walk).

Changes

  • ezhttp/effs/wire.js: ends with io_eff(CID(ezwire.talk), ezwire_talk); the header note about one concatenated script is updated.
  • ezhttp/effs/wire.c: CID_EZWIRE_TALK -> CID(ezwire.talk).
  • bench/main.bend: argv.0/1/2/3 -> argv.w0/w1/w2/w3 (every use).
  • flake.lock: bend -> bendlang/bend main (2.0.28).

Verified with bend 2.0.28: ezhttp/PROOF.bend says All terms check.; check-only verdicts equal 2.0.27's (no new unsafe listing). Plain GET/POST to a local server, a refused port, an HTTPS GET and a failed TLS handshake (expired.badssl.com) answer identically under 2.0.27 and 2.0.28 on each lane (bend x.bend, -o x.js + bun, -o x native). The bench driver builds natively and runs.

Known CI blocker (not in this repo): nix flake check cannot pass yet: with bend following 2.0.28, ez v1.2.0 fails to build (duplicate declaration: Window) and bolt v1.8.0 fails (duplicate declaration: Set). Both need their own 2.0.28 releases first.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj

ngngardner and others added 4 commits September 25, 2026 16:01
bend 2.0.28 registers a JS effect with io_eff(CID(Name), run, need), as a
C effect does, runs each effect .js in a closure of its own, and no longer
defines the CID_<NAME> macros the C side used. Unported, the JS lane stops
at "no effect registers ezhttp/wire.ezwire.talk" and the native build at
an undeclared CID_EZWIRE_TALK.

- ezhttp/effs/wire.js: ends with io_eff(CID(ezwire.talk), ezwire_talk)
  (no need: it answers at once, as the C side's 0 does); the header note
  about one concatenated script now says the file runs in its own closure.
- ezhttp/effs/wire.c: io_eff(CID_EZWIRE_TALK, ...) becomes
  io_eff(CID(ezwire.talk), ...).

No def is renamed. Plain GET/POST, a refused port, an HTTPS GET and a
failed TLS handshake answer the same on both lanes under 2.0.28 as under
2.0.27.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj
bend 2.0.28 refuses a name segment that starts with a digit ("expected a
name (words joined by dots, got 'argv.3')"). bench/main.bend is not in the
hub walk. Renamed, with every use:

- argv.0 -> argv.w0
- argv.1 -> argv.w1
- argv.2 -> argv.w2
- argv.3 -> argv.w3

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj
nix flake update bend moves the bend input to bendlang/bend main (2.0.28).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj
ez 1.2.0 does not build on bend 2.0.28 (its sha256 dependency declares
`type Window`, now a Base name), so the ez input no longer follows this
flake's bend: ez, `ez prove` and bolt (packages.bolt and mkLint) use the
bend ez 1.2.0 locks, and the package's own builds use 2.0.28.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj
@noah-emp
noah-emp merged commit 7225964 into main Sep 25, 2026
1 check passed
@noah-emp
noah-emp deleted the build/bend-2.0.28 branch September 25, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants