Skip to content

adopt meld 0.65.1; linmem-capture derives its offsets (AFD-143) - #304

Merged
avrabe merged 1 commit into
mainfrom
feat/meld-0.65.1
Oct 28, 2026
Merged

avrabe merged 1 commit into
mainfrom
feat/meld-0.65.1

Conversation

@avrabe

@avrabe avrabe commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Change: meld 0.62.0 → 0.65.1 (artifacts.pins + ci.yml MELD_VERSION). Every byte is attributed in the pins comment:

  • 0.64 adds the pack-rebase guard (meld#479, SR-102): +16 B per packed provider.
  • That moves the ekf return area from 0xb024 to 0xb064.
  • 0.64 → 0.65.1 doesn't change the lowered object; only the attestation differs.

On-target behaviour is unchanged. QEMU ARM fold 6ec49e30 == wasmtime 6ec49e30, and the 14-field return area is identical.

Prerequisite fixed (AFD-143). linmem-capture.sh broke twice without any check going red:

  • A hardcoded export name started raising KeyError after AFD-141.
  • A hardcoded offset kept the precondition passing after the layout moved: |q| = 0.51 at the old 0xac18.

It now derives the module, the export and the return area, and it requires |q| = 1. A new --check-inputs mode needs no QEMU and runs in CI (on-target-oracles).

Controls:

  • ekf@0.11.0 resolves at 0xb064 and the frozen ekf@0.10.0 repro at 0xb024; both pass.
  • TICKS=0 fails (no return pointer).
  • The old 0xac18 is rejected (|q| = 0.51).
  • The check passes with qemu off PATH.

Classified, not introduced: the whole-memory diff shows 10 DIVERGENT words at 0xe000–0xe044. They are the harness's staged input vehicle-state (matches cascade_ref.py VEHICLE_STATE), written only by the ARM boot code. They are byte-identical on the 0.62 and 0.65.1 builds, so they predate this bump.

rivet validate (0.35.0): Result: PASS.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EKh2onUHpWSUiAEqWxfy2

…dcode (AFD-143)

meld 0.62.0 -> 0.65.1, attributed in artifacts.pins: 0.64's 7-byte pack-rebase guard
(meld#479, SR-102) adds 16 B per packed provider and moves the ekf return area
0xb024 -> 0xb064; 0.64 -> 0.65.1 is a no-op on the lowered object apart from attestation.
On-target behaviour unchanged: QEMU ARM fold 6ec49e30 == wasmtime 6ec49e30, the 14-field
return area identical.

The prerequisite was linmem-capture.sh, which had broken twice without going red: a
hardcoded export name (KeyError after AFD-141) and a hardcoded return-area offset (the
fixed-offset precondition kept passing after the layout moved: |q| = 0.51 at the old
0xac18). It now derives the module, the export and the return area, requires |q| = 1,
and has a --check-inputs mode (no QEMU) that CI runs in on-target-oracles.

The 10 DIVERGENT words at 0xe000 are the harness's staged input vehicle-state, written
only by the ARM boot code; byte-identical on the 0.62 and 0.65.1 builds, so pre-existing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EKh2onUHpWSUiAEqWxfy2
@avrabe
avrabe merged commit b810466 into main Oct 28, 2026
9 checks passed
@avrabe
avrabe deleted the feat/meld-0.65.1 branch October 28, 2026 09:29
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