fix: support current Rust toolchains - #632
Conversation
d09d5a9 to
60829e7
Compare
ArthurGibert
left a comment
There was a problem hiding this comment.
Migrates panic_immediate_abort to the syntax current nightly requires, and swaps chunks_exact(4) → as_chunks::<4>() in midi.rs. Confirmed necessary (the old config fails to compile core on current nightly — reproduced directly) and confirmed correct (as_chunks behavior is identical to chunks_exact, zero-cost per asm diff; the new alloc build-std addition is genuinely required by postcard-bindgen-core, not scope creep).
Worth addressing before merge: the new config hard-fails on stable Cargo, where the old one silently no-op'd and still produced a working (larger) binary — reproduced directly both ways. There's no rust-toolchain.toml anywhere in the repo pinning nightly for the faderpunk package, and gen-bindings.sh has to say cargo +nightly explicitly, implying bare cargo resolves to stable here. That risks breaking the documented cd faderpunk && cargo build --release / ./build-uf2.sh workflow for anyone without a personal rustup override already set. Suggest adding a rust-toolchain.toml pinning nightly for faderpunk/.
Worth knowing, not blocking:
- Because
.cargo/config.tomlis scoped tofaderpunk/, CI/release builds (which run from repo root) never see this fix at all — this PR only affects the localbuild-uf2.shdev path. panic = "immediate-abort"makes ordinary app panics compile to silent traps with no defmt/RTT output — pre-existing, not introduced here, but worth a code comment given how much it undermines local debugging.- A release-build
rust-lldalignment warning showed up during testing — almost certainly the same pre-existing issue #614 fixes independently, not new here.
60829e7 to
0bdae1c
Compare
0bdae1c to
ad310a6
Compare
Summary
Supersedes #611.
Verification
Hardware test