[INFO] updating cached repository Reshurum/nes-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Reshurum/nes-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Reshurum/nes-rs" "work/ex/beta-1.38-1/sources/1.37.0/gh/Reshurum/nes-rs"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/1.37.0/gh/Reshurum/nes-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Reshurum/nes-rs" "work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/Reshurum/nes-rs"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/Reshurum/nes-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 2a19f071515181d5fd9ecd207b4fdc3f55524362 [INFO] sha for GitHub repo Reshurum/nes-rs: 2a19f071515181d5fd9ecd207b4fdc3f55524362 [INFO] validating manifest of Reshurum/nes-rs on toolchain 1.37.0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of Reshurum/nes-rs on toolchain beta-2019-08-13 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing Reshurum/nes-rs [INFO] finished frobbing Reshurum/nes-rs [INFO] frobbed toml for Reshurum/nes-rs written to work/ex/beta-1.38-1/sources/1.37.0/gh/Reshurum/nes-rs/Cargo.toml [INFO] started frobbing Reshurum/nes-rs [INFO] finished frobbing Reshurum/nes-rs [INFO] frobbed toml for Reshurum/nes-rs written to work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/Reshurum/nes-rs/Cargo.toml [INFO] crate Reshurum/nes-rs already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing Reshurum/nes-rs against 1.37.0 for beta-1.38-1 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-2/1.37.0:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/1.37.0/gh/Reshurum/nes-rs:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+1.37.0" "build" "--frozen"` [INFO] [stdout] 2fc405ddc582da8cc86eb3da33dcb0067a5148e94180bfd1f485773c186bf4bc [INFO] running `"docker" "start" "-a" "2fc405ddc582da8cc86eb3da33dcb0067a5148e94180bfd1f485773c186bf4bc"` [INFO] [stderr] Compiling encode_unicode v0.1.3 [INFO] [stderr] Compiling c_vec v1.3.0 [INFO] [stderr] Compiling getopts v0.2.15 [INFO] [stderr] Compiling enum_primitive v0.1.1 [INFO] [stderr] Compiling nix v0.5.1 [INFO] [stderr] Compiling num-bigint v0.1.41 [INFO] [stderr] warning[E0503]: cannot use `state` because it was mutably borrowed [INFO] [stderr] --> /opt/crater/cargo-home/registry/src/github.com-1ecc6299db9ec823/getopts-0.2.15/src/lib.rs:1033:33 [INFO] [stderr] | [INFO] [stderr] 978 | let mut machine = |cont: &mut bool, (i, c): (usize, char)| { [INFO] [stderr] | ---------------------------------------- borrow of `state` occurs here [INFO] [stderr] ... [INFO] [stderr] 982 | state = match (state, whitespace, limit) { [INFO] [stderr] | ----- borrow occurs due to use of `state` in closure [INFO] [stderr] ... [INFO] [stderr] 1033 | while cont && match state { B | C => true, A => false } { [INFO] [stderr] | ^ use of borrowed `state` [INFO] [stderr] 1034 | machine(&mut cont, (fake_i, ' ')); [INFO] [stderr] | ------- borrow later used here [INFO] [stderr] | [INFO] [stderr] = warning: this error has been downgraded to a warning for backwards compatibility with previous releases [INFO] [stderr] = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future [INFO] [stderr] = note: for more information, try `rustc --explain E0729` [INFO] [stderr] [INFO] [stderr] Compiling num-rational v0.1.40 [INFO] [stderr] Compiling num v0.1.41 [INFO] [stderr] Compiling chrono v0.3.0 [INFO] [stderr] Compiling sdl2 v0.31.0 [INFO] [stderr] Compiling rustyline v1.0.0 [INFO] [stderr] Compiling nes-rs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused imports: `MISC_CTRL_REGISTERS_SIZE`, `PPU_CTRL_REGISTERS_SIZE` [INFO] [stderr] --> src/nes/ppu.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | PPU_CTRL_REGISTERS_SIZE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 16 | MISC_CTRL_REGISTERS_SIZE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/ppu.rs:174:33 [INFO] [stderr] | [INFO] [stderr] 174 | PATTERN_TABLES_START...PATTERN_TABLES_END => [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: #[warn(ellipsis_inclusive_range_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/ppu.rs:176:30 [INFO] [stderr] | [INFO] [stderr] 176 | NAME_TABLES_START...NAME_TABLES_END => [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/ppu.rs:178:37 [INFO] [stderr] | [INFO] [stderr] 178 | NAME_TABLES_MIRROR_START...NAME_TABLES_MIRROR_END => [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/ppu.rs:180:27 [INFO] [stderr] | [INFO] [stderr] 180 | PALETTES_START...PALETTES_END => [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/ppu.rs:182:34 [INFO] [stderr] | [INFO] [stderr] 182 | PALETTES_MIRROR_START...PALETTES_MIRROR_END => [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/ppu.rs:184:25 [INFO] [stderr] | [INFO] [stderr] 184 | MIRROR_START...MIRROR_END => [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:414:27 [INFO] [stderr] | [INFO] [stderr] 414 | RAM_START_ADDR...RAM_END_ADDR => MappingResult { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:420:29 [INFO] [stderr] | [INFO] [stderr] 420 | RAM_MIRROR_START...RAM_MIRROR_END => MappingResult { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:426:37 [INFO] [stderr] | [INFO] [stderr] 426 | PPU_CTRL_REGISTERS_START...PPU_CTRL_REGISTERS_END => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:429:44 [INFO] [stderr] | [INFO] [stderr] 429 | PPU_CTRL_REGISTERS_MIRROR_START...PPU_CTRL_REGISTERS_MIRROR_END => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:433:38 [INFO] [stderr] | [INFO] [stderr] 433 | MISC_CTRL_REGISTERS_START...MISC_CTRL_REGISTERS_END => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:436:32 [INFO] [stderr] | [INFO] [stderr] 436 | EXPANSION_ROM_START...EXPANSION_ROM_END => MappingResult { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:442:23 [INFO] [stderr] | [INFO] [stderr] 442 | SRAM_START...SRAM_END => MappingResult { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:448:28 [INFO] [stderr] | [INFO] [stderr] 448 | PRG_ROM_1_START...PRG_ROM_1_END => MappingResult { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/nes/memory.rs:454:28 [INFO] [stderr] | [INFO] [stderr] 454 | PRG_ROM_2_START...PRG_ROM_2_END => MappingResult { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: unused import: `sdl2::render` [INFO] [stderr] --> src/nes/nes.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use sdl2::render; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufRead`, `Read`, `stdin` [INFO] [stderr] --> src/nes/nes.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | use std::io::{self, stdin, BufRead, BufReader, Read, Write}; [INFO] [stderr] | ^^^^^ ^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `peek` [INFO] [stderr] --> src/debugger/debugger.rs:310:13 [INFO] [stderr] | [INFO] [stderr] 310 | let peek = match matches.opt_str("peek") { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_peek` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/debugger/debugger.rs:324:13 [INFO] [stderr] | [INFO] [stderr] 324 | let addr = if !matches.free.is_empty() { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/nes/ppu.rs:387:37 [INFO] [stderr] | [INFO] [stderr] 387 | fn handle_ppu_status(&mut self, index: usize, memory: &mut Memory) { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `memory` [INFO] [stderr] --> src/nes/ppu.rs:387:51 [INFO] [stderr] | [INFO] [stderr] 387 | fn handle_ppu_status(&mut self, index: usize, memory: &mut Memory) { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_memory` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `UNCLOSING_QUOTE` [INFO] [stderr] --> src/debugger/parser.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | const UNCLOSING_QUOTE: &'static str = "quoted arg does not close"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PERSISTENT_FLAG` [INFO] [stderr] --> src/io/binutils.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | const PERSISTENT_FLAG: u8 = 0x2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `has_persistent_ram` [INFO] [stderr] --> src/io/binutils.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn has_persistent_ram(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `unset_break_command` [INFO] [stderr] --> src/nes/cpu.rs:240:5 [INFO] [stderr] | [INFO] [stderr] 240 | pub fn unset_break_command(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_u8` [INFO] [stderr] --> src/nes/instruction.rs:2011:5 [INFO] [stderr] | [INFO] [stderr] 2011 | fn dereference_u8(&self, memory: &mut Memory) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_u16` [INFO] [stderr] --> src/nes/instruction.rs:2017:5 [INFO] [stderr] | [INFO] [stderr] 2017 | fn dereference_u16(&self, memory: &mut Memory) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `accumulator` [INFO] [stderr] --> src/nes/instruction.rs:2028:5 [INFO] [stderr] | [INFO] [stderr] 2028 | fn accumulator(&self, cpu: &CPU) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_zero_page_y` [INFO] [stderr] --> src/nes/instruction.rs:2144:5 [INFO] [stderr] | [INFO] [stderr] 2144 | fn dereference_zero_page_y(&self, memory: &mut Memory, cpu: &CPU) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_absolute_x` [INFO] [stderr] --> src/nes/instruction.rs:2158:5 [INFO] [stderr] | [INFO] [stderr] 2158 | fn dereference_absolute_x(&self, memory: &mut Memory, cpu: &CPU) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_absolute_y` [INFO] [stderr] --> src/nes/instruction.rs:2165:5 [INFO] [stderr] | [INFO] [stderr] 2165 | fn dereference_absolute_y(&self, memory: &mut Memory, cpu: &CPU) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_indirect` [INFO] [stderr] --> src/nes/instruction.rs:2172:5 [INFO] [stderr] | [INFO] [stderr] 2172 | fn dereference_indirect(&self, memory: &mut Memory) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_indirect_y` [INFO] [stderr] --> src/nes/instruction.rs:2186:5 [INFO] [stderr] | [INFO] [stderr] 2186 | fn dereference_indirect_y(&self, memory: &mut Memory, cpu: &CPU) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dereference_indirect_unrestricted` [INFO] [stderr] --> src/nes/instruction.rs:2235:5 [INFO] [stderr] | [INFO] [stderr] 2235 | fn dereference_indirect_unrestricted(&self, memory: &mut Memory) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PATTERN_TABLES_START` [INFO] [stderr] --> src/nes/ppu.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | const PATTERN_TABLES_START: usize = 0x0000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PATTERN_TABLES_END` [INFO] [stderr] --> src/nes/ppu.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | const PATTERN_TABLES_END: usize = 0x1FFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NAME_TABLES_START` [INFO] [stderr] --> src/nes/ppu.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | const NAME_TABLES_START: usize = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NAME_TABLES_END` [INFO] [stderr] --> src/nes/ppu.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | const NAME_TABLES_END: usize = 0x2FFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NAME_TABLES_MIRROR_START` [INFO] [stderr] --> src/nes/ppu.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | const NAME_TABLES_MIRROR_START: usize = 0x3000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NAME_TABLES_MIRROR_END` [INFO] [stderr] --> src/nes/ppu.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | const NAME_TABLES_MIRROR_END: usize = 0x3EFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PALETTES_START` [INFO] [stderr] --> src/nes/ppu.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | const PALETTES_START: usize = 0x3F00; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PALETTES_END` [INFO] [stderr] --> src/nes/ppu.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | const PALETTES_END: usize = 0x3F1F; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PALETTES_MIRROR_START` [INFO] [stderr] --> src/nes/ppu.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | const PALETTES_MIRROR_START: usize = 0x3F20; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PALETTES_MIRROR_END` [INFO] [stderr] --> src/nes/ppu.rs:36:1 [INFO] [stderr] | [INFO] [stderr] 36 | const PALETTES_MIRROR_END: usize = 0x3FFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MIRROR_START` [INFO] [stderr] --> src/nes/ppu.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | const MIRROR_START: usize = 0x4000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MIRROR_END` [INFO] [stderr] --> src/nes/ppu.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const MIRROR_END: usize = 0xFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `INITIAL_OAMDMA` [INFO] [stderr] --> src/nes/ppu.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | const INITIAL_OAMDMA: u8 = 0b00000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_BASE_NAMETABLE_ADDRESS` [INFO] [stderr] --> src/nes/ppu.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | const PPUCTRL_BASE_NAMETABLE_ADDRESS: u8 = 0b00000011; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_VRAM_ADDRESS_INCREMENT` [INFO] [stderr] --> src/nes/ppu.rs:64:1 [INFO] [stderr] | [INFO] [stderr] 64 | const PPUCTRL_VRAM_ADDRESS_INCREMENT: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_SPRITE_PATTERN_TABLE_ADDRESS` [INFO] [stderr] --> src/nes/ppu.rs:65:1 [INFO] [stderr] | [INFO] [stderr] 65 | const PPUCTRL_SPRITE_PATTERN_TABLE_ADDRESS: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_BACKGROUND_PATTERN_TABLE_ADDRESS` [INFO] [stderr] --> src/nes/ppu.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | const PPUCTRL_BACKGROUND_PATTERN_TABLE_ADDRESS: u8 = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_SPRITE_SIZE` [INFO] [stderr] --> src/nes/ppu.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | const PPUCTRL_SPRITE_SIZE: u8 = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_MASTER_SLAVE_SELECT` [INFO] [stderr] --> src/nes/ppu.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | const PPUCTRL_MASTER_SLAVE_SELECT: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUCTRL_NMI_ENABLE` [INFO] [stderr] --> src/nes/ppu.rs:69:1 [INFO] [stderr] | [INFO] [stderr] 69 | const PPUCTRL_NMI_ENABLE: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_GREYSCALE` [INFO] [stderr] --> src/nes/ppu.rs:70:1 [INFO] [stderr] | [INFO] [stderr] 70 | const PPUMASK_GREYSCALE: u8 = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_SHOW_BACKGROUND_LEFT` [INFO] [stderr] --> src/nes/ppu.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | const PPUMASK_SHOW_BACKGROUND_LEFT: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_SHOW_SPRITES_LEFT` [INFO] [stderr] --> src/nes/ppu.rs:72:1 [INFO] [stderr] | [INFO] [stderr] 72 | const PPUMASK_SHOW_SPRITES_LEFT: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_SHOW_BACKGROUND` [INFO] [stderr] --> src/nes/ppu.rs:73:1 [INFO] [stderr] | [INFO] [stderr] 73 | const PPUMASK_SHOW_BACKGROUND: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_SHOW_SPRITES` [INFO] [stderr] --> src/nes/ppu.rs:74:1 [INFO] [stderr] | [INFO] [stderr] 74 | const PPUMASK_SHOW_SPRITES: u8 = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_EMPHASIZE_RED` [INFO] [stderr] --> src/nes/ppu.rs:75:1 [INFO] [stderr] | [INFO] [stderr] 75 | const PPUMASK_EMPHASIZE_RED: u8 = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_EMPHASIZE_GREEN` [INFO] [stderr] --> src/nes/ppu.rs:76:1 [INFO] [stderr] | [INFO] [stderr] 76 | const PPUMASK_EMPHASIZE_GREEN: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUMASK_EMPHASIZE_BLUE` [INFO] [stderr] --> src/nes/ppu.rs:77:1 [INFO] [stderr] | [INFO] [stderr] 77 | const PPUMASK_EMPHASIZE_BLUE: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUSTATUS_REGISTER_BITS` [INFO] [stderr] --> src/nes/ppu.rs:78:1 [INFO] [stderr] | [INFO] [stderr] 78 | const PPUSTATUS_REGISTER_BITS: u8 = 0b00011111; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUSTATUS_SPRITE_OVERFLOW` [INFO] [stderr] --> src/nes/ppu.rs:79:1 [INFO] [stderr] | [INFO] [stderr] 79 | const PPUSTATUS_SPRITE_OVERFLOW: u8 = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUSTATUS_SPRITE_0_HIT` [INFO] [stderr] --> src/nes/ppu.rs:80:1 [INFO] [stderr] | [INFO] [stderr] 80 | const PPUSTATUS_SPRITE_0_HIT: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PPUSTATUS_VBLANK` [INFO] [stderr] --> src/nes/ppu.rs:81:1 [INFO] [stderr] | [INFO] [stderr] 81 | const PPUSTATUS_VBLANK: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `SpriteSize` [INFO] [stderr] --> src/nes/ppu.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | enum SpriteSize { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `MasterSlaveSelect` [INFO] [stderr] --> src/nes/ppu.rs:91:1 [INFO] [stderr] | [INFO] [stderr] 91 | enum MasterSlaveSelect { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `ppu_status` [INFO] [stderr] --> src/nes/ppu.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | ppu_status: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `ppu_scroll` [INFO] [stderr] --> src/nes/ppu.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | ppu_scroll: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `ppu_addr` [INFO] [stderr] --> src/nes/ppu.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | ppu_addr: u8, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `ppu_data` [INFO] [stderr] --> src/nes/ppu.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | ppu_data: u8, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `runtime_options` [INFO] [stderr] --> src/nes/ppu.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | runtime_options: NESRuntimeOptions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pattern_tables` [INFO] [stderr] --> src/nes/ppu.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | pattern_tables: [u8; PATTERN_TABLES_SIZE], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name_tables` [INFO] [stderr] --> src/nes/ppu.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | name_tables: [u8; NAME_TABLES_SIZE], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `palettes` [INFO] [stderr] --> src/nes/ppu.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | palettes: [u8; PALETTES_SIZE], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `spr_ram` [INFO] [stderr] --> src/nes/ppu.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | spr_ram: [u8; SPR_RAM_SIZE], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `map` [INFO] [stderr] --> src/nes/ppu.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | fn map(&mut self, addr: usize) -> (&mut [u8], usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read_u8` [INFO] [stderr] --> src/nes/ppu.rs:192:5 [INFO] [stderr] | [INFO] [stderr] 192 | fn read_u8(&mut self, addr: usize) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_u8` [INFO] [stderr] --> src/nes/ppu.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | fn write_u8(&mut self, addr: usize, value: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_base_nametable_address` [INFO] [stderr] --> src/nes/ppu.rs:206:5 [INFO] [stderr] | [INFO] [stderr] 206 | fn ppu_ctrl_base_nametable_address(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_vram_address_increment` [INFO] [stderr] --> src/nes/ppu.rs:218:5 [INFO] [stderr] | [INFO] [stderr] 218 | fn ppu_ctrl_vram_address_increment(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_sprite_pattern_table_address` [INFO] [stderr] --> src/nes/ppu.rs:227:5 [INFO] [stderr] | [INFO] [stderr] 227 | fn ppu_ctrl_sprite_pattern_table_address(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_background_pattern_table_address` [INFO] [stderr] --> src/nes/ppu.rs:236:5 [INFO] [stderr] | [INFO] [stderr] 236 | fn ppu_ctrl_background_pattern_table_address(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_sprite_size` [INFO] [stderr] --> src/nes/ppu.rs:245:5 [INFO] [stderr] | [INFO] [stderr] 245 | fn ppu_ctrl_sprite_size(&self) -> SpriteSize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_master_slave_select` [INFO] [stderr] --> src/nes/ppu.rs:254:5 [INFO] [stderr] | [INFO] [stderr] 254 | fn ppu_ctrl_master_slave_select(&self) -> MasterSlaveSelect { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_ctrl_nmi_enabled` [INFO] [stderr] --> src/nes/ppu.rs:263:5 [INFO] [stderr] | [INFO] [stderr] 263 | fn ppu_ctrl_nmi_enabled(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_greyscale` [INFO] [stderr] --> src/nes/ppu.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | fn ppu_mask_greyscale(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_show_background_left` [INFO] [stderr] --> src/nes/ppu.rs:275:5 [INFO] [stderr] | [INFO] [stderr] 275 | fn ppu_mask_show_background_left(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_show_sprites_left` [INFO] [stderr] --> src/nes/ppu.rs:281:5 [INFO] [stderr] | [INFO] [stderr] 281 | fn ppu_mask_show_sprites_left(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_show_background` [INFO] [stderr] --> src/nes/ppu.rs:287:5 [INFO] [stderr] | [INFO] [stderr] 287 | fn ppu_mask_show_background(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_show_sprites` [INFO] [stderr] --> src/nes/ppu.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | fn ppu_mask_show_sprites(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_emphasize_red` [INFO] [stderr] --> src/nes/ppu.rs:299:5 [INFO] [stderr] | [INFO] [stderr] 299 | fn ppu_mask_emphasize_red(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_emphasize_green` [INFO] [stderr] --> src/nes/ppu.rs:305:5 [INFO] [stderr] | [INFO] [stderr] 305 | fn ppu_mask_emphasize_green(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_mask_emphasize_blue` [INFO] [stderr] --> src/nes/ppu.rs:311:5 [INFO] [stderr] | [INFO] [stderr] 311 | fn ppu_mask_emphasize_blue(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_status_register_bits` [INFO] [stderr] --> src/nes/ppu.rs:317:5 [INFO] [stderr] | [INFO] [stderr] 317 | fn ppu_status_register_bits(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_status_sprite_overflow` [INFO] [stderr] --> src/nes/ppu.rs:323:5 [INFO] [stderr] | [INFO] [stderr] 323 | fn ppu_status_sprite_overflow(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_status_sprite_0_hit` [INFO] [stderr] --> src/nes/ppu.rs:329:5 [INFO] [stderr] | [INFO] [stderr] 329 | fn ppu_status_sprite_0_hit(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `ppu_status_vblank` [INFO] [stderr] --> src/nes/ppu.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | fn ppu_status_vblank(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `DMA_REGISTER` [INFO] [stderr] --> src/nes/memory.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | pub const DMA_REGISTER: usize = 0x4014; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read_u16_wrapped_msb_alt` [INFO] [stderr] --> src/nes/memory.rs:206:5 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn read_u16_wrapped_msb_alt(&mut self, addr: usize) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_u16` [INFO] [stderr] --> src/nes/memory.rs:222:5 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn write_u16(&mut self, addr: usize, val: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: linking with `cc` failed: exit code: 1 [INFO] [stderr] | [INFO] [stderr] = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.0.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.1.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.10.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.11.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.12.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.13.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.14.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.15.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.2.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.3.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.4.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.5.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.6.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.7.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.8.rcgu.o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.nes_rs.fsp29zcs-cgu.9.rcgu.o" "-o" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c" "/opt/crater/target/debug/deps/nes_rs-0e2f72511408839c.17gkc2sjp3p7fo00.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/opt/crater/target/debug/deps" "-L" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/crater/target/debug/deps/libsdl2-c9a943f33961e501.rlib" "/opt/crater/target/debug/deps/libc_vec-2c5b0111ed7358b9.rlib" "/opt/crater/target/debug/deps/libsdl2_sys-a3f5cf7805507dd4.rlib" "/opt/crater/target/debug/deps/libbitflags-05fa20c47058c1db.rlib" "/opt/crater/target/debug/deps/liblazy_static-0c9d1899e9eae559.rlib" "/opt/crater/target/debug/deps/librustyline-0e2f921b2388ceea.rlib" "/opt/crater/target/debug/deps/libencode_unicode-a7ee39f5bde49d67.rlib" "/opt/crater/target/debug/deps/libunicode_width-8e49fc9eb4c9dbb0.rlib" "/opt/crater/target/debug/deps/libnix-d05fb3ed944e679c.rlib" "/opt/crater/target/debug/deps/libbitflags-9f030c7d282c894d.rlib" "/opt/crater/target/debug/deps/libgetopts-f14eb7a20d84cb41.rlib" "/opt/crater/target/debug/deps/libchrono-4adcaac3ad08b08d.rlib" "/opt/crater/target/debug/deps/libnum-d8e5e03ca644b928.rlib" "/opt/crater/target/debug/deps/libnum_rational-ac96ce528b974117.rlib" "/opt/crater/target/debug/deps/libnum_bigint-b7ef3d03ecd9a706.rlib" "/opt/crater/target/debug/deps/librand-8254497a6e6b81a8.rlib" "/opt/crater/target/debug/deps/libnum_complex-ff4b6cc3d1f1cdd9.rlib" "/opt/crater/target/debug/deps/librustc_serialize-cc29b8ffd74fbfca.rlib" "/opt/crater/target/debug/deps/libnum_iter-fae6375a643dbfd9.rlib" "/opt/crater/target/debug/deps/libnum_integer-2667031c5b1ae323.rlib" "/opt/crater/target/debug/deps/libtime-2c8e126d5f3beba4.rlib" "/opt/crater/target/debug/deps/liblibc-ed66edf54cba770d.rlib" "/opt/crater/target/debug/deps/libbyteorder-a3968c370c7b24cf.rlib" "/opt/crater/target/debug/deps/libenum_primitive-a868edb9cb2a2bda.rlib" "/opt/crater/target/debug/deps/libnum_traits-b1a031529aab51a7.rlib" "-Wl,--start-group" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-4a76ff35a356aedf.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-e11c7b3b3225afe2.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-13217ede3d276f16.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-621a9ee22da6caa1.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-546c844e8071bbeb.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-be9569e4d599746f.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-47d8845cef2a3bc5.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-017511bce73a530c.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-be7979c57a08057b.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-d6459c4f0817c67c.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-580035dd98451925.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-aee5c24fff305dea.rlib" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-8a55a4098920125a.rlib" "-Wl,--end-group" "/opt/crater/rustup-home/toolchains/1.37.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-9fc4b5be2ba5cc19.rlib" "-Wl,-Bdynamic" "-lSDL2_mixer" "-lSDL2_gfx" "-lSDL2" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil" [INFO] [stderr] = note: /usr/bin/ld: cannot find -lSDL2_mixer [INFO] [stderr] /usr/bin/ld: cannot find -lSDL2_gfx [INFO] [stderr] collect2: error: ld returned 1 exit status [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `nes-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "2fc405ddc582da8cc86eb3da33dcb0067a5148e94180bfd1f485773c186bf4bc"` [INFO] running `"docker" "rm" "-f" "2fc405ddc582da8cc86eb3da33dcb0067a5148e94180bfd1f485773c186bf4bc"` [INFO] [stdout] 2fc405ddc582da8cc86eb3da33dcb0067a5148e94180bfd1f485773c186bf4bc