Skip to content

Releases: pulseengine/synth

synth v0.15.0

24 Jun 17:01
cc203ec

Choose a tag to compare

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

24 Jun 11:05
6b46f09

Choose a tag to compare

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

24 Jun 04:28
377b93e

Choose a tag to compare

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

22 Jun 23:59
068f6ed

Choose a tag to compare

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

22 Jun 08:48
8489153

Choose a tag to compare

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

19 Jun 22:46
f5dc32d

Choose a tag to compare

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

19 Jun 10:55
39010ce

Choose a tag to compare

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

18 Jun 22:13
636d95e

Choose a tag to compare

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

18 Jun 05:17
b8cfd03

Choose a tag to compare

What's Changed

Full Changelog: v0.11.46...v0.11.47

synth v0.11.46

17 Jun 20:01
050e077

Choose a tag to compare

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