[INFO] cloning repository https://github.com/trobicho/NesGull [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/trobicho/NesGull" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftrobicho%2FNesGull", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftrobicho%2FNesGull'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7a426d2b5f849352ba3b782ede1ca277e787f05a [INFO] checking trobicho/NesGull against try#5de9e0e6cf775e94e0de2003f35e183f3f77bfe8 for pr-143808 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftrobicho%2FNesGull" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/trobicho/NesGull [INFO] finished tweaking git repo https://github.com/trobicho/NesGull [INFO] tweaked toml for git repo https://github.com/trobicho/NesGull written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/trobicho/NesGull on toolchain 5de9e0e6cf775e94e0de2003f35e183f3f77bfe8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5de9e0e6cf775e94e0de2003f35e183f3f77bfe8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/trobicho/NesGull 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" "+5de9e0e6cf775e94e0de2003f35e183f3f77bfe8" "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 clang-sys v1.3.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+5de9e0e6cf775e94e0de2003f35e183f3f77bfe8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 972915f35876aeff08afc7160db8b64e948219b9df3efcc9fcbc763213ac3f16 [INFO] running `Command { std: "docker" "start" "-a" "972915f35876aeff08afc7160db8b64e948219b9df3efcc9fcbc763213ac3f16", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "972915f35876aeff08afc7160db8b64e948219b9df3efcc9fcbc763213ac3f16", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "972915f35876aeff08afc7160db8b64e948219b9df3efcc9fcbc763213ac3f16", kill_on_drop: false }` [INFO] [stdout] 972915f35876aeff08afc7160db8b64e948219b9df3efcc9fcbc763213ac3f16 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+5de9e0e6cf775e94e0de2003f35e183f3f77bfe8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 053bdc9039b37125cb93b54a855ff743c011bb7d9891c8a4f34c539eb41a446a [INFO] running `Command { std: "docker" "start" "-a" "053bdc9039b37125cb93b54a855ff743c011bb7d9891c8a4f34c539eb41a446a", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.125 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling syn v1.0.95 [INFO] [stderr] Compiling version-compare v0.1.0 [INFO] [stderr] Compiling pkg-config v0.3.25 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking smallvec v1.14.0 [INFO] [stderr] Compiling cpal v0.14.2 [INFO] [stderr] Compiling sdl2 v0.35.2 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling once_cell v1.21.1 [INFO] [stderr] Checking shlex v1.3.0 [INFO] [stderr] Compiling sdl2-sys v0.35.2 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking getrandom v0.2.6 [INFO] [stderr] Checking nix v0.23.2 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling thiserror-impl v1.0.31 [INFO] [stderr] Compiling enum_dispatch v0.3.8 [INFO] [stderr] Checking alsa v0.6.0 [INFO] [stderr] Checking thiserror v1.0.31 [INFO] [stderr] Checking nes_emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/nes/ppu/memory.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | let mut value = 0; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/nes/ppu/memory.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | let mut value = 0; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/nes/ppu.rs:228:30 [INFO] [stdout] | [INFO] [stdout] 228 | fn sprite_color(&mut self, bus: &mut Bus) -> (usize, bool, bool){ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/nes/ppu.rs:228:30 [INFO] [stdout] | [INFO] [stdout] 228 | fn sprite_color(&mut self, bus: &mut Bus) -> (usize, bool, bool){ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next_tile` [INFO] [stdout] --> src/nes/ppu.rs:367:22 [INFO] [stdout] | [INFO] [stdout] 367 | let (in_range, next_tile) = self.sprite_y_in_range(bus, sprite_y.into()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next_tile` [INFO] [stdout] --> src/nes/ppu.rs:367:22 [INFO] [stdout] | [INFO] [stdout] 367 | let (in_range, next_tile) = self.sprite_y_in_range(bus, sprite_y.into()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sample_rate` [INFO] [stdout] --> src/nes/apu/mixer.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let sample_rate = self.config.sample_rate.0 as f32; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sample_clock` [INFO] [stdout] --> src/nes/apu/mixer.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | let sample_clock = 0f32; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_clock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sample_rate` [INFO] [stdout] --> src/nes/apu/mixer.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let sample_rate = self.config.sample_rate.0 as f32; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sample_clock` [INFO] [stdout] --> src/nes/apu/mixer.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | let sample_clock = 0f32; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_clock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `has_sound` [INFO] [stdout] --> src/nes/apu.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let has_sound: bool = false; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_sound` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `has_sound` [INFO] [stdout] --> src/nes/apu.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let has_sound: bool = false; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_sound` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filename` [INFO] [stdout] --> src/nes/save_state.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn save_to_file(&self, filename: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filename` [INFO] [stdout] --> src/nes/save_state.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn save_to_file(&self, filename: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `nes_rom` is never read [INFO] [stdout] --> src/main.rs:86:11 [INFO] [stdout] | [INFO] [stdout] 86 | let mut nes_rom: Vec = vec![0]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame_rect` [INFO] [stdout] --> src/main.rs:127:7 [INFO] [stdout] | [INFO] [stdout] 127 | let frame_rect = Rect::new(0, 0, width as u32, height as u32); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_rect` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `frame_nb` is assigned to, but never used [INFO] [stdout] --> src/main.rs:132:11 [INFO] [stdout] | [INFO] [stdout] 132 | let mut frame_nb = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_frame_nb` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `last_time` [INFO] [stdout] --> src/main.rs:134:7 [INFO] [stdout] | [INFO] [stdout] 134 | let last_time = time; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `nes_rom` is never read [INFO] [stdout] --> src/main.rs:86:11 [INFO] [stdout] | [INFO] [stdout] 86 | let mut nes_rom: Vec = vec![0]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame_rect` [INFO] [stdout] --> src/main.rs:127:7 [INFO] [stdout] | [INFO] [stdout] 127 | let frame_rect = Rect::new(0, 0, width as u32, height as u32); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_rect` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `frame_nb` is assigned to, but never used [INFO] [stdout] --> src/main.rs:132:11 [INFO] [stdout] | [INFO] [stdout] 132 | let mut frame_nb = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_frame_nb` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `last_time` [INFO] [stdout] --> src/main.rs:134:7 [INFO] [stdout] | [INFO] [stdout] 134 | let last_time = time; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DebugFlag` is never constructed [INFO] [stdout] --> src/nes.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct DebugFlag { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cpu_nmi` and `debug_no_nmi` are never read [INFO] [stdout] --> src/nes.rs:52:3 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Nes { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 52 | cpu_nmi: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 53 | debug_no_nmi: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `debug_reset` and `tick_scanline_n` are never used [INFO] [stdout] --> src/nes.rs:85:10 [INFO] [stdout] | [INFO] [stdout] 58 | impl Nes { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn debug_reset(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn tick_scanline_n(&mut self, t: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_I` is never used [INFO] [stdout] --> src/nes/cpu.rs:95:6 [INFO] [stdout] | [INFO] [stdout] 25 | impl StatusReg { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | fn get_I(&self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset_cycles_frame` is never used [INFO] [stdout] --> src/nes/cpu.rs:247:10 [INFO] [stdout] | [INFO] [stdout] 220 | impl CPU { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn reset_cycles_frame(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `debug_reset` and `debug_print_stack` are never used [INFO] [stdout] --> src/nes/cpu.rs:292:10 [INFO] [stdout] | [INFO] [stdout] 291 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] 292 | pub fn debug_reset(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 323 | pub fn debug_print_stack(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `BRK` and `IRQ` are never used [INFO] [stdout] --> src/nes/cpu.rs:890:6 [INFO] [stdout] | [INFO] [stdout] 332 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 890 | fn BRK(&mut self, bus: &mut Bus) { // TODO [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 909 | fn IRQ(&mut self, bus: &mut Bus) { // TODO [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IllegalYolo` is never constructed [INFO] [stdout] --> src/nes/cpu/opcode.rs:109:3 [INFO] [stdout] | [INFO] [stdout] 104 | pub enum LegalityType{ [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 109 | IllegalYolo, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LegalityType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `legality` is never read [INFO] [stdout] --> src/nes/cpu/opcode.rs:119:7 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct InstructionInfo { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | pub legality: LegalityType, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InstructionInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_HEIGHT_PAL` is never used [INFO] [stdout] --> src/nes/ppu.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const FRAME_HEIGHT_PAL: usize = 240; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PATTERN_TABLE_ADDR` is never used [INFO] [stdout] --> src/nes/ppu.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const PATTERN_TABLE_ADDR: u16 = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAMETABLE_ADDR` is never used [INFO] [stdout] --> src/nes/ppu.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const NAMETABLE_ADDR: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> src/nes/ppu.rs:49:10 [INFO] [stdout] | [INFO] [stdout] 29 | impl Frame { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PPUEvent` is never used [INFO] [stdout] --> src/nes/ppu.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum PPUEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `palette_mem` and `rendering_enable` are never read [INFO] [stdout] --> src/nes/ppu.rs:68:3 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct PPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 68 | palette_mem: Memory, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | rendering_enable: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `debug_print_nametable` and `debug_print` are never used [INFO] [stdout] --> src/nes/ppu.rs:545:10 [INFO] [stdout] | [INFO] [stdout] 529 | impl PPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn debug_print_nametable(&mut self, bus: &mut Bus, nametable: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | pub fn debug_print(&self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mix` is never used [INFO] [stdout] --> src/nes/ppu/palette.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 12 | impl NesColor { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 13 | pub fn mix(&self, color: Self, scalar: f32) -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_file` is never used [INFO] [stdout] --> src/nes/ppu/palette.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 26 | impl Palette { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn from_file(filename: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAMETABLE_ADDR` is never used [INFO] [stdout] --> src/nes/ppu/memory.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const NAMETABLE_ADDR: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `open_bus` and `oam_dma` are never read [INFO] [stdout] --> src/nes/ppu/memory.rs:50:3 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct PPUMemory { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | open_bus: u8, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | oam_dma: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PPUMemory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_oam` is never used [INFO] [stdout] --> src/nes/ppu/memory.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 257 | impl PPUMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn print_oam(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `debug_count` is never read [INFO] [stdout] --> src/nes/apu.rs:19:3 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct APU { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 18 | channels: Vec, [INFO] [stdout] 19 | debug_count: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_channel_reg` is never used [INFO] [stdout] --> src/nes/apu/memory.rs:61:10 [INFO] [stdout] | [INFO] [stdout] 25 | impl APUMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn set_channel_reg(&mut self, addr: usize, reg_n: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `null` is never used [INFO] [stdout] --> src/nes/apu/channel.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn null() -> ChannelType { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enable`, `div`, `neg`, and `shift_count` are never read [INFO] [stdout] --> src/nes/apu/channel/pulse.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 25 | struct SweepReg { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 26 | pub enable: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 27 | pub div: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | pub neg: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | pub shift_count: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SweepReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mute` is never read [INFO] [stdout] --> src/nes/apu/mixer.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Mixer { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | mute: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `ram_from_bytes`, `is_empty`, `writable`, and `write_protect` are never used [INFO] [stdout] --> src/nes/memory.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 30 | impl Memory { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn ram_from_bytes(bytes: &[u8]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn writable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn write_protect(&mut self, protect: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `len`, `is_empty`, `writable`, and `write_protect` are never used [INFO] [stdout] --> src/nes/memory.rs:193:10 [INFO] [stdout] | [INFO] [stdout] 132 | impl BankableMemory { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn writable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn write_protect(&mut self, protect: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save_to_file` is never used [INFO] [stdout] --> src/nes/save_state.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 17 | impl SaveState { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn save_to_file(&self, filename: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_wram` is never used [INFO] [stdout] --> src/nes/bus.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 25 | impl Bus { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn print_wram(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ppu_write` is never used [INFO] [stdout] --> src/nes/bus.rs:121:10 [INFO] [stdout] | [INFO] [stdout] 112 | impl Bus { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn ppu_write(&mut self, addr: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `irq_pending`, `battery_backed`, `use_ciram`, `nametable_page`, `ppu_write`, and `open_bus` are never used [INFO] [stdout] --> src/nes/mapper.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 76 | pub trait Mapper: Clone + MemRead + MemWrite { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 77 | fn irq_pending(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn battery_backed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn use_ciram(&self, _addr: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn nametable_page(&self, _addr: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | fn ppu_write(&mut self, _addr: usize, _val: u8) {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 93 | fn open_bus(&mut self, _addr: usize, _val: u8) {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ppu_type` and `hardware_type` are never read [INFO] [stdout] --> src/nes/cartridge.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | VsSystem{ppu_type: u8, hardware_type: u8}, [INFO] [stdout] | -------- ^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ConsoleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/nes/cartridge.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | Extended(u8), [INFO] [stdout] | -------- ^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ConsoleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 15 - Extended(u8), [INFO] [stdout] 15 + Extended(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `prg_size` and `chr_size` are never read [INFO] [stdout] --> src/nes/cartridge.rs:152:7 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct Cartridge { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 152 | pub prg_size : usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 153 | pub chr_rom : Option>, [INFO] [stdout] 154 | pub chr_size : usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `input` and `output` are never read [INFO] [stdout] --> src/nes/controller/basic.rs:16:3 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct NesController { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | input: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | output: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_opposite_dpad` is never used [INFO] [stdout] --> src/nes/controller/basic.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 23 | impl NesController { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn set_opposite_dpad(&mut self, v: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tick_n` is never used [INFO] [stdout] --> src/nes/clock.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait Clock { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 7 | fn tick_n(&mut self, bus: &mut Bus, t: u32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/nes/clock.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 19 | impl SlaveClock { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `micros_per_frame` should have an upper case name [INFO] [stdout] --> src/main.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const micros_per_frame : u128 = (1_000_000.0 / 60.0988) as u128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 25 - const micros_per_frame : u128 = (1_000_000.0 / 60.0988) as u128; [INFO] [stdout] 25 + const MICROS_PER_FRAME : u128 = (1_000_000.0 / 60.0988) as u128; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DebugFlag` is never constructed [INFO] [stdout] --> src/nes.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct DebugFlag { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cpu_nmi` and `debug_no_nmi` are never read [INFO] [stdout] --> src/nes.rs:52:3 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Nes { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 52 | cpu_nmi: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 53 | debug_no_nmi: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `debug_reset` and `tick_scanline_n` are never used [INFO] [stdout] --> src/nes.rs:85:10 [INFO] [stdout] | [INFO] [stdout] 58 | impl Nes { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn debug_reset(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn tick_scanline_n(&mut self, t: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_I` is never used [INFO] [stdout] --> src/nes/cpu.rs:95:6 [INFO] [stdout] | [INFO] [stdout] 25 | impl StatusReg { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | fn get_I(&self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset_cycles_frame` is never used [INFO] [stdout] --> src/nes/cpu.rs:247:10 [INFO] [stdout] | [INFO] [stdout] 220 | impl CPU { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn reset_cycles_frame(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `debug_reset` and `debug_print_stack` are never used [INFO] [stdout] --> src/nes/cpu.rs:292:10 [INFO] [stdout] | [INFO] [stdout] 291 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] 292 | pub fn debug_reset(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 323 | pub fn debug_print_stack(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `BRK` and `IRQ` are never used [INFO] [stdout] --> src/nes/cpu.rs:890:6 [INFO] [stdout] | [INFO] [stdout] 332 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 890 | fn BRK(&mut self, bus: &mut Bus) { // TODO [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 909 | fn IRQ(&mut self, bus: &mut Bus) { // TODO [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IllegalYolo` is never constructed [INFO] [stdout] --> src/nes/cpu/opcode.rs:109:3 [INFO] [stdout] | [INFO] [stdout] 104 | pub enum LegalityType{ [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 109 | IllegalYolo, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LegalityType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `legality` is never read [INFO] [stdout] --> src/nes/cpu/opcode.rs:119:7 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct InstructionInfo { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | pub legality: LegalityType, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InstructionInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_HEIGHT_PAL` is never used [INFO] [stdout] --> src/nes/ppu.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const FRAME_HEIGHT_PAL: usize = 240; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PATTERN_TABLE_ADDR` is never used [INFO] [stdout] --> src/nes/ppu.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const PATTERN_TABLE_ADDR: u16 = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAMETABLE_ADDR` is never used [INFO] [stdout] --> src/nes/ppu.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const NAMETABLE_ADDR: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> src/nes/ppu.rs:49:10 [INFO] [stdout] | [INFO] [stdout] 29 | impl Frame { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PPUEvent` is never used [INFO] [stdout] --> src/nes/ppu.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum PPUEvent { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `palette_mem` and `rendering_enable` are never read [INFO] [stdout] --> src/nes/ppu.rs:68:3 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct PPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 68 | palette_mem: Memory, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | rendering_enable: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `debug_print_nametable` and `debug_print` are never used [INFO] [stdout] --> src/nes/ppu.rs:545:10 [INFO] [stdout] | [INFO] [stdout] 529 | impl PPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn debug_print_nametable(&mut self, bus: &mut Bus, nametable: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | pub fn debug_print(&self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mix` is never used [INFO] [stdout] --> src/nes/ppu/palette.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 12 | impl NesColor { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 13 | pub fn mix(&self, color: Self, scalar: f32) -> Self{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_file` is never used [INFO] [stdout] --> src/nes/ppu/palette.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 26 | impl Palette { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn from_file(filename: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAMETABLE_ADDR` is never used [INFO] [stdout] --> src/nes/ppu/memory.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const NAMETABLE_ADDR: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `open_bus` and `oam_dma` are never read [INFO] [stdout] --> src/nes/ppu/memory.rs:50:3 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct PPUMemory { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | open_bus: u8, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | oam_dma: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PPUMemory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_oam` is never used [INFO] [stdout] --> src/nes/ppu/memory.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 257 | impl PPUMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn print_oam(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `debug_count` is never read [INFO] [stdout] --> src/nes/apu.rs:19:3 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct APU { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 18 | channels: Vec, [INFO] [stdout] 19 | debug_count: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_channel_reg` is never used [INFO] [stdout] --> src/nes/apu/memory.rs:61:10 [INFO] [stdout] | [INFO] [stdout] 25 | impl APUMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn set_channel_reg(&mut self, addr: usize, reg_n: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `null` is never used [INFO] [stdout] --> src/nes/apu/channel.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn null() -> ChannelType { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enable`, `div`, `neg`, and `shift_count` are never read [INFO] [stdout] --> src/nes/apu/channel/pulse.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 25 | struct SweepReg { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 26 | pub enable: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 27 | pub div: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | pub neg: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 29 | pub shift_count: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SweepReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mute` is never read [INFO] [stdout] --> src/nes/apu/mixer.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Mixer { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | mute: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `ram_from_bytes`, `is_empty`, `writable`, and `write_protect` are never used [INFO] [stdout] --> src/nes/memory.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 30 | impl Memory { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn ram_from_bytes(bytes: &[u8]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn writable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn write_protect(&mut self, protect: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `len`, `is_empty`, `writable`, and `write_protect` are never used [INFO] [stdout] --> src/nes/memory.rs:193:10 [INFO] [stdout] | [INFO] [stdout] 132 | impl BankableMemory { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn writable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn write_protect(&mut self, protect: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save_to_file` is never used [INFO] [stdout] --> src/nes/save_state.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 17 | impl SaveState { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn save_to_file(&self, filename: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_wram` is never used [INFO] [stdout] --> src/nes/bus.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 25 | impl Bus { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn print_wram(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/nes/ppu.rs:306:10 [INFO] [stdout] | [INFO] [stdout] 306 | if ((self.scanline_n >= 0 && self.scanline_n <= 239) || self.scanline_n == 261) && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ppu_write` is never used [INFO] [stdout] --> src/nes/bus.rs:121:10 [INFO] [stdout] | [INFO] [stdout] 112 | impl Bus { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn ppu_write(&mut self, addr: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `irq_pending`, `battery_backed`, `use_ciram`, `nametable_page`, `ppu_write`, and `open_bus` are never used [INFO] [stdout] --> src/nes/mapper.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 76 | pub trait Mapper: Clone + MemRead + MemWrite { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] 77 | fn irq_pending(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn battery_backed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn use_ciram(&self, _addr: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn nametable_page(&self, _addr: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | fn ppu_write(&mut self, _addr: usize, _val: u8) {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 93 | fn open_bus(&mut self, _addr: usize, _val: u8) {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ppu_type` and `hardware_type` are never read [INFO] [stdout] --> src/nes/cartridge.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | VsSystem{ppu_type: u8, hardware_type: u8}, [INFO] [stdout] | -------- ^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ConsoleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/nes/cartridge.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | Extended(u8), [INFO] [stdout] | -------- ^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ConsoleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 15 - Extended(u8), [INFO] [stdout] 15 + Extended(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `prg_size` and `chr_size` are never read [INFO] [stdout] --> src/nes/cartridge.rs:152:7 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct Cartridge { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 152 | pub prg_size : usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 153 | pub chr_rom : Option>, [INFO] [stdout] 154 | pub chr_size : usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `input` and `output` are never read [INFO] [stdout] --> src/nes/controller/basic.rs:16:3 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct NesController { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | input: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | output: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_opposite_dpad` is never used [INFO] [stdout] --> src/nes/controller/basic.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 23 | impl NesController { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn set_opposite_dpad(&mut self, v: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tick_n` is never used [INFO] [stdout] --> src/nes/clock.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait Clock { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 7 | fn tick_n(&mut self, bus: &mut Bus, t: u32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/nes/clock.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 19 | impl SlaveClock { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `micros_per_frame` should have an upper case name [INFO] [stdout] --> src/main.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const micros_per_frame : u128 = (1_000_000.0 / 60.0988) as u128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 25 - const micros_per_frame : u128 = (1_000_000.0 / 60.0988) as u128; [INFO] [stdout] 25 + const MICROS_PER_FRAME : u128 = (1_000_000.0 / 60.0988) as u128; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/nes/ppu.rs:306:10 [INFO] [stdout] | [INFO] [stdout] 306 | if ((self.scanline_n >= 0 && self.scanline_n <= 239) || self.scanline_n == 261) && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `core::num::::wrapping_add` that must be used [INFO] [stdout] --> src/nes/ppu/memory.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | self.oam_addr.wrapping_add(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this returns the result of the operation, without modifying the original [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 217 | let _ = self.oam_addr.wrapping_add(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `core::num::::wrapping_add` that must be used [INFO] [stdout] --> src/nes/apu/memory.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | self.frame_counter.wrapping_add(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this returns the result of the operation, without modifying the original [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 40 | let _ = self.frame_counter.wrapping_add(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `core::num::::wrapping_add` that must be used [INFO] [stdout] --> src/nes/ppu/memory.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | self.oam_addr.wrapping_add(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this returns the result of the operation, without modifying the original [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 217 | let _ = self.oam_addr.wrapping_add(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `core::num::::wrapping_add` that must be used [INFO] [stdout] --> src/nes/apu/memory.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | self.frame_counter.wrapping_add(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this returns the result of the operation, without modifying the original [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 40 | let _ = self.frame_counter.wrapping_add(1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `stream_data` should have an upper case name [INFO] [stdout] --> src/nes/apu/mixer.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | static mut stream_data: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 3 - static mut stream_data: Vec = vec![]; [INFO] [stdout] 3 + static mut STREAM_DATA: Vec = vec![]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/nes/apu/mixer.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | stream_data.push(data * self.volume); [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/nes/apu/mixer.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | stream_data.clear(); [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/nes/apu/mixer.rs:59:15 [INFO] [stdout] | [INFO] [stdout] 59 | match stream_data.pop() { [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: static variable `stream_data` should have an upper case name [INFO] [stdout] --> src/nes/apu/mixer.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | static mut stream_data: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 3 - static mut stream_data: Vec = vec![]; [INFO] [stdout] 3 + static mut STREAM_DATA: Vec = vec![]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/nes/apu/mixer.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | stream_data.push(data * self.volume); [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/nes/apu/mixer.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | stream_data.clear(); [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/nes/apu/mixer.rs:59:15 [INFO] [stdout] | [INFO] [stdout] 59 | match stream_data.pop() { [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.47s [INFO] running `Command { std: "docker" "inspect" "053bdc9039b37125cb93b54a855ff743c011bb7d9891c8a4f34c539eb41a446a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "053bdc9039b37125cb93b54a855ff743c011bb7d9891c8a4f34c539eb41a446a", kill_on_drop: false }` [INFO] [stdout] 053bdc9039b37125cb93b54a855ff743c011bb7d9891c8a4f34c539eb41a446a