v0.41.0 — f32 op-completeness + f32 soundness CI gate
Two f32 lanes on top of v0.40.0's hard-float completion.
Added
- f32 op-completeness for falcon (#719, #369, GI-FPU-002).
f32.store,f32.abs/neg/copysign,f32.local.set/tee, and mixed f32/int parameter lists (AAPCS-VFP independent register pools —(param i32 f32)→ i32 in R0, f32 in S0). 156/156 bit-exact vs wasmtime on cortex-m4f, including the copysign ±0.0 / ±inf / NaN-sign edges. Clears ~18 of falcon's remaining f32 skips.f32live across a call (S0–S15 caller-saved spill/rehome) is declined loudly — a documented follow-on; f64 is phase 2.
Changed
- f32 soundness oracles are now CI-gated (#712). All six f32 comparisons are gated (84/84 — closing the
flt/fgt-only vacuous-gate gap), and the f32 soundness differentials (compares + trunc-trap + load/reinterpret + the #719 op set) run in CI on every PR — the f32 path can no longer silently regress. The differential is also NaN-aware: WASM leaves a NaN result's sign/payload non-deterministic (§4.3.3), sof32.div(-0.0,0.0)compares as NaN==NaN (it diverged by wasmtime version) while signed-zero and ±inf stay bit-exact.
Gates: pin sweep 0.40.0→0.41.0 (incl. npm), claim gate 17/17.