Skip to content

v0.88 PREPBUMP (#1564): the lane wave — the #1436 float-home miscompile fixed, every lane in one PR, three blockers re-measured - #1564

Merged
avrabe merged 3 commits into
mainfrom
v088-lanes
Oct 21, 2026
Merged

avrabe merged 3 commits into
mainfrom
v088-lanes

Conversation

@avrabe

@avrabe avrabe commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

v0.88 lane wave: one consolidated PR for every lane, per v0.87's hold-window finding.

Delivered

Refuted, with evidence

Still blocked, re-measured

Wrong-code fix

🤖 Generated with Claude Code

https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

@codecov

codecov Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.43836% with 49 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/synth-synthesis/src/instruction_selector.rs 63.43% 49 Missing ⚠️

📢 Thoughts on this report? Let us know!

t and others added 2 commits October 21, 2026 01:17
…trictness, width pin, extractor, ladder, and three blockers re-measured

RQ-88-PREPBUMP: release_version_check.py reds a PR whose CHANGELOG heads a
version the workspace is not at; its self-test replays d3c13c8 (must FAIL),
f69d354 and 897dbf6 (must PASS). Wired into Claim Check.
RQ-88-STRICTWIRE: workflow_strict_check.py runs over every other workflow from
Claim Check, and over ci.yml from a separate workflow-strict.yml, because a
ci.yml that cannot parse runs no step that could say so.
RQ-88-WIDTHPIN: the multi-memory width family is read by brace depth in the
dispatch, so narrowing the dispatch reds and editing a mapping line does not.
RQ-88-EXTRACTOR: file:line citations no longer leak line numbers into round
two's list, and spelled-out counts get their own bucket.
RQ-88-LADDER10: the ladder is re-measured on the corpus it was recorded as
blocked on (243 OK from modules/, every rung identical to v0.63).
RQ-88-ARCHMODEL7: the recurring filing check finds this release's filing.
RQ-88-MEMLAYER5: refuted by execution; the multi-memory refusal stays.
RQ-88-COMPLIANCE8: the carried blocked disposition is stale; reports attach.
RQ-88-NPM7 and RQ-88-FALCON5: re-measured, still blocked.

Refs #1550 #1551 #1552 #1553 #1432 #1136 #1145 #1453 #1460 #1318

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
…oat local is rewritten

The ekf divergence the reporter measured has one first divergent op: 28
stores into tick 1, func 2 f32.store offset=1448 writes +9.81 where wasmtime
writes 0. try_lower_f32 pushed a reference to a float local's home register,
and a second local.tee rewrote that register while the first value was still
on the stack — the float twin of #989, whose integer snapshot never covered
VFP homes. try_lower_f64 had the same gap.

detach_vfp_home_aliases copies every stack entry naming a float home into a
fresh temp before the home is written (bit-exact; VFP exhaustion is a loud
error), and detach_all_vfp_home_aliases does the same at every if/block/loop
entry, because a copy made on one branch exists only on that branch.

On the reporter's module (sha256 matched) every return word and all 16384
linear-memory words match wasmtime at 16 and 1024 ticks. The unfixed object
reproduces their QEMU trace exactly, which is the harness's positive control.
New CI differential vfp_home_alias_1436_differential.py: 88/136 vectors wrong
before, 0 after, negative controls green both ways. Byte identity with the
detach toggled: 382 module builds, 4177 functions, 0 differ. The selector-size
ratchet is waived 19805 -> 19974 with a reason in claims.yaml.

Refs #1436

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@avrabe avrabe changed the title v0.88 lane wave: every lane in one PR, and three blockers re-measured v0.88 PREPBUMP (#1564): the lane wave — the #1436 float-home miscompile fixed, every lane in one PR, three blockers re-measured Oct 21, 2026
@temper-pulseengine

temper-pulseengine Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ Outdated — this review was for an earlier revision. See the latest review below.

Automated review for PR #1564

pulseengine/synth:v088-lanes → pulseengine/synth:main

Verdict: 💬 Comment

Summary: The pull request contains several improvements and bug fixes, including adding new features like the word_numbers function for extracting spelled-out numbers from text. The changes also include optimizations to existing functions such as self_test and main. Overall, this is a solid improvement to the codebase.

Findings: 0 mechanical (rivet) · 1 from local AI model.

Findings (1):

  1. scripts/extract_r1_numbers.py:304
    if not cases:
    
    This line should be removed as it will cause an error when no test cases are provided.

Generated by a local AI model and post-validated against a strict JSON contract. Each finding includes the verbatim line being criticised — verify by reading the file at the cited location.

Reviewed at 3b11c8b

…ifferential, and two jobs are pinned off the ubuntu-26.04 rollout

The first CI run of #1564 reddened Claim Check on the exact emulation floor:
summed `ci-checks: emulations` floors 368057 != pinned 367921, ABOVE by
exactly the 136 vectors vfp_home_alias_1436_differential.py declares. The
pin moves in ci.yml and claims.yaml together (RQ-62-FLOORTIGHT), with the
bump recorded beside it. Paired: --exact-emulation-floor 368057 exits 0,
367921 exits 1.

Two non-required oracle jobs failed on the ubuntu-26.04 image that
ubuntu-latest began rolling to on 2026-10-21, and passed on ubuntu-24.04 on
main two days earlier: aarch64-oracle (qemu-user-static has no install
candidate) and repro-sweep-memory-oracle (the newer arm-none-eabi-ld rejects
an interworking relocation in postlink_359). Both are pinned to
ubuntu-24.04 with the reason inline; the port is filed as its own issue.
ci_pool_tripwire's UBUNTU_LATEST_CEILING ratchets 46 -> 44 with them.

Refs #1436 #1062

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@temper-pulseengine

Copy link
Copy Markdown
Contributor

Automated review for PR #1564

pulseengine/synth:v088-lanes → pulseengine/synth:main

Verdict: 💬 Comment

Summary: The changes requested have been implemented. The artifacts have been updated to reflect these changes.

Findings: 0 mechanical (rivet) · 3 from local AI model.

Findings (3):

  1. artifacts/release-v0.88/RQ-88-NPM7.yaml:23

          disposition: blocked
    

    The artifact's disposition should be 'implemented' instead of 'blocked'.

  2. artifacts/release-v0.88/RQ-88-FALCON5.yaml:27

          disposition: blocked
    

    The artifact's disposition should be 'implemented' instead of 'blocked'.

  3. artifacts/release-v0.88/RQ-88-ARCHMODEL7.yaml:2

        status: proposed
    

    The artifact's status should be 'implemented' instead of 'proposed'.


Generated by a local AI model and post-validated against a strict JSON contract. Each finding includes the verbatim line being criticised — verify by reading the file at the cited location.

Reviewed at 451724c

@avrabe
avrabe merged commit f982481 into main Oct 21, 2026
78 of 79 checks passed
@avrabe
avrabe deleted the v088-lanes branch October 21, 2026 08:09
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