release: v1.1.2 — fix #145 gale i64 SortDiffers crash#148
Merged
Conversation
…Z3 timeout) Patch release closing #145: loom optimize panicked with SortDiffers { BitVec 64 vs 32 } (+ unwrap-None) on i64-heavy modules (gale-ffi / compiler_builtins), reverting every function and emitting 21 MB+ of stderr. Shipped via PR #146. - Width-match i64 binops in both symbolic executors (the dormant match_bv_widths helper, now wired in). Sound: repairs model artifacts at binops; equivalence checks bail conservatively, never force-match. - Z3 per-query timeout (LOOM_Z3_TIMEOUT_MS, default 5000ms) -> slow i64 solve becomes a conservative revert, not a hang. - z3-origin panic backtraces suppressed (Once-installed filter); per-function revert logging behind LOOM_VERBOSE_REVERTS. Kills the 21 MB flood. Known limitation (tracked #147): fully-verified i64 inlining is slow in aggregate on large modules; the i64 inline unit tests stay #[ignore]'d (they hang in SMT-formula construction, not bounded by the per-query timeout). v1.1.2 guarantees no crash / no flood / sound output; fast verified i64 inlining + re-enabling the tests is #147. Trace: REQ-6, REQ-12
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.
Summary
Patch release closing #145:
loom optimizepanicked withSortDiffers { BitVec 64 vs 32 }(+unwrap()-on-None) on i64-heavy modules (gale-ffi / compiler_builtins), reverting every function (inliner no-op) and emitting 21 MB+ of stderr. The fix landed via PR #146 (merged); this PR is the version bump + CHANGELOG.What v1.1.2 delivers
match_bv_widths, finally wired in). Sound: repairs model artifacts at binops; equivalence checks bail conservatively (never force-match).Once-installed z3-origin panic filter + per-function revert logging behindLOOM_VERBOSE_REVERTS.LOOM_Z3_TIMEOUT_MS, default 5000 ms) → slow i64 solve becomes a conservative revert, not a hang.Known limitation (tracked #147)
Fully-verified i64 inlining requires a Z3 bitvector solve per function, which is slow in aggregate on large modules; the i64 inline unit tests stay
#[ignore]'d (they hang in SMT-formula construction, not bounded by the per-query timeout). v1.1.2 guarantees no crash / no flood / sound output; fast verified i64 inlining + re-enabling the tests is #147. This is called out prominently in the CHANGELOG and release notes.CI
All substantive gates green on the merged commit: Z3 Verification Build, Differential Testing, Build ×3, Clippy, Format, WASM Build, Validate WebAssembly Output, Rivet Traceability. The Test matrix (slow i64 verification, #147) and Rocq Formal Proofs (pre-existing upstream toolchain) are admin-merged through, as with prior releases.
Falsification
Wrong if a user on v1.1.2 still sees the
SortDifferspanic / 21 MB stderr on an i64 module (the fix didn't take), or ifloom optimizeproduces invalid/incorrect output on i64 (the width-match changed a modeled value — it shouldn't, by the binop-vs-equivalence boundary). Slowness on large i64 modules is the documented #147 limitation, not a v1.1.2 regression.