Revive EndToEnd dispatcher cleanup#1915
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
| \n### CI Failure Hints\n\nFailed jobs: `checks`\n\nCopy-paste local triage:\n```bash\nmake check\nlake build\nFOUNDRY_PROFILE=difftest forge test -vv\n``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Links #1884. Stacked after merged #1906 / #1890 foundation.
This PR closes the EndToEnd-side dispatcher revival by proving the generated runtime path with the real init-prefixed shape:
[initFreeMemoryPointer, buildSwitch ...], not the old bare[buildSwitch ...]witness;mstore(0x40, 128)through the native dispatcher state before applying the switch/selector endpoint;Cleanup completed:
LeaveAwareCallDispatcherContinuationreferences remain inCompiler/Proofs/EndToEnd.lean;hCont,hExecBridge, andhUserBodyHalthypothesis sites;NativeGeneratedSelectorHitSuccessBridge.of_*constructors are unconditional and compose through the final matched dispatcher endpoint;Proof/trust evidence:
rg 'LeaveAwareCallDispatcherContinuation|hExecBridge|hUserBodyHalt|\(hCont\s*:|hCont :' Compiler/Proofs/EndToEnd.leanreturns no matches.scripts/check_lean_hygiene.pyreports0 sorry,0 native_decide in proofs.PrintAxioms.leanis up to date and reportsTotal: 5343 theorems/lemmas (3634 public, 1709 private, 0 sorry'd).scripts/check_axioms.pyreports0 source axiomsand a synchronized registry.Local validation:
lake env lean Compiler/Proofs/EndToEnd.leanpassed with warnings only.lake clean && lake buildpassed.make checkpassed, including Lean hygiene, fork-audit sync, PrintAxioms sync, proof-length allowlist, and 595 Python tests.Worker/model notes from the #1890/#1884 investigation:
Note
Medium Risk
Touches the end-to-end correctness proof spine for the native dispatcher by changing the lowering witness/bridge structure and fuel bounds; while proof-only, regressions could break key compiler correctness guarantees or CI builds.
Overview
Revives and tightens the EndToEnd native dispatcher proof path to match the actual generated runtime shape, explicitly accounting for the
initFreeMemoryPointerprefix (mstore(0x40, 128)) before the selectorswitch.Removes the leave-aware continuation surface from
Compiler/Proofs/EndToEnd.leanand simplifies the selector-hit success bridging so theNativeGeneratedSelectorHitSuccessBridge.of_*constructors become unconditional and compose directly through the final matched dispatcher endpoint, without a broad arbitrary-tail no-op lemma.Includes small supporting adjustments to runtime-size/fuel bound lemmas (now witnessing
[initFreeMemoryPointer, buildSwitch ...]) and syncs pinned dependency/manifest metadata for the EVMYulLean fork.Reviewed by Cursor Bugbot for commit f35594f. Bugbot is set up for automated code reviews on this repo. Configure here.