Skip to content

fix(mir): close eager continuation lowering - #675

Merged
sanohiro merged 3 commits into
mainfrom
agent/pkg-db-l2b-a2-ac
Jul 30, 2026
Merged

fix(mir): close eager continuation lowering#675
sanohiro merged 3 commits into
mainfrom
agent/pkg-db-l2b-a2-ac

Conversation

@sanohiro

@sanohiro sanohiro commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • close the L2b-a2-ac required-child continuation protocol across eager MIR lowering
  • maintain O(1) block reachability and reject zero-predecessor joins without emitting parent actions
  • preserve temporary ownership and cleanup across terminating children
  • add whole-program and per-unit regressions for expression families, source-compatible function values, map_err, and owned-string field views
  • split exhaustive handcrafted-HIR validation into the independently mergeable L2b-a2-am-g and L2b-a2-am-b follow-up contracts

Verification

  • scripts/pre-pr.sh (includes scripts/test-pr.sh and workspace/all-target Clippy with warnings denied)
  • cargo test -p align_mir
  • cargo test -p align_driver --test mir_continuation
  • cargo test -p align_driver --test expr_depth within_limit_chain_compiles_and_runs
  • cargo test -p align_driver --test per_unit_codegen eager_expression_termination
  • focused source-compatible callback and owned-string field owners
  • clean HEAD/base-bound independent adversarial review

The full expr_depth binary still reproduces its unchanged sema-time deep_within_limit_expression_is_accepted stack overflow on origin/main under local Rust 1.96.1. The MIR-owned depth target above passes, and the debug lower_expr frame improves from 77,168 to 75,808 bytes.

Benchmark

Apple Silicon provenance fixture:

summary-inference          3.136 ms/check   22,848 bytes
import-validation         1.835 ms/import
mir-continuation-lowering 1.105 ms/lower    2,561 blocks

Review closure

The post-open review cycle inspected the complete pushed diff at d2fa63425dc1a5e8754c8c93ddd168eee3ae22d6. Its one valid finding was fixed in the final follow-up: malformed dynamic/SoA field metadata is now rejected before SliceLen or any field action. The malformed-metadata owner test, full align_mir tests, MIR-continuation driver tests, string-view and SoA owners, and align_mir Clippy pass. Per repository policy and explicit user direction, this bounded P2 fix was closed by the finding-to-fix ledger; no second full-diff review was run.

@sanohiro
sanohiro marked this pull request as ready for review July 30, 2026 13:57
@sanohiro
sanohiro merged commit 2d9ad8e into main Jul 30, 2026
5 of 7 checks passed
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