Releases: pulseengine/synth
synth v0.15.0
What's Changed
- feat(vcr-ra): immediate-shift folding peephole, flag-off (#390, #242) by @avrabe in #463
- ci: pin rivet-cli to v0.19.0 + version-key its cache (#242 release cadence) by @avrabe in #464
- fix(deps): align the wasm-tools crate family to the 252 release (#465) by @avrabe in #466
- feat(vcr-ra): ship immediate-shift folding default-on — v0.15.0 (#390, #242) by @avrabe in #467
Full Changelog: v0.14.0...v0.15.0
synth v0.14.0
What's Changed
- feat(perf): redundant stack-reload elimination — lever 1 toward native parity (#390, #242) by @avrabe in #455
- chore(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #431
- chore(deps): bump wat from 1.244.0 to 1.252.0 by @dependabot[bot] in #437
- feat(vcr-ra): i32 local promotion to callee-saved registers — flag-off v1 (#390, #242) by @avrabe in #458
- chore(deps): bump wasmparser from 0.248.0 to 0.252.0 by @dependabot[bot] in #434
- docs(vcr-ra): local-promotion scoping spike — cost + de-risk the parity lever (#390, #242) by @avrabe in #456
- test(vcr-ra): probe reallocator preserves cross-call callee-saved values (#390, #242) by @avrabe in #459
- docs(vcr-ra): close the leaf-only-lift end-to-end gap empirically (#390, #242) by @avrabe in #460
- test(vcr-sel): widen cross-backend op-parity oracle to the full integer core (#242) by @avrabe in #461
- feat(vcr-ra): ship i32 local promotion default-on — v0.14.0 (#390, #242) by @avrabe in #462
Full Changelog: v0.13.0...v0.14.0
synth v0.13.0
What's Changed
- test(vcr-perf): CI-gate the Pass-1 spill-pressure baseline (VCR-PERF-001, #390, #242) by @avrabe in #441
- docs(vcr-perf): record gale #428 v0.12.0 gust_mix re-measurement — cmp→select is #1 (#242) by @avrabe in #442
- test(dwarf): lock the --debug-line honest-fail contract on self-contained builds (VCR-DBG-001, #394, #242) by @avrabe in #443
- feat(vcr-sel): cmp→select → IT-block predication fusion, flag-off (VCR-SEL-004, #242, #428) by @avrabe in #444
- test(vcr-oracle): frozen-codegen .text byte gate in cargo CI (VCR-ORACLE-001, #242) by @avrabe in #445
- test(vcr-oracle): extend frozen-codegen byte gate to RV32 (VCR-ORACLE-001, #242) by @avrabe in #446
- docs(vcr-mem): cite meld v0.34.0 ADR-4 — multi-memory commitment shipped upstream (VCR-MEM-002, #242, #406) by @avrabe in #447
- test(vcr-sel): characterize the two-move arm as unreachable — root-cause gale's clamp-#2 decline (VCR-SEL-004, #428, #242) by @avrabe in #448
- feat(vcr-sel): reg_dead_by_redef recognizes the return terminator — two-move arm reachable (VCR-SEL-004 #7, #428, #242) by @avrabe in #449
- test(vcr-sel): cmp→select fusion census — blast-radius datum for the flip (VCR-SEL-004, #428, #242) by @avrabe in #450
- docs(vcr-sel): record fusion census in VCR-SEL-004 — refines the flip criteria (#242, #428) by @avrabe in #451
- test(vcr-oracle): execution-validate the cmp→select two-move arm in CI (VCR-ORACLE-001, #428, #242) by @avrabe in #452
- docs(vcr-oracle): record execution-differential slice + correct the qemu assumption (VCR-ORACLE-001, #242, #452) by @avrabe in #453
- feat(vcr-sel): ship cmp→select fusion default-on — v0.13.0 (VCR-SEL-004, #428, #242) by @avrabe in #454
Full Changelog: v0.12.0...v0.13.0
synth v0.12.0
What's Changed
- docs(changelog): correct v0.11.51 shrink confirmation scope — qemu-8KB, not on-silicon (#383) by @avrabe in #419
- test(dissolve): lock cabi-arena-realloc → __cabi_arena_realloc linkability (#418) by @avrabe in #420
- feat(vcr-mem): layer-2 shadow-stack budget decision logic, frozen-safe (#242, #383) by @avrabe in #421
- build(bazel): migrate crate_universe from_specs → from_cargo (#242) by @avrabe in #422
- test(vcr-mem): layer-2 end-to-end budget pipeline on real gust fixture (#242, #383) by @avrabe in #423
- test(vcr-mem): layer-2 cross-check on gust_kernel's flashed silicon budget (#242, #383) by @avrabe in #424
- test(vcr-mem): layer-2 honest-fail safety oracle — unbounded recursion refuses a proven budget (#242, #383) by @avrabe in #425
- feat(dwarf): capture per-instruction machine-offset → wasm-op source map (VCR-DBG-001, #242) by @avrabe in #427
- feat(dwarf): emit DWARF debug sections behind --debug-line (VCR-DBG-001, #242, #394) by @avrabe in #429
- chore(deps): bump scry-sai-core from 1.12.0 to 1.17.0 by @dependabot[bot] in #432
- chore(deps): bump pulseengine/rivet from 0.16.1 to 0.17.0 by @dependabot[bot] in #433
- chore(deps): bump wasm-encoder from 0.244.0 to 0.248.0 by @dependabot[bot] in #435
- chore(deps): bump gimli from 0.31.1 to 0.33.0 by @dependabot[bot] in #436
- chore(deps): bump wast from 248.0.0 to 252.0.0 by @dependabot[bot] in #438
- feat(dwarf): emit .rel.debug_* so a linker fixes up DWARF .text addresses (VCR-DBG-001 PR C, #394) by @avrabe in #430
- fix(dwarf): adapt LineProgram::new to gimli 0.33 6-arg signature (#436 fallout) by @avrabe in #439
- chore(release): v0.12.0 — DWARF source-line debugging (VCR-DBG-001, #242) by @avrabe in #440
Full Changelog: v0.11.51...v0.12.0
synth v0.11.51
Headline — VCR-MEM-001 layer-1 native-pointer shadow-stack shrink (#383)
--shadow-stack-size B is now active: under --native-pointer-abi it re-bases the shadow-stack top to B and shrinks the .bss reservation, unblocking large-memory modules on small-RAM targets. gale 's gust kernel dissolves to .bss 4240 (was ~1 MiB) and links into 8 KB.
Confirmation scope: qemu + 8 KB-constrained link (cortex-m3 lm3s6965evb): links into 8 KB (~4.8 KB used), boots, runs 5000 poll rounds with correct values. Physical STM32F100 reflash pending hardware — not literal-silicon-confirmed (gale #383). Opt-in / default-off.
Plus: cross-backend op-parity oracle (#387), register-polymorphic i32 pilot (#386), scry regalloc/stack-depth substrate, frozen-safe DWARF Tier-1 read→compose→emit logic (toward v0.12.0), and VCR traceability.
What's Changed
- feat(vcr-sel): register-polymorphic i32 lowering pilot — first VCR-SEL-001 measurement (#242) by @avrabe in #386
- feat(vcr-sel): cross-backend op-parity oracle — gate RV32-vs-ARM op-gaps (VCR-SEL-005, #242) by @avrabe in #387
- #383: --shadow-stack-size flag + VCR-MEM-001 design (honest-Err scaffold; retarget held for silicon) by @avrabe in #388
- docs(roadmap): #383 layer-2 unblocked by scry v1.11 (spike: msgq stack=32B vs 65536 reserved) by @avrabe in #389
- docs(roadmap): VCR-PERF-001 — gust 3.9× size gap, per-pass attribution (gale #390) by @avrabe in #391
- feat(vcr-mem): #383 layer-2 substrate — scry shadow-stack-depth proof verified in-tree (scry-sai-core v1.12) by @avrabe in #392
- docs(roadmap): VCR-RA-010 — scry-for-regalloc API-fitness check (spike: flight_seam 44/70 const locals) by @avrabe in #393
- docs(roadmap): source-to-object provenance spine — DWARF (#394) + MC/DC traceability (#396) by @avrabe in #395
- test(vcr-ra): lock scry's const-remat signal in-tree (VCR-RA-010 path-A substrate, #242) by @avrabe in #397
- docs(roadmap): VCR-DBG-001 → approved — DWARF Tier-1 feature-loop plan for v0.12.0 (first North-Star feature) by @avrabe in #398
- feat(dwarf): step 1 — decoder records per-op wasm byte offset (VCR-DBG-001, #394) by @avrabe in #399
- docs(rivet): wire scry cross-repo traceability — SCRY-001/REQ-011 + FEAT-023/REQ-012 by @avrabe in #400
- docs(roadmap): in-tree Pass-1 spill baseline — frozen-safe #390 reproduction (VCR-PERF-001, #242) by @avrabe in #402
- test(dwarf): step 2 — read input wasm .debug_line into (offset→line) rows (VCR-DBG-001, #394, #242) by @avrabe in #403
- docs(dwarf): step-3 de-risk — op_offsets vs DWARF address-space mismatch (VCR-DBG-001, #394, #242) by @avrabe in #405
- docs(roadmap): VCR-MEM-002 — multi-memory structural isolation lowering (#406, meld#300, #242) by @avrabe in #407
- docs(mem): VCR-MEM-001 layer-1 inputs in-hand — gust fixture + verified stack-first geometry (#383, #242) by @avrabe in #408
- feat(mem): VCR-MEM-001 layer-1 — native-pointer shadow-stack reservation shrink (#383, #242) by @avrabe in #409
- docs(rivet): close the requirement→test V for 5 implemented VCR features (#242) by @avrabe in #410
- docs(rivet): complete the native-pointer ABI verification cluster (#354/#359, #242) by @avrabe in #411
- docs(dwarf): step-3 fixture-acquisition finding — rustc/clang paths ruled out (VCR-DBG-001, #242) by @avrabe in #412
- test(dwarf): coherent-DWARF fixture unblocks step-3 (VCR-DBG-001, #242) by @avrabe in #413
- feat(dwarf): step-3 compose — op-index → source-line join (VCR-DBG-001, #242) by @avrabe in #414
- test(dwarf): step-4 emit-logic spike — read→compose→emit→read round-trips (VCR-DBG-001, #242) by @avrabe in #415
- docs(rivet): keep the DWARF verification artifact current with steps 1-4 (VCR-DBG-001, #242) by @avrabe in #416
- chore(release): v0.11.51 — VCR-MEM-001 shadow-stack shrink (#383) by @avrabe in #417
Full Changelog: v0.11.50...v0.11.51
synth v0.11.50
What's Changed
- fix(#378): fail honestly on out-of-layout local — never guess a frame offset by @avrabe in #379
- fix: encode_operand2 fails honestly on un-encodable ARM32 immediate (never mask) by @avrabe in #381
- fix(#382): materialize large static load/store offset (> imm12) — never skip the function by @avrabe in #384
- chore(release): v0.11.50 — #382 large load/store offset + #378/#381 honesty + GI-MEM-002→verified by @avrabe in #385
Full Changelog: v0.11.49...v0.11.50
synth v0.11.49
What's Changed
- feat(#374): lower memory.copy/memory.fill (bulk-memory) — bounds-checked, trap-correct + v0.11.49 by @avrabe in #376
Full Changelog: v0.11.48...v0.11.49
synth v0.11.48
What's Changed
- fix(#359): native-pointer .bss sizing for Abs32 static accesses + v0.11.48 (silicon-confirmed) by @avrabe in #375
Full Changelog: v0.11.47...v0.11.48
synth v0.11.47
What's Changed
Full Changelog: v0.11.46...v0.11.47
synth v0.11.46
What's Changed
- track: #354 verified on silicon (GI-NPA-004) + #209 spill-reduction decision (VCR-DEC-002) by @avrabe in #358
- fix(selector): #359 — full AAPCS i32 stack arguments (calls/params with >4 args) by @avrabe in #360
- fix(ci): signing-e2e — XFAIL on sigstore cert-pin rotation, not a hard fail by @avrabe in #361
- chore(deps): bump wast from 244.0.0 to 248.0.0 by @dependabot[bot] in #365
- fix(selector): #359 — relocate dynamic-index static-data accesses under native-pointer ABI by @avrabe in #368
- chore(deps): bump bitflags from 2.10.0 to 2.13.0 by @dependabot[bot] in #367
- chore(deps): bump wasm-encoder from 0.219.2 to 0.244.0 by @dependabot[bot] in #366
- chore(deps): bump pulseengine/rivet from 0.16.0 to 0.16.1 by @dependabot[bot] in #363
- track: #369 — scalar f32/f64 silently dropped at decode (GI-FPU-001/002) by @avrabe in #370
- chore(deps): bump wasmparser from 0.219.2 to 0.248.0 by @dependabot[bot] in #364
- fix(#369): unsupported decoder ops loud-skip, never silently drop (GI-FPU-001) by @avrabe in #371
Full Changelog: v0.11.45...v0.11.46