Skip to content

Commit c7cf43e

Browse files
avrabeclaude
andauthored
chore(release): v0.11.35 — pin sweep + changelog (#286)
Workspace version + all path-dep pins + MODULE.bazel → 0.11.35. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 5181d0c commit c7cf43e

13 files changed

Lines changed: 74 additions & 42 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.11.35] - 2026-06-09
11+
12+
**In-place select + spill-cost ranking — the first VCR codegen-quality release
13+
(#209/#242, VCR-SEL-002).**
14+
15+
- **In-place select (#283):** the stack selector's `Select` lowering reuses
16+
`val2`'s register as the destination when `val2` is a consumed temp (not a
17+
live param, distinct from cond/val1), eliding the `EQ` "keep val2"
18+
conditional move — one `IT;MOV` per qualifying select instead of two, which
19+
is what native emits for a clamp `(x>k)?k:x`. Falls back to the fresh-dst
20+
two-move form when the guards don't hold (#193 param-clobber class).
21+
Measured `.text`: control_step 378→354 B (−6.3 %), flight_seam inlined
22+
1058→1020 B (−3.6 %), flat 1294→1244 B (−3.9 %). All four differential
23+
fixtures RESULT-identical (control_step 13/13 `0x00210A55`, flight_seam
24+
inlined+flat `0x07FDF307`, div_const 338/338).
25+
- **Spill-cost ranking (#285, VCR-RA-001 wiring step 2):** the Chaitin/Briggs
26+
colourer picks optimistic spill candidates by cost/degree (cost = def+use
27+
occurrence count) instead of degree-only; the uncosted API reproduces the
28+
historic choice exactly. Pure and unwired — fixture ELFs bit-identical.
29+
- **Allocator substrate (#279#281, unwired/flag-gated):** SelectMove/Select
30+
modeled in `reg_effect`; allocator driver + `SYNTH_SHADOW_ALLOC` shadow
31+
pass; const-CSE rematerialization-avoidance behind `SYNTH_CONST_CSE`.
32+
- **VCR traceability (#282, #284):** VCR-SEL-002/VCR-RA-002 filed;
33+
tool-qualification top-of-V (VCR-TQ-001/002: DO-178C/ISO 26262/IEC 61508/
34+
EN 50128 classification + evidence pillars); release-plan tags
35+
(`release-vX.Y`, queryable via `rivet list --filter`).
36+
37+
Falsification: this release is wrong if any module produces a different
38+
*result* than wasmtime where `val2`'s register was still needed after a select
39+
— watched by the four differentials and gale's on-target baselines
40+
(filter_axis 37 / control_step 158 / flat_flight 255 / controller_step 162).
41+
1042
## [0.11.34] - 2026-06-05
1143

1244
**Un-wire the default-on `mul`+`add``mla` fusion — it regresses on-target until

Cargo.lock

Lines changed: 17 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ resolver = "2"
2727
# semver to publish, so the convention now catches up: workspace
2828
# version follows the release tag, bumped pre-tag in the release
2929
# checklist. See docs/release-process.md.
30-
version = "0.11.34"
30+
version = "0.11.35"
3131
edition = "2024"
3232
rust-version = "1.88"
3333
authors = ["PulseEngine Team"]

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module(
77
name = "synth",
88
# Kept in lockstep with [workspace.package] version in Cargo.toml.
99
# Both are bumped pre-tag — see docs/release-process.md.
10-
version = "0.11.34",
10+
version = "0.11.35",
1111
)
1212

1313
# Bazel dependencies

crates/synth-backend-awsm/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ categories.workspace = true
1111
description = "aWsm backend integration for the Synth compiler"
1212

1313
[dependencies]
14-
synth-core = { path = "../synth-core", version = "0.11.34" }
14+
synth-core = { path = "../synth-core", version = "0.11.35" }
1515
anyhow.workspace = true
1616
thiserror.workspace = true

crates/synth-backend-riscv/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ categories.workspace = true
1111
description = "RISC-V encoder, ELF builder, PMP allocator, and bare-metal startup for synth"
1212

1313
[dependencies]
14-
synth-core = { path = "../synth-core", version = "0.11.34" }
15-
synth-synthesis = { path = "../synth-synthesis", version = "0.11.34" }
14+
synth-core = { path = "../synth-core", version = "0.11.35" }
15+
synth-synthesis = { path = "../synth-synthesis", version = "0.11.35" }
1616
anyhow.workspace = true
1717
thiserror.workspace = true
1818
tracing.workspace = true

crates/synth-backend-wasker/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ categories.workspace = true
1111
description = "Wasker backend integration for the Synth compiler"
1212

1313
[dependencies]
14-
synth-core = { path = "../synth-core", version = "0.11.34" }
14+
synth-core = { path = "../synth-core", version = "0.11.35" }
1515
anyhow.workspace = true
1616
thiserror.workspace = true

crates/synth-backend/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ default = ["arm-cortex-m"]
1515
arm-cortex-m = ["synth-synthesis"]
1616

1717
[dependencies]
18-
synth-core = { path = "../synth-core", version = "0.11.34" }
19-
synth-synthesis = { path = "../synth-synthesis", version = "0.11.34", optional = true }
18+
synth-core = { path = "../synth-core", version = "0.11.35" }
19+
synth-synthesis = { path = "../synth-synthesis", version = "0.11.35", optional = true }
2020
anyhow.workspace = true
2121
thiserror.workspace = true

crates/synth-cli/Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ verify = ["synth-verify"]
2727
# Path deps carry `version` so `cargo publish` rewrites them to the
2828
# crates.io coordinate. Bumping the workspace version requires
2929
# updating these in lockstep — see docs/release-process.md.
30-
synth-core = { path = "../synth-core", version = "0.11.34" }
31-
synth-frontend = { path = "../synth-frontend", version = "0.11.34" }
32-
synth-synthesis = { path = "../synth-synthesis", version = "0.11.34" }
33-
synth-backend = { path = "../synth-backend", version = "0.11.34" }
30+
synth-core = { path = "../synth-core", version = "0.11.35" }
31+
synth-frontend = { path = "../synth-frontend", version = "0.11.35" }
32+
synth-synthesis = { path = "../synth-synthesis", version = "0.11.35" }
33+
synth-backend = { path = "../synth-backend", version = "0.11.35" }
3434

3535
# Optional external backends
36-
synth-backend-awsm = { path = "../synth-backend-awsm", version = "0.11.34", optional = true }
37-
synth-backend-wasker = { path = "../synth-backend-wasker", version = "0.11.34", optional = true }
38-
synth-backend-riscv = { path = "../synth-backend-riscv", version = "0.11.34", optional = true }
36+
synth-backend-awsm = { path = "../synth-backend-awsm", version = "0.11.35", optional = true }
37+
synth-backend-wasker = { path = "../synth-backend-wasker", version = "0.11.35", optional = true }
38+
synth-backend-riscv = { path = "../synth-backend-riscv", version = "0.11.35", optional = true }
3939

4040
# Optional verification (requires z3)
41-
synth-verify = { path = "../synth-verify", version = "0.11.34", optional = true, features = ["z3-solver", "arm"] }
41+
synth-verify = { path = "../synth-verify", version = "0.11.35", optional = true, features = ["z3-solver", "arm"] }
4242

4343
# Optional PulseEngine WASM optimizer
4444
# Uncomment when loom crate is available:

crates/synth-frontend/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ description = "WASM/WAT parser and module decoder frontend for the Synth compile
1414
# Internal path deps carry an explicit version so `cargo publish`
1515
# can rewrite to the crates.io coordinate. `path` is used for
1616
# in-workspace builds; `version` is what crates.io sees.
17-
synth-core = { path = "../synth-core", version = "0.11.34" }
17+
synth-core = { path = "../synth-core", version = "0.11.35" }
1818

1919
wasmparser.workspace = true
2020
wasm-encoder.workspace = true

0 commit comments

Comments
 (0)