[INFO] cloning repository https://github.com/tavispalmer/nes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tavispalmer/nes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftavispalmer%2Fnes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftavispalmer%2Fnes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5409b3f27b88b734dac65dabca329f1dcd35adce [INFO] checking tavispalmer/nes against try#3c75d5844aa65b4aa19243ac44ceda49fe4e61ca for pr-143545 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftavispalmer%2Fnes" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tavispalmer/nes [INFO] finished tweaking git repo https://github.com/tavispalmer/nes [INFO] tweaked toml for git repo https://github.com/tavispalmer/nes written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tavispalmer/nes on toolchain 3c75d5844aa65b4aa19243ac44ceda49fe4e61ca [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3c75d5844aa65b4aa19243ac44ceda49fe4e61ca" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tavispalmer/nes 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" "+3c75d5844aa65b4aa19243ac44ceda49fe4e61ca" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating git repository `https://github.com/tavispalmer/gfx.git` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [INFO] checking tavispalmer/nes against try#3c75d5844aa65b4aa19243ac44ceda49fe4e61ca for pr-143545 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftavispalmer%2Fnes" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tavispalmer/nes [INFO] finished tweaking git repo https://github.com/tavispalmer/nes [INFO] tweaked toml for git repo https://github.com/tavispalmer/nes written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tavispalmer/nes on toolchain 3c75d5844aa65b4aa19243ac44ceda49fe4e61ca [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3c75d5844aa65b4aa19243ac44ceda49fe4e61ca" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tavispalmer/nes 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" "+3c75d5844aa65b4aa19243ac44ceda49fe4e61ca" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sdl3-sys v0.4.3+SDL3-3.2.2 [INFO] [stderr] Downloaded sdl3 v0.14.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+3c75d5844aa65b4aa19243ac44ceda49fe4e61ca" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1089e0d35243adbaa7abb599e8b5ab78f5feab08971c46b740a5d0ee8bd40414 [INFO] running `Command { std: "docker" "start" "-a" "1089e0d35243adbaa7abb599e8b5ab78f5feab08971c46b740a5d0ee8bd40414", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1089e0d35243adbaa7abb599e8b5ab78f5feab08971c46b740a5d0ee8bd40414", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1089e0d35243adbaa7abb599e8b5ab78f5feab08971c46b740a5d0ee8bd40414", kill_on_drop: false }` [INFO] [stdout] 1089e0d35243adbaa7abb599e8b5ab78f5feab08971c46b740a5d0ee8bd40414 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+3c75d5844aa65b4aa19243ac44ceda49fe4e61ca" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2c1e7b0d01dad806aa81ca0ea98beb04216fedd8767c1382dadf40553d020ea2 [INFO] running `Command { std: "docker" "start" "-a" "2c1e7b0d01dad806aa81ca0ea98beb04216fedd8767c1382dadf40553d020ea2", kill_on_drop: false }` [INFO] [stderr] Compiling sdl3-sys v0.4.3+SDL3-3.2.2 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling sdl3 v0.14.3 [INFO] [stderr] Compiling nes v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking bitflags v2.8.0 [INFO] [stderr] Checking gfx v0.1.0 (https://github.com/tavispalmer/gfx.git#0a8de9b3) [INFO] [stdout] warning: unused import: `slice` [INFO] [stdout] --> src/lib.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cell::Cell, ptr::NonNull, slice}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `slice` [INFO] [stdout] --> src/lib.rs:1:37 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cell::Cell, ptr::NonNull, slice}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:111:38 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn write_dmc_freq(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:113:37 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn write_dmc_raw(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:115:39 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn write_dmc_start(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:117:37 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn write_dmc_len(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:111:38 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn write_dmc_freq(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:113:37 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn write_dmc_raw(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:115:39 [INFO] [stdout] | [INFO] [stdout] 115 | pub fn write_dmc_start(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/apu.rs:117:37 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn write_dmc_len(&mut self, value: u8) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `ReadProc` is more private than the item `CNSFCore::ReadMemory` [INFO] [stdout] --> src/nsf.rs:432:5 [INFO] [stdout] | [INFO] [stdout] 432 | pub ReadMemory: [ReadProc; 0x10], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `CNSFCore::ReadMemory` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `ReadProc` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/nsf.rs:406:1 [INFO] [stdout] | [INFO] [stdout] 406 | struct ReadProc(usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `WriteProc` is more private than the item `CNSFCore::WriteMemory` [INFO] [stdout] --> src/nsf.rs:433:5 [INFO] [stdout] | [INFO] [stdout] 433 | pub WriteMemory: [WriteProc; 0x10], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `CNSFCore::WriteMemory` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `WriteProc` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/nsf.rs:409:1 [INFO] [stdout] | [INFO] [stdout] 409 | struct WriteProc(usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENVIRONMENT_GET_VARIABLE_UPDATE` is never used [INFO] [stdout] --> src/retro.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const ENVIRONMENT_GET_VARIABLE_UPDATE: c_uint = 17; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENVIRONMENT_SET_SUPPORT_NO_GAME` is never used [INFO] [stdout] --> src/retro.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const ENVIRONMENT_SET_SUPPORT_NO_GAME: c_uint = 18; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENVIRONMENT_GET_LOG_INTERFACE` is never used [INFO] [stdout] --> src/retro.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const ENVIRONMENT_GET_LOG_INTERFACE: c_uint = 27; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `log_level` is never used [INFO] [stdout] --> src/retro.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum log_level { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `log_printf_t` is never used [INFO] [stdout] --> src/retro.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | pub type log_printf_t = unsafe extern "C" fn(level: log_level, fmt: *const c_char, ...); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `log_callback` is never constructed [INFO] [stdout] --> src/retro.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct log_callback { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TYPE_0RGB1555`, `RGB565`, and `UNKNOWN` are never constructed [INFO] [stdout] --> src/retro.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub enum pixel_format { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 58 | TYPE_0RGB1555 = 0, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 59 | XRGB8888 = 1, [INFO] [stdout] 60 | RGB565 = 2, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 61 | UNKNOWN = c_int::MAX as _, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `valid_extensions`, `need_fullpath`, and `block_extract` are never used [INFO] [stdout] --> src/retro.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl<'a> system_info<'a> { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn valid_extensions(mut self, valid_extensions: &'a CStr) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn need_fullpath(mut self, need_fullpath: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn block_extract(mut self, block_extract: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | NES.as_mut().unwrap().run(); [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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: `#[warn(static_mut_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | BUF.copy_from_slice(NES.as_mut().unwrap().framebuffer()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:196:29 [INFO] [stdout] | [INFO] [stdout] 196 | BUF.copy_from_slice(NES.as_mut().unwrap().framebuffer()); [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/ffi.rs:197:18 [INFO] [stdout] | [INFO] [stdout] 197 | VIDEO_CB(BUF.as_ptr() as _, 256, 240 , 256*4); [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | NES.as_mut().unwrap().play_audio(&mut AUDIO_BUF); [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:198:42 [INFO] [stdout] | [INFO] [stdout] 198 | NES.as_mut().unwrap().play_audio(&mut AUDIO_BUF); [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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 `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 198 | NES.as_mut().unwrap().play_audio(&raw mut AUDIO_BUF); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/ffi.rs:199:24 [INFO] [stdout] | [INFO] [stdout] 199 | AUDIO_BATCH_CB(AUDIO_BUF.as_ptr(), AUDIO_BUF.len()>>1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/ffi.rs:199:44 [INFO] [stdout] | [INFO] [stdout] 199 | AUDIO_BATCH_CB(AUDIO_BUF.as_ptr(), AUDIO_BUF.len()>>1); [INFO] [stdout] | ^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:218:28 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some(nes) = NES.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: type `ReadProc` is more private than the item `CNSFCore::ReadMemory` [INFO] [stdout] --> src/nsf.rs:432:5 [INFO] [stdout] | [INFO] [stdout] 432 | pub ReadMemory: [ReadProc; 0x10], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `CNSFCore::ReadMemory` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `ReadProc` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/nsf.rs:406:1 [INFO] [stdout] | [INFO] [stdout] 406 | struct ReadProc(usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `WriteProc` is more private than the item `CNSFCore::WriteMemory` [INFO] [stdout] --> src/nsf.rs:433:5 [INFO] [stdout] | [INFO] [stdout] 433 | pub WriteMemory: [WriteProc; 0x10], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `CNSFCore::WriteMemory` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `WriteProc` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/nsf.rs:409:1 [INFO] [stdout] | [INFO] [stdout] 409 | struct WriteProc(usize, usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENVIRONMENT_GET_VARIABLE_UPDATE` is never used [INFO] [stdout] --> src/retro.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const ENVIRONMENT_GET_VARIABLE_UPDATE: c_uint = 17; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENVIRONMENT_SET_SUPPORT_NO_GAME` is never used [INFO] [stdout] --> src/retro.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const ENVIRONMENT_SET_SUPPORT_NO_GAME: c_uint = 18; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENVIRONMENT_GET_LOG_INTERFACE` is never used [INFO] [stdout] --> src/retro.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const ENVIRONMENT_GET_LOG_INTERFACE: c_uint = 27; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `log_level` is never used [INFO] [stdout] --> src/retro.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum log_level { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `log_printf_t` is never used [INFO] [stdout] --> src/retro.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | pub type log_printf_t = unsafe extern "C" fn(level: log_level, fmt: *const c_char, ...); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `log_callback` is never constructed [INFO] [stdout] --> src/retro.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct log_callback { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TYPE_0RGB1555`, `RGB565`, and `UNKNOWN` are never constructed [INFO] [stdout] --> src/retro.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub enum pixel_format { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 58 | TYPE_0RGB1555 = 0, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 59 | XRGB8888 = 1, [INFO] [stdout] 60 | RGB565 = 2, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 61 | UNKNOWN = c_int::MAX as _, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `valid_extensions`, `need_fullpath`, and `block_extract` are never used [INFO] [stdout] --> src/retro.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl<'a> system_info<'a> { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn valid_extensions(mut self, valid_extensions: &'a CStr) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn need_fullpath(mut self, need_fullpath: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn block_extract(mut self, block_extract: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | NES.as_mut().unwrap().run(); [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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: `#[warn(static_mut_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | BUF.copy_from_slice(NES.as_mut().unwrap().framebuffer()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:196:29 [INFO] [stdout] | [INFO] [stdout] 196 | BUF.copy_from_slice(NES.as_mut().unwrap().framebuffer()); [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/ffi.rs:197:18 [INFO] [stdout] | [INFO] [stdout] 197 | VIDEO_CB(BUF.as_ptr() as _, 256, 240 , 256*4); [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | NES.as_mut().unwrap().play_audio(&mut AUDIO_BUF); [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:198:42 [INFO] [stdout] | [INFO] [stdout] 198 | NES.as_mut().unwrap().play_audio(&mut AUDIO_BUF); [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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 `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 198 | NES.as_mut().unwrap().play_audio(&raw mut AUDIO_BUF); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/ffi.rs:199:24 [INFO] [stdout] | [INFO] [stdout] 199 | AUDIO_BATCH_CB(AUDIO_BUF.as_ptr(), AUDIO_BUF.len()>>1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/ffi.rs:199:44 [INFO] [stdout] | [INFO] [stdout] 199 | AUDIO_BATCH_CB(AUDIO_BUF.as_ptr(), AUDIO_BUF.len()>>1); [INFO] [stdout] | ^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/ffi.rs:218:28 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some(nes) = NES.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/main.rs:237:29 [INFO] [stdout] | [INFO] [stdout] 237 | fn quit(app: Box, result: AppResult<()>) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> src/main.rs:256:18 [INFO] [stdout] | [INFO] [stdout] 249 | impl ControllerState { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 256 | pub const fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/main.rs:237:29 [INFO] [stdout] | [INFO] [stdout] 237 | fn quit(app: Box, result: AppResult<()>) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> src/main.rs:256:18 [INFO] [stdout] | [INFO] [stdout] 249 | impl ControllerState { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 256 | pub const fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.42s [INFO] running `Command { std: "docker" "inspect" "2c1e7b0d01dad806aa81ca0ea98beb04216fedd8767c1382dadf40553d020ea2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2c1e7b0d01dad806aa81ca0ea98beb04216fedd8767c1382dadf40553d020ea2", kill_on_drop: false }` [INFO] [stdout] 2c1e7b0d01dad806aa81ca0ea98beb04216fedd8767c1382dadf40553d020ea2