Skip to content

build: bend 2.0.28 in the flake - #48

Closed
noah-emp wants to merge 1 commit into
mainfrom
build/bend-2.0.28
Closed

noah-emp wants to merge 1 commit into
mainfrom
build/bend-2.0.28

Conversation

@noah-emp

Copy link
Copy Markdown
Collaborator

Moves shake's flake to bend 2.0.28. Draft: blocked on a bend 2.0.28 regression.

There are no numeric name segments and no effect files in shake, and main.bend, src/ and the README snippets all check (the README's main snippet runs and prints "hello Ada" in an empty HOME). But src/PROOF.bend and src/LAWS.bend no longer check:

- message  : a declared constructor (unknown: cli.St)
14 | def binds_of(st: Shake.St) -> List<&2, Shake.Bind>:   (src/grow.bend)

Cause: an entry in a subdirectory (src/PROOF.bend) imports a file in the parent (../main.bend) that imports back into the subdirectory (./src/cli.bend), while another file in the subdirectory imports the same file directly (src/grow.bend: ./cli.bend). bend 2.0.28 loses that file's constructors. Minimal repro, no shake code:

# top.bend
import Base
import ./sub/a.bend as A
def g(t: A.T) -> A.T:
  t

# sub/a.bend
import Base
type T is Data:
  T{x: Bool}

# sub/e.bend      ->  bend sub/e.bend --check-only
import Base
import ../top.bend as Top
import ./a.bend as A
def f(t: A.T) -> A.T:
  A.T{x} = t
  A.T{x}

gives a declared constructor (unknown: a.T) (and a defined name, observed ../sub/a.T with the imports swapped). Changing grow/walk's import to ../src/cli.bend or renaming their alias does not help. An entry at the repo root importing main.bend and src/grow.bend checks fine. On main with bend 2.0.27 ez prove passes.

CI is expected red until ez and bolt build on 2.0.28

nix flake check builds ez v1.2.0 and bolt v1.8.0 with the flake's bend, and neither builds on 2.0.28 yet:\n- ez v1.2.0: duplicate declaration: Window (a hub dependency, the sha256 message-schedule type Window, redeclares a Base name)\n- bolt v1.8.0: duplicate declaration: Set in bolt's src/config.bend\n\nSo the proofs and lint checks and the devshell fail here until those are re-released. Verified locally instead: bend 2.0.28 --check-only over every tracked .bend file, ez prove (ez 1.2.0 driving bend 2.0.28), ez test (0/0, same as main), and bolt v1.8.0 (built on 2.0.27) over this tree (same result as main).\n

🤖 Generated with Claude Code

https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj

`nix flake update bend` moves the bend input to bendlang/bend main
(11c65a2), which is bend 2.0.28. The ez input stays at v1.2.0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vp3SCG5bcKMF4fUytZTwPj
@noah-emp

Copy link
Copy Markdown
Collaborator Author

Closing: shake stays on bend 2.0.27 for now. Its package and README already work on 2.0.28; only src/PROOF.bend hits the 2.0.28 import-path bug described above.

@noah-emp noah-emp closed this Sep 25, 2026
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