#177 merged at c68e0be6, moments before this one-commit follow-up landed on the branch — without it, main's CI is red on the unsafe-hygiene gates and the aarch64 clippy leg. The three fixes, each a gate no local box run could reach:
Gate B (check-unsafe-hygiene.sh): adl_emul.rs's adl_malloc had a reachable .expect inside an unsafe extern "C" fn — a panic there is an abort across the extern boundary. Now panic-free: the Err arm (unreachable in practice — size ≤ i32::MAX can't overflow the layout) returns null, which ADL treats as an ordinary allocator failure. This came in with #175/#176 and is why main's own push CI was already red before the edition merge.
Gate C: the textual ratchet counts comments too — the new forbid carve-out comments in punktfunk-host/src/main.rs literally said env::set_var, putting the file 2 over its baseline of 0. Reworded to "mutating the process env".
aarch64 leg: clients/linux is forbid(unsafe_code) crate-wide, and the arm64 cross image is the only CI leg that compiles it (the .25 box lacks glib-2.0 dev). Its two env mutations — clearing Steam's SDL device filter at startup and the spawn test's HOME scoping — are unsafe calls in edition 2024, and forbid can't be locally allowed. Demoted to deny with two named #[allow] exemptions carrying the SAFETY proofs (the pf-update pattern); everything else stays compiler-refused.
Verified locally: hygiene script all-gates-clean, cargo fmt --all --check, and check of the touched crates.
#177 merged at `c68e0be6`, moments before this one-commit follow-up landed on the branch — without it, main's CI is red on the unsafe-hygiene gates and the aarch64 clippy leg. The three fixes, each a gate no local box run could reach:
- **Gate B** (`check-unsafe-hygiene.sh`): `adl_emul.rs`'s `adl_malloc` had a reachable `.expect` inside an `unsafe extern "C" fn` — a panic there is an abort across the extern boundary. Now panic-free: the `Err` arm (unreachable in practice — `size ≤ i32::MAX` can't overflow the layout) returns null, which ADL treats as an ordinary allocator failure. This came in with #175/#176 and is why main's own push CI was already red before the edition merge.
- **Gate C**: the textual ratchet counts *comments* too — the new `forbid` carve-out comments in `punktfunk-host/src/main.rs` literally said `env::set_var`, putting the file 2 over its baseline of 0. Reworded to "mutating the process env".
- **aarch64 leg**: `clients/linux` is `forbid(unsafe_code)` crate-wide, and the arm64 cross image is the only CI leg that compiles it (the .25 box lacks glib-2.0 dev). Its two env mutations — clearing Steam's SDL device filter at startup and the spawn test's `HOME` scoping — are unsafe calls in edition 2024, and `forbid` can't be locally allowed. Demoted to `deny` with two named `#[allow]` exemptions carrying the SAFETY proofs (the pf-update pattern); everything else stays compiler-refused.
Verified locally: hygiene script all-gates-clean, `cargo fmt --all --check`, and check of the touched crates.
- adl_emul.rs adl_malloc: panic-free (a reachable expect in an extern fn is an
abort — gate B; the Err arm is unreachable, ADL treats null as failure)
- punktfunk-host main.rs: reword the carve-out comments so gate C's textual
count stays at its baseline (comments count)
- clients/linux: forbid(unsafe_code) -> deny with two named allows — the SDL
device-filter clear and the spawn test's HOME scoping are unsafe calls in
edition 2024 (caught by the aarch64 leg, the only one with glib)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
#177 merged at
c68e0be6, moments before this one-commit follow-up landed on the branch — without it, main's CI is red on the unsafe-hygiene gates and the aarch64 clippy leg. The three fixes, each a gate no local box run could reach:check-unsafe-hygiene.sh):adl_emul.rs'sadl_mallochad a reachable.expectinside anunsafe extern "C" fn— a panic there is an abort across the extern boundary. Now panic-free: theErrarm (unreachable in practice —size ≤ i32::MAXcan't overflow the layout) returns null, which ADL treats as an ordinary allocator failure. This came in with #175/#176 and is why main's own push CI was already red before the edition merge.forbidcarve-out comments inpunktfunk-host/src/main.rsliterally saidenv::set_var, putting the file 2 over its baseline of 0. Reworded to "mutating the process env".clients/linuxisforbid(unsafe_code)crate-wide, and the arm64 cross image is the only CI leg that compiles it (the .25 box lacks glib-2.0 dev). Its two env mutations — clearing Steam's SDL device filter at startup and the spawn test'sHOMEscoping — are unsafe calls in edition 2024, andforbidcan't be locally allowed. Demoted todenywith two named#[allow]exemptions carrying the SAFETY proofs (the pf-update pattern); everything else stays compiler-refused.Verified locally: hygiene script all-gates-clean,
cargo fmt --all --check, and check of the touched crates.