Skip to content

Releases: pulseengine/synth

synth v0.18.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 20:32
481f030

What's Changed

  • fix(vcr-ra): const-CSE size-regression guard — CSE-last + per-segment size guard (#242) by @avrabe in #519
  • docs(rivet): VCR-DEC-003 — settle synth-provenance-v1 contract for witness MC/DC reconciliation (#396) by @avrabe in #520
  • docs(rivet): VCR-DEC-003 — resolve witness provenance offset-domain (#396) by @avrabe in #521
  • test(vcr-ra): non-vacuous --relocatable gate for const-CSE — proves it fires + stays correct on gale's path (#242) by @avrabe in #522
  • chore(vcr-mem): re-validate scry consumed surface against scry-sai-core 2.3.0 (#383, #242) by @avrabe in #523
  • docs(vcr): correct #503 falcon result — gale-verified 0 of 3, not 2 of 3 (#503, #242) by @avrabe in #524
  • test(vcr-oracle): #518 oracle-first — characterize i64-param miscompile on both selectors (#242) by @avrabe in #525
  • test(vcr-oracle): broaden #518 oracle to the full AAPCS i64-param matrix (#242) by @avrabe in #526
  • test(vcr-mem): pin scry 2.5.0 FEAT-039 open-world reachability soundness (#383, #242) by @avrabe in #527
  • test(vcr-oracle): pin #518 cross-backend contrast — RV32 loud-skips vs ARM silent miscompile (#242) by @avrabe in #528
  • test(vcr-oracle): #509 oracle-first — value-returning-branch drop on the shipped path (#242) by @avrabe in #529
  • chore(ci): pin rivet v0.22.0 (release-handling) + document the readiness gate (#516) by @avrabe in #530
  • chore(deps): bump anyhow from 1.0.102 to 1.0.103 by @dependabot[bot] in #536
  • fix(arm): home i64 params per AAPCS register-pairs — close #518 silent miscompile (#242) by @avrabe in #531
  • chore(release): v0.18.0 — i64-param AAPCS homing (#518) by @avrabe in #537

Full Changelog: v0.17.0...v0.18.0

synth v0.17.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 19:59
11b1427

What's Changed

  • chore(deps): bump scry-sai-core dev-dep to 2.0 (SCPV v3) by @avrabe in #506
  • fix(arm): optimized path declines br_table to the direct selector (#507, #242) by @avrabe in #508
  • docs(vcr): record optimizer_bridge/selector frontier second arc + #509 negative result (#242) by @avrabe in #510
  • test(vcr-oracle): estimator↔encoder agreement oracle for the optimized path (#498, #242) by @avrabe in #511
  • test(optimizer-bridge): delegate count_arm_byte_size to the production estimator (#511 follow-on, #242) by @avrabe in #512
  • test(vcr-ra): reg_effect ↔ rewrite_op def/use consistency oracle (#242) by @avrabe in #513
  • feat(vcr-ra): optimized-path const-CSE behind SYNTH_CONST_CSE (flag-off) (#242) by @avrabe in #514
  • feat(vcr-ra): frame-slot dead-store elimination behind SYNTH_STACK_FWD (flag-off) (#242) by @avrabe in #515
  • feat(vcr-ra): flip stack-reload-forwarding + frame-slot DCE to default-on (#242) by @avrabe in #516
  • chore(release): v0.17.0 — stack-fwd + frame-slot DCE default-on (#242) by @avrabe in #517

Full Changelog: v0.16.0...v0.17.0

synth v0.16.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 05:42
4a6b1ef

What's Changed

  • perf(vcr-ra): scope #468 redundant memory-base materialization (spike) by @avrabe in #469
  • perf(vcr-ra): scope VCR-RA-002 leaf prologue shrink (spike) by @avrabe in #471
  • docs(vcr-ra): resolve #470 — optimized-path ABI model is non-AAPCS by design by @avrabe in #473
  • fix(vcr-ra): local promotion must never cause a compile failure (#474) by @avrabe in #475
  • docs(vcr-ra): map the register-exhaustion recovery ladder (#242) by @avrabe in #476
  • feat(vcr-ra): per-rung recovery-stats counter + measured ladder map (#242) by @avrabe in #478
  • chore(release): v0.15.1 — bug-fix: local promotion never causes a compile failure (#474) by @avrabe in #477
  • test(vcr-ra): shadow allocator vs recovery ladder — spurious vs genuine spill (#242) by @avrabe in #479
  • feat(vcr-ra): uxth/uxtb mask fold, flag-off (#428, #242) by @avrabe in #480
  • feat(vcr-ra): dead-frame elimination for promoted-local leaves, flag-off (#390, #242) by @avrabe in #481
  • feat(vcr-ra): base-CSE — hoist linear-memory base once per field-init, flag-off (#468, #242) by @avrabe in #482
  • docs(vcr-ra): RISC-V lever-parity scoping spike — map ARM perf levers to RV32 (#472, #242) by @avrabe in #484
  • test(vcr-ra): RV32 lever baselines — pin pre-lever codegen for #472 levers (#472, #242) by @avrabe in #485
  • docs(vcr): log RV32 lever-baseline + scoping slice in the roadmap (#472, #242) by @avrabe in #486
  • feat(vcr-ra): RV32 immediate-shift-fold — const shift amount into slli/srli/srai, flag-off (#472, #242) by @avrabe in #487
  • docs(vcr): log the driver-class non-leaf thin-forwarder prologue frontier (#428, #242) by @avrabe in #488
  • ci(vcr-oracle): CI-gate the RV32 immediate-shift-fold execution oracle (#472, #242) by @avrabe in #489
  • feat(vcr-ra): RV32 const-address-fold — fold constant addr into the access immediate off s11, flag-off (#472, #242) by @avrabe in #491
  • fix(ci): exclude synth-verify from the Test job to stop z3 disk exhaustion (#306) by @avrabe in #493
  • docs(vcr): record that #490 blocks the non-leaf prologue lever (#428, #490, #242) by @avrabe in #492
  • fix(vcr-ra): optimized path preserves callee-saved r4-r8 — AAPCS prologue (#490, #242) by @avrabe in #495
  • fix(optimizer): optimized-path block/br_if branch lands mid-instruction (#483, #242) by @avrabe in #497
  • docs(vcr): record landed optimized-path fixes + the optimizer_bridge control-flow frontier (#242) by @avrabe in #501
  • fix(optimizer): optimized path declines to direct on R4-R8 exhaustion (#496, #242) by @avrabe in #502
  • fix(arm): lower functions needing the AAPCS stack-arg path with >8 scalar params/args (#503, #242) by @avrabe in #504
  • chore(release): v0.16.0 — AAPCS stack-arg path lowers >8 scalar params/args (#503) by @avrabe in #505

Full Changelog: v0.15.0...v0.16.0

synth v0.15.1

Choose a tag to compare

@github-actions github-actions released this 24 Jun 21:38
21a3572

What's Changed

  • perf(vcr-ra): scope #468 redundant memory-base materialization (spike) by @avrabe in #469
  • perf(vcr-ra): scope VCR-RA-002 leaf prologue shrink (spike) by @avrabe in #471
  • docs(vcr-ra): resolve #470 — optimized-path ABI model is non-AAPCS by design by @avrabe in #473
  • fix(vcr-ra): local promotion must never cause a compile failure (#474) by @avrabe in #475
  • docs(vcr-ra): map the register-exhaustion recovery ladder (#242) by @avrabe in #476

Full Changelog: v0.15.0...v0.15.1

synth v0.15.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 17:01
cc203ec

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

Choose a tag to compare

@github-actions github-actions released this 24 Jun 11:05
6b46f09

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

Choose a tag to compare

@github-actions github-actions released this 24 Jun 04:28
377b93e

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

Choose a tag to compare

@github-actions github-actions released this 22 Jun 23:59
068f6ed

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

Choose a tag to compare

@github-actions github-actions released this 22 Jun 08:48
8489153

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

Choose a tag to compare

@github-actions github-actions released this 19 Jun 22:46
f5dc32d

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