fix(core): allow suboptimal_flops on mouth-audio smoothing lerp#587
Conversation
Rust 1.96.0's clippy promotes clippy::suboptimal_flops to fire on the single-pole IIR smoothing step in mouth_from_audio, breaking the Host CI gate on main. The suggested f32::mul_add pulls libm::fmaf onto no_std Xtensa, the dependency this module is built to avoid. Allow the lint with the same rationale already used in head_from_attention and lost_target_search.
Greptile SummaryThis PR suppresses the
Confidence Score: 5/5Safe to merge — a one-line lint suppress with no semantic change to any computation. The change is a targeted clippy allow attribute on an expression whose math is identical before and after. It replicates a pattern already established in six other sites in the same crate, the reason string matches lost_target_search.rs verbatim, and the reason field syntax is valid at the project's MSRV. No files require special attention. Important Files Changed
Reviews (1): Last reviewed commit: "fix(core): allow suboptimal_flops on mou..." | Re-trigger Greptile |
🤖 I have created a release *beep* *boop* --- <details><summary>stackchan-core: 0.37.1</summary> ## [0.37.1](stackchan-core-v0.37.0...stackchan-core-v0.37.1) (2026-06-13) ### Bug Fixes * **core:** allow suboptimal_flops on mouth-audio smoothing lerp ([#587](#587)) ([7dcb661](7dcb661)) </details> <details><summary>stackchan-firmware: 0.113.6</summary> ## [0.113.6](stackchan-firmware-v0.113.5...stackchan-firmware-v0.113.6) (2026-06-13) </details> <details><summary>stackchan-net: 0.16.1</summary> ## [0.16.1](stackchan-net-v0.16.0...stackchan-net-v0.16.1) (2026-06-13) </details> <details><summary>stackchan-sim: 0.23.1</summary> ## [0.23.1](stackchan-sim-v0.23.0...stackchan-sim-v0.23.1) (2026-06-13) </details> <details><summary>stackchan-tts: 0.4.1</summary> ## [0.4.1](stackchan-tts-v0.4.0...stackchan-tts-v0.4.1) (2026-06-13) </details> <details><summary>tracker: 0.12.22</summary> ## [0.12.22](tracker-v0.12.21...tracker-v0.12.22) (2026-06-13) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: release-kun[bot] <276042328+release-kun[bot]@users.noreply.github.com>
Summary
Rust 1.96.0's clippy promoted
clippy::suboptimal_flopsto fire on the single-pole IIR smoothing step inmouth_from_audio.rs, which broke the Host (core + sim + drivers) CI gate onmain. Because that gate is red onmain, every open PR inherits the failure — all four open dependabot PRs (#586, #585, #584, #551) are blocked solely by this.Clippy suggests
f32::mul_add, but that lowers tolibm::fmafon the no_std Xtensa target — exactly the dependency this module is engineered to avoid (it sits beside the libm-freeone_minus_exp_approxapproximation). This matches the standing decision already documented inhead_from_attentionandlost_target_search, so the fix#[allow]s the lint with the same rationale rather than taking clippy's suggestion.Test plan
just check— fmt + workspace clippy (-D warnings) + host tests all green locallycargo clippy -p stackchan-core --all-targets --all-features -- -D warningspasses