Skip to content

Path-D v2-side regen_stage0 bin — mirror v3's regen_bootstrap pattern (sunny-otter-371/#3407 recommendation) - #3471

Merged
briansrls merged 9 commits into
mainfrom
session/stern-deer-537
May 21, 2026
Merged

briansrls merged 9 commits into
mainfrom
session/stern-deer-537

Conversation

@briansrls

@briansrls briansrls commented May 21, 2026 •

Copy link
Copy Markdown
Contributor

Expected-Red Callout

This PR's cargo run -p v2-compiler --bin regen_stage0 -- --verify gate is EXPECTED-RED on first run. It documents pre-existing v2 stage0 seed drift that the substrate-fill follow-up will close. Do not make the gate permissive with || true; the honest red result is the mechanism surfacing the drift.

Summary

Adds a v2 regen_stage0 bin mirroring v3's regen_bootstrap pattern: --verify compares committed generated stage0 Rust against a fresh self-compile, while no flag writes the registered generated outputs. The PR also wires CI/scripts/BOOTSTRAP.md to the new mechanism and replaces the broken ignored-test gate path.

The regen driver fail-closes on output-set drift: fresh emitted top-level .rs files must be registered in GENERATED_STAGE0_FILES, registered files must be emitted, and committed generated stage0 files cannot sit outside the registry.

Follow-Up: v2 Stage0 Seed Drift Exposed by regen_stage0

The new gate exposes current v2 seed drift. A fresh self-compile differs in these 16 generated files:

  • extdeps_languages_rust_emit.rs: runtime function registry adds Set intrinsics mapping empty_set -> rc_empty_set, set_insert -> rc_set_insert, set_union -> rc_set_union, set_contains -> set_contains.
  • std_effects.rs: by-ref signature drift for derive_op_effect method/path plus match formatting; no observed set unresolved errors.
  • std_graph.rs: visited sets move from Rc<HashMap<String,bool>>/local set_has to Rc<BTreeSet<String>> plus empty_set/set_insert/set_contains calls; fresh build has missing set helpers.
  • std_http_path.rs: optional split handling changes from empty-string fallback to MalformedPathSegment returns; no observed set unresolved errors.
  • v2_compiler_complexity.rs: SCC member/assigned sets move from HashMap bool-sets to BTreeSet plus empty_set/set_insert/set_contains; includes UNRESOLVED_TypeVariable in fold accumulator.
  • v2_compiler_effect_derivation.rs: import/signature adaptation for derive_op_effect by-ref method/path; no observed set unresolved errors.
  • v2_compiler_emit.rs: render_node_type shared_types moves from HashMap bool-set to BTreeSet and set_contains/empty_set.
  • v2_compiler_emit_rust.rs: broad Rust emit surface moves recursive/shared/ownership/read-only sets from HashMap bool-sets to BTreeSet; many empty_set/set_contains/set_insert/set_union helper calls plus UNRESOLVED_TypeVariable accumulators.
  • v2_compiler_infer.rs: EmitGraphInfo set fields move from HashMap bool-sets to BTreeSet and empty_emit_graph_info uses empty_set; set_contains replaces map_get bool probes.
  • v2_compiler_infer_cycle.rs: cycle/name set logic moves from HashMap bool-sets to BTreeSet helpers; fresh build has missing empty_set/set_contains/set_insert and UNRESOLVED_TypeVariable.
  • v2_compiler_infer_emit_info.rs: EmitGraphInfo set fields/constructors move to empty_set/set_contains; fresh build has missing empty_set/set_contains.
  • v2_compiler_infer_lookup.rs: adds set_element_type_in_env and imports node_is_set_collection; no observed direct helper unresolved errors.
  • v2_compiler_infer_method.rs: set_union builtin registry clone fix; builtin names already seeded here.
  • v2_compiler_infer_types.rs: adds node_is_set_collection and bare_set_node; no observed direct helper unresolved errors.
  • v2_compiler_ownership.rs: ownership/read-only/callable-ref sets move from HashMap bool-sets to BTreeSet helpers; fresh build has missing empty_set/set_insert/set_contains/set_union and UNRESOLVED_TypeVariable.
  • v2_compiler_runtime_rust.rs: runtime shim text adds BTreeSet import plus rc_empty_set/rc_set_insert/rc_set_union/set_contains implementations.

Unresolved generated function names observed when checking fresh emission:

File empty_set set_contains set_insert set_union
std_graph.rs 2 3 2 0
v2_compiler_complexity.rs 4 2 2 0
v2_compiler_emit.rs 1 1 0 0
v2_compiler_emit_rust.rs 16 23 4 1
v2_compiler_infer.rs 9 3 5 0
v2_compiler_infer_cycle.rs 2 2 3 0
v2_compiler_infer_emit_info.rs 6 1 0 0
v2_compiler_ownership.rs 11 1 3 9

compile_error!("UNRESOLVED_TypeVariable") appears in fresh emitted BTreeSet fold accumulator positions in five files:

  • v2_compiler_complexity.rs
  • v2_compiler_emit_rust.rs
  • v2_compiler_infer.rs
  • v2_compiler_infer_cycle.rs
  • v2_compiler_ownership.rs

Type-mismatch failures are E0308 HashMap-vs-BTreeSet shape conflicts: examples include expected &HashMap<String, _> found &Rc<BTreeSet<String>>, expected Rc<HashMap<String, bool>> found Rc<BTreeSet<String>>, and expected Rc<BTreeSet<String>> found Rc<HashMap<String, bool>>.

Hypothesis: the substrate intent for Set/BTreeSet appears present upstream of the seed (runtime shim text, builtin function registry, and container template/type probes all exist in .dag or generated fresh output), but the committed v2 stage0 seed is still on mixed HashMap-as-bool-set conventions. The failing fresh output is therefore not just a missing import; v2's current emitter/type inference mapping is partly applying the newer Set/BTreeSet model while still leaving call sites/import wiring and accumulator element inference unresolved. That puts the gap at the emitter/type-inference/seed boundary rather than solely in one runtime carrier.

Test Plan

  • cargo build -p v2-compiler --release — passes on the restored committed stage0 seed.
  • cargo check -p v2-compiler --bin regen_stage0 — passes.
  • cargo test -p v2-compiler --bin regen_stage0 — passes.
  • cargo fmt --all --check — passes.
  • cargo run -p v2-compiler --bin regen_stage0 -- --verify — expected-red: fails with the 16-file stale report above.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 9111ecc7 · Trigger: schedule
  • Thinking: 296s wall

BLOCKING (1)

Root Cause

  • src/v2/stage0/src/bin/regen_stage0.rs The generated-output registry is trusted as complete without reconciling it against compile_sources output → compare the fresh emitted src/*.rs file set to GENERATED_STAGE0_FILES and fail on any unregistered fresh file or stale committed generated file before write/verify.

⚠️ The regen driver needs an output-set completeness check before it can replace the stage0 gate.

fn rustfmt_generated_crate(dir: &Path) -> Result<(), String> {
let output = Command::new("cargo")
.arg("fmt")
.arg("--all")

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: --verify only compares paths already named in GENERATED_STAGE0_FILES, so a fresh self-compile can emit a new unregistered stage0 file and CI will still pass without committing it, violating INVARIANTS P2/P3 freshness and fail-closed boundary discipline.

@briansrls
briansrls marked this pull request as ready for review May 21, 2026 03:36
@briansrls

Copy link
Copy Markdown
Contributor Author

Reviewed dashboard-only approval artifact /api/reviews/15641/artifacts/stdout.log.

No blocking findings to fix. I verified the optional observations against the current diff:

  • The inline generated.method_template_projection fixture is intentional for this mechanism PR; the underlying producer/drift disposition remains the operator-held follow-up captured in the drift artifact rather than additional scope here.
  • Replacing the old ignored bootstrap_fixed_point CI path with regen_stage0 --verify is the intended Path-D gate change; the dropped idempotence coverage is an operational note, not a requested fix.
  • WIP commit history is covered by the repo squash-merge policy.

No code change for this approval artifact. — sent from stern-deer-537

@briansrls
briansrls merged commit 6d62abf into main May 21, 2026
24 of 28 checks passed
@briansrls briansrls mentioned this pull request May 22, 2026
6 tasks
briansrls added a commit that referenced this pull request May 25, 2026
…0 --verify GREEN (closes drift exposed by PR #3471) (#3477)

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* WIP: v2 stage0 substrate-fill — Set/BTreeSet migration to make regen_stage0 -

* chore: regen stage0 — sync generated files after Set/BTreeSet dag changes

Three generated files (extdeps_languages_rust_emit.rs, v2_compiler_emit_rust.rs,
v2_compiler_infer.rs) were stale relative to the updated .dag sources. Ran
`cargo run -p v2-compiler --bin regen_stage0` to regenerate; fixes v2 CI check.

* ci: trigger — force re-run after stage0 regen

* ci: re-trigger after regen fix — attempt 2

* chore: regen stage0 after merge with main

After merging origin/main into the PR branch, 8 of the 62 generated stage0
files differed from a fresh self-compile (the merge brought in new .dag files
from 99 main commits). Ran `cargo run -p v2-compiler --bin regen_stage0` on
the merged tree to produce consistent generated sources.

* chore: regen stage0 — fixpoint iteration 2 (BTreeSet migration)

Previous regen built the binary from mixed stage0 state; this iteration
uses the updated binary (compiled from regen-1 output) to reach the
correct fixpoint where Set→BTreeSet API is fully propagated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: soften empty_set unresolved fallback to rc_empty_set::<_>() for Rust inference

The strict compile_error!() for unresolved empty_set element types breaks
the v2 compiler self-compilation: several sites in 04_infer.dag and
ownership.dag use empty_set() in fold inits and set_insert receivers where
the type is inferrable by Rust but not by the single-pass v2 inferencer.
Fall back to v2_rt::rc_empty_set::<_>() so Rust's own type inference
fills the gap, matching the behaviour before the BTreeSet migration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: manually patch stage0 compile_error!() to rc_empty_set::<_>() fallback

Bridge patch to allow the stage0 binary to compile so regen can reach
fixpoint: replace 12 compile_error!("empty_set element type unresolved")
with v2_rt::rc_empty_set::<_>() and annotate the build_fielded_variants
outer fold accumulator explicitly to resolve E0282. These manual edits
will be overwritten by the next regen run.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: regen stage0 — fixpoint iteration 3 (BTreeSet migration complete)

Binary compiled from bridge-patched stage0 now regenerates all modules
with rc_empty_set::<_>() fallback instead of compile_error!(). Stage0
should now be at fixpoint.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@briansrls
briansrls deleted the session/stern-deer-537 branch June 1, 2026 18:43
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.

1 participant