Skip to content

build: bend 2.0.38, ez 1.7.0 and bolt v1.17.0 - #51

Merged
ngngardner merged 1 commit into
mainfrom
build/tooling-ez-1.7.0
Oct 23, 2026
Merged

ngngardner merged 1 commit into
mainfrom
build/tooling-ez-1.7.0

Conversation

@noah-emp

Copy link
Copy Markdown
Collaborator

Moves ezaudio's own build and checks to Bend 2.0.38. ezaudio needed no source change: its entry and PROOF.bend already checked on 2.0.38, so no file the entry walks changes and emerging-ezaudio@0.4.0.0 stays as it is.

  • flake.nix: bend at bendlang/bend 042e797 (the commit that packages 2.0.38); ez (now 1.7.0 plus test/docs commits) follows it; bolt's wrapFlags is ez.rtsFlags bend [ "--gpu" "off" ], i.e. +RTS --gpu off -RTS. flake.lock holds only bend, ez and nixpkgs.
  • [tools.bolt] at v1.17.0 (rev 358c2da).
  • publish.yml / release-please.yml: actions pinned at 73b2fbc.
  • README: built and checked on bend 2.0.38.

Behaviour note: F32.round

bend 2.0.38's F32.round "keeps negative zero and rounds once" (bendlang/bend #1611). 2.0.36's floor(a + 0.5) rounded 0x3EFFFFFF (0.49999997) up to 1; 2.0.38 rounds it to 0. q.mag in src/mp3_enc.bend rounds pow(|xr| / gain, 0.75), so for inputs whose power lands exactly there, one Huffman magnitude is 0 instead of 1 and encode_mp3 writes different bytes on 2.0.36 and 2.0.38 (e.g. xr = 0.39685023, gain 1.0; checked interpreted and compiled). No other input differs in reach (q.clip caps at 8206), and no LAWS row covers it. This is accepted as the correct rounding: ezaudio keeps using Base's F32.round.

Checked on 2.0.38

  • nix flake check: proofs (mkProofs), lint with bolt v1.17.0, and the wave comparison (0 hard failures of 34 cases).
  • PROOF.bend: ALL PROOFS CHECK. ez test: 0 / 0 (no tests).
  • readme_hub_check.sh: emerging-ezaudio@0.4.0.0 resolves and both snippets check.

🤖 Generated with Claude Code

Moves ezaudio's own build and checks to bend 2.0.38 (bendlang/bend
042e797), ez follows it, bolt v1.17.0 with runtime flags as
+RTS --gpu off -RTS, and the shared publish workflow at actions 73b2fbc.
No file the entry walks changes, so the hub package is unchanged.

Behaviour note: bend 2.0.38's F32.round rounds once, where 2.0.36's
floor(a + 0.5) rounded 0x3EFFFFFF (0.49999997) up to 1. q.mag in
src/mp3_enc.bend rounds pow(|xr|/gain, 0.75), so for such inputs one
Huffman magnitude is 0 rather than 1 and encode_mp3's bytes differ
between bends (xr = 0.39685023, gain 1.0). Accepted as the correct
rounding; no LAWS row covers it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ngngardner
ngngardner merged commit fc6fdc8 into main Oct 23, 2026
1 check passed
@ngngardner
ngngardner deleted the build/tooling-ez-1.7.0 branch October 23, 2026 13:55
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