[INFO] cloning repository https://github.com/iwanders/displaylight_rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iwanders/displaylight_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiwanders%2Fdisplaylight_rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiwanders%2Fdisplaylight_rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8e64b70d49c4279d32f6fe26b802f587bf0ef119
[INFO] testing iwanders/displaylight_rs against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiwanders%2Fdisplaylight_rs" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/iwanders/displaylight_rs
[INFO] finished tweaking git repo https://github.com/iwanders/displaylight_rs
[INFO] tweaked toml for git repo https://github.com/iwanders/displaylight_rs written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iwanders/displaylight_rs on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iwanders/displaylight_rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca
[INFO] running `Command { std: "docker" "start" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling nb v1.1.0
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling cortex-m v0.7.7
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling cortex-m-rt v0.7.5
[INFO] [stderr]    Compiling vcell v0.1.3
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling bitfield v0.13.2
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling stm32f1 v0.14.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling bare-metal v0.2.5
[INFO] [stderr]    Compiling nb v0.1.3
[INFO] [stderr]    Compiling volatile-register v0.2.2
[INFO] [stderr]    Compiling gcd v2.3.0
[INFO] [stderr]    Compiling stm32-usbd v0.6.0
[INFO] [stderr]    Compiling usb-device v0.2.9
[INFO] [stderr]    Compiling bitflags v2.9.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling embedded-hal v0.2.7
[INFO] [stderr]    Compiling libm v0.2.14
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling bytemuck v1.23.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling fugit v0.3.7
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling bare-metal v1.0.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling bxcan v0.6.2
[INFO] [stderr]    Compiling embedded-dma v0.2.0
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling displaylight_fw v0.1.0 (/opt/rustwide/workdir/firmware)
[INFO] [stderr]    Compiling panic-halt v0.2.0
[INFO] [stderr]    Compiling fugit-timer v0.1.3
[INFO] [stderr]    Compiling usbd-serial v0.1.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling image v0.25.6
[INFO] [stderr]    Compiling nix v0.26.4
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling libudev v0.3.0
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling cortex-m-rt-macros v0.7.5
[INFO] [stderr]    Compiling unescaper v0.1.6
[INFO] [stderr]    Compiling serialport v4.7.1
[INFO] [stderr]    Compiling lights v0.0.0 (/opt/rustwide/workdir/lights)
[INFO] [stderr]    Compiling screen_capture v0.0.0 (https://github.com/iwanders/screen_capture?rev=50c56ced33cb8248d4a9c1a0fb36afa77c765bdb#50c56ced)
[INFO] [stderr]    Compiling serde_yaml v0.8.26
[INFO] [stderr]    Compiling displaylight v0.0.0 (/opt/rustwide/workdir/displaylight)
[INFO] [stderr]    Compiling stm32f1xx-hal v0.9.0
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> firmware/src/serial.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 USB_BUS.as_ref().unwrap(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]    |
[INFO] [stdout] 42 - static mut USB_BUS: Option<UsbBusAllocator<UsbBusType>> = None;
[INFO] [stdout] 42 + static USB_BUS: Option<UsbBusAllocator<UsbBusType>> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> firmware/src/serial.rs:69:39
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 UsbDeviceBuilder::new(USB_BUS.as_ref().unwrap(), UsbVidPid(0x16c0, 0x27dd))
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]    |
[INFO] [stdout] 42 - static mut USB_BUS: Option<UsbBusAllocator<UsbBusType>> = None;
[INFO] [stdout] 42 + static USB_BUS: Option<UsbBusAllocator<UsbBusType>> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> firmware/src/serial.rs:79:40
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 let (reader, writer) = BUFFER_TO_HOST.split();
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> firmware/src/serial.rs:84:40
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 let (reader, writer) = BUFFER_FROM_HOST.split();
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:101:31
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let writer = unsafe { BUFFER_TO_HOST_WRITER.as_mut().unwrap() };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:123:31
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let reader = unsafe { BUFFER_FROM_HOST_READER.as_mut().unwrap() };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:129:31
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let reader = unsafe { BUFFER_FROM_HOST_READER.as_mut().unwrap() };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:202:42
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let mut serial_borrow = unsafe { USB_SERIAL.borrow(cs).borrow_mut() };
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut USB_SERIAL: Mutex<RefCell<Option<usbd_serial::SerialPort<UsbBusType>>>> =
[INFO] [stdout]  43 + static USB_SERIAL: Mutex<RefCell<Option<usbd_serial::SerialPort<UsbBusType>>>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:204:26
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let z = unsafe { BUFFER_TO_HOST_READER.as_mut().unwrap() };
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:226:42
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let mut serial_borrow = unsafe { USB_SERIAL.borrow(cs).borrow_mut() };
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut USB_SERIAL: Mutex<RefCell<Option<usbd_serial::SerialPort<UsbBusType>>>> =
[INFO] [stdout]  43 + static USB_SERIAL: Mutex<RefCell<Option<usbd_serial::SerialPort<UsbBusType>>>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:229:31
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let writer = unsafe { BUFFER_FROM_HOST_WRITER.as_mut().unwrap() };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:255:42
[INFO] [stdout]     |
[INFO] [stdout] 255 |         let mut serial_borrow = unsafe { USB_SERIAL.borrow(&cs).borrow_mut() };
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut USB_SERIAL: Mutex<RefCell<Option<usbd_serial::SerialPort<UsbBusType>>>> =
[INFO] [stdout]  43 + static USB_SERIAL: Mutex<RefCell<Option<usbd_serial::SerialPort<UsbBusType>>>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> firmware/src/serial.rs:257:32
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let usb_dev = unsafe { USB_DEVICE.as_mut().unwrap() };
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unwinding panics are not supported without std
[INFO] [stdout]   |
[INFO] [stdout]   = help: using nightly cargo, use -Zbuild-std with panic="abort" to avoid unwinding
[INFO] [stdout]   = note: since the core library is usually precompiled with panic="unwind", rebuilding your crate with panic="abort" may not be enough to fix the problem
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `displaylight_fw` (bin "displaylight_fw") due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca", kill_on_drop: false }`
[INFO] [stdout] b9de6be6f0230b20797b072c2e6a8c39e27d7e9f52f63f6b76b4624a2394abca
