Dec 02 09:08:10.116 INFO testing BlinfoldKing/Chip8-rs against 1.30.1 for beta-1.31-5
Dec 02 09:08:10.116 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-4/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-4/beta-1.31-5/1.30.1:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1.30.1 build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 02 09:08:10.624 INFO [stdout] 16e6fc95febdd7b06b2a0828fdeca5d016ee5a7120123cf42e8478ce2a9e5b39
Dec 02 09:08:10.626 INFO running `"docker" "start" "-a" "16e6fc95febdd7b06b2a0828fdeca5d016ee5a7120123cf42e8478ce2a9e5b39"`
Dec 02 09:08:13.291 INFO [stderr] usermod: no changes
Dec 02 09:08:13.694 INFO [stderr]    Compiling gfx_core v0.8.3
Dec 02 09:08:13.694 INFO [stderr]    Compiling crossbeam-epoch v0.3.1
Dec 02 09:08:13.716 INFO [stderr]    Compiling gfx_gl v0.5.0
Dec 02 09:08:13.728 INFO [stderr]    Compiling num-derive v0.2.3
Dec 02 09:08:13.730 INFO [stderr]    Compiling rusttype v0.4.3
Dec 02 09:08:13.748 INFO [stderr]    Compiling pistoncore-input v0.21.0
Dec 02 09:08:13.755 INFO [stderr]    Compiling smithay-client-toolkit v0.3.0
Dec 02 09:08:24.071 INFO [stderr]    Compiling crossbeam-deque v0.2.0
Dec 02 09:08:26.551 INFO [stderr]    Compiling piston2d-graphics v0.26.0
Dec 02 09:08:31.027 INFO [stderr]    Compiling rayon-core v1.4.1
Dec 02 09:08:40.683 INFO [stderr]    Compiling pistoncore-window v0.32.0
Dec 02 09:08:41.939 INFO [stderr]    Compiling winit v0.17.2
Dec 02 09:08:44.765 INFO [stderr]    Compiling rayon v1.0.2
Dec 02 09:08:52.355 INFO [stderr]    Compiling pistoncore-event_loop v0.37.0
Dec 02 09:09:00.692 INFO [stderr]    Compiling piston v0.37.0
Dec 02 09:09:01.191 INFO [stderr]    Compiling tiff v0.2.1
Dec 02 09:09:10.417 INFO [stderr]    Compiling jpeg-decoder v0.1.15
Dec 02 09:09:20.972 INFO [stderr]    Compiling glutin v0.18.0
Dec 02 09:09:25.547 INFO [stderr]    Compiling image v0.20.0
Dec 02 09:09:33.071 INFO [stderr]    Compiling pistoncore-glutin_window v0.48.0
Dec 02 09:09:54.551 INFO [stderr]    Compiling piston2d-opengl_graphics v0.54.0
Dec 02 09:09:56.631 INFO [stderr]    Compiling gfx v0.17.1
Dec 02 09:09:56.631 INFO [stderr]    Compiling gfx_device_gl v0.15.3
Dec 02 09:10:05.503 INFO [stderr]    Compiling piston-gfx_texture v0.34.0
Dec 02 09:10:08.659 INFO [stderr]    Compiling piston2d-gfx_graphics v0.52.0
Dec 02 09:10:14.159 INFO [stderr]    Compiling piston_window v0.81.0
Dec 02 09:10:19.723 INFO [stderr]    Compiling chip8-rust v0.1.0 (/source)
Dec 02 09:10:24.755 INFO [stderr] warning: unused import: `piston::window::WindowSettings`
Dec 02 09:10:24.755 INFO [stderr]  --> src/main.rs:9:5
Dec 02 09:10:24.755 INFO [stderr]   |
Dec 02 09:10:24.755 INFO [stderr] 9 | use piston::window::WindowSettings;
Dec 02 09:10:24.755 INFO [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:24.755 INFO [stderr]   |
Dec 02 09:10:24.755 INFO [stderr]   = note: #[warn(unused_imports)] on by default
Dec 02 09:10:24.755 INFO [stderr] 
Dec 02 09:10:24.755 INFO [stderr] warning: unused import: `glutin_window::GlutinWindow as Window`
Dec 02 09:10:24.755 INFO [stderr]   --> src/main.rs:10:5
Dec 02 09:10:24.755 INFO [stderr]    |
Dec 02 09:10:24.755 INFO [stderr] 10 | use glutin_window::GlutinWindow as Window;
Dec 02 09:10:24.755 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:24.755 INFO [stderr] 
Dec 02 09:10:24.755 INFO [stderr] warning: unused import: `piston::event_loop::*`
Dec 02 09:10:24.755 INFO [stderr]   --> src/main.rs:11:5
Dec 02 09:10:24.755 INFO [stderr]    |
Dec 02 09:10:24.755 INFO [stderr] 11 | use piston::event_loop::*;
Dec 02 09:10:24.755 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:24.755 INFO [stderr] 
Dec 02 09:10:24.755 INFO [stderr] warning: unused import: `piston::input::*`
Dec 02 09:10:24.755 INFO [stderr]   --> src/main.rs:12:5
Dec 02 09:10:24.755 INFO [stderr]    |
Dec 02 09:10:24.755 INFO [stderr] 12 | use piston::input::*;
Dec 02 09:10:24.755 INFO [stderr]    |     ^^^^^^^^^^^^^^^^
Dec 02 09:10:24.755 INFO [stderr] 
Dec 02 09:10:24.755 INFO [stderr] warning: unused imports: `GlGraphics`, `OpenGL`
Dec 02 09:10:24.755 INFO [stderr]   --> src/main.rs:13:24
Dec 02 09:10:24.755 INFO [stderr]    |
Dec 02 09:10:24.755 INFO [stderr] 13 | use opengl_graphics::{ GlGraphics, OpenGL };
Dec 02 09:10:24.755 INFO [stderr]    |                        ^^^^^^^^^^  ^^^^^^
Dec 02 09:10:24.755 INFO [stderr] 
Dec 02 09:10:24.755 INFO [stderr] warning: unused import: `std::io::prelude::*`
Dec 02 09:10:24.755 INFO [stderr]  --> src/CPU.rs:4:5
Dec 02 09:10:24.755 INFO [stderr]   |
Dec 02 09:10:24.755 INFO [stderr] 4 | use std::io::prelude::*;
Dec 02 09:10:24.755 INFO [stderr]   |     ^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:24.755 INFO [stderr] 
Dec 02 09:10:24.811 INFO [stderr] warning: unreachable statement
Dec 02 09:10:24.811 INFO [stderr]   --> src/main.rs:29:5
Dec 02 09:10:24.811 INFO [stderr]    |
Dec 02 09:10:24.811 INFO [stderr] 29 |     println!("Hello, world!");
Dec 02 09:10:24.811 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:24.811 INFO [stderr]    |
Dec 02 09:10:24.811 INFO [stderr]    = note: #[warn(unreachable_code)] on by default
Dec 02 09:10:24.811 INFO [stderr]    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
Dec 02 09:10:24.811 INFO [stderr] 
Dec 02 09:10:24.921 INFO [stderr] warning: unused variable: `state`
Dec 02 09:10:24.921 INFO [stderr]   --> src/CPU.rs:83:13
Dec 02 09:10:24.921 INFO [stderr]    |
Dec 02 09:10:24.921 INFO [stderr] 83 |         let state = match nibble {
Dec 02 09:10:24.921 INFO [stderr]    |             ^^^^^ help: consider using `_state` instead
Dec 02 09:10:24.921 INFO [stderr]    |
Dec 02 09:10:24.921 INFO [stderr]    = note: #[warn(unused_variables)] on by default
Dec 02 09:10:24.921 INFO [stderr] 
Dec 02 09:10:24.921 INFO [stderr] warning: unused variable: `bytes_read`
Dec 02 09:10:24.921 INFO [stderr]    --> src/CPU.rs:265:13
Dec 02 09:10:24.921 INFO [stderr]     |
Dec 02 09:10:24.921 INFO [stderr] 265 |         let bytes_read = if let Ok(bytes_read) = reader.read(&mut buffer) {
Dec 02 09:10:24.921 INFO [stderr]     |             ^^^^^^^^^^ help: consider using `_bytes_read` instead
Dec 02 09:10:24.921 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: field is never used: `gfx`
Dec 02 09:10:24.956 INFO [stderr]   --> src/CPU.rs:24:5
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr] 24 |     gfx: [[u8; 32]; 64],
Dec 02 09:10:24.956 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr]    = note: #[warn(dead_code)] on by default
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: field is never used: `delay_timer`
Dec 02 09:10:24.956 INFO [stderr]   --> src/CPU.rs:27:5
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr] 27 |     delay_timer: u8,
Dec 02 09:10:24.956 INFO [stderr]    |     ^^^^^^^^^^^^^^^
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: field is never used: `sound_timer`
Dec 02 09:10:24.956 INFO [stderr]   --> src/CPU.rs:28:5
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr] 28 |     sound_timer: u8,
Dec 02 09:10:24.956 INFO [stderr]    |     ^^^^^^^^^^^^^^^
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: module `CPU` should have a snake case name such as `cpu`
Dec 02 09:10:24.956 INFO [stderr]   --> src/main.rs:15:1
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr] 15 | mod CPU;
Dec 02 09:10:24.956 INFO [stderr]    | ^^^^^^^^
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr]    = note: #[warn(non_snake_case)] on by default
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: constant `fontset` should have an upper case name such as `FONTSET`
Dec 02 09:10:24.956 INFO [stderr]   --> src/CPU.rs:9:1
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr] 9  | / const fontset: [u8; 80] = [
Dec 02 09:10:24.956 INFO [stderr] 10 | |     0xF0, 0x90, 0x90, 0x90, 0xF0, 0x20, 0x60, 0x20, 0x20, 0x70,
Dec 02 09:10:24.956 INFO [stderr] 11 | |     0xF0, 0x10, 0xF0, 0x80, 0xF0, 0xF0, 0x10, 0xF0, 0x10, 0xF0,
Dec 02 09:10:24.956 INFO [stderr] 12 | |     0x90, 0x90, 0xF0, 0x10, 0x10, 0xF0, 0x80, 0xF0, 0x10, 0xF0,
Dec 02 09:10:24.956 INFO [stderr] ...  |
Dec 02 09:10:24.956 INFO [stderr] 17 | |     0xF0, 0x80, 0xF0, 0x80, 0xF0, 0xF0, 0x80, 0xF0, 0x80, 0x80
Dec 02 09:10:24.956 INFO [stderr] 18 | | ];
Dec 02 09:10:24.956 INFO [stderr]    | |__^
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr]    = note: #[warn(non_upper_case_globals)] on by default
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: structure field `V` should have a snake case name such as `v`
Dec 02 09:10:24.956 INFO [stderr]   --> src/CPU.rs:26:5
Dec 02 09:10:24.956 INFO [stderr]    |
Dec 02 09:10:24.956 INFO [stderr] 26 |     V: [u8; 16], // General purpose registers
Dec 02 09:10:24.956 INFO [stderr]    |     ^^^^^^^^^^^
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: method `JP` should have a snake case name such as `jp`
Dec 02 09:10:24.956 INFO [stderr]    --> src/CPU.rs:116:5
Dec 02 09:10:24.956 INFO [stderr]     |
Dec 02 09:10:24.956 INFO [stderr] 116 | /     fn JP (&mut self, nnn: u16) {
Dec 02 09:10:24.956 INFO [stderr] 117 | |         println!("JP {}", nnn);
Dec 02 09:10:24.956 INFO [stderr] 118 | |         self.program_counter = nnn;
Dec 02 09:10:24.956 INFO [stderr] 119 | |     }
Dec 02 09:10:24.956 INFO [stderr]     | |_____^
Dec 02 09:10:24.956 INFO [stderr] 
Dec 02 09:10:24.956 INFO [stderr] warning: method `CALL` should have a snake case name such as `call`
Dec 02 09:10:24.956 INFO [stderr]    --> src/CPU.rs:121:5
Dec 02 09:10:24.956 INFO [stderr]     |
Dec 02 09:10:24.956 INFO [stderr] 121 | /     fn CALL (&mut self, nnn: u16) {
Dec 02 09:10:24.956 INFO [stderr] 122 | |         println!("CALL {}", nnn);
Dec 02 09:10:24.956 INFO [stderr] 123 | |         self.stack[self.sp as usize] = self.program_counter;
Dec 02 09:10:24.957 INFO [stderr] 124 | |         self.sp + 1;
Dec 02 09:10:24.957 INFO [stderr] 125 | |         self.program_counter = nnn;
Dec 02 09:10:24.957 INFO [stderr] 126 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: unused arithmetic operation which must be used
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:124:9
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 124 |         self.sp + 1;
Dec 02 09:10:24.957 INFO [stderr]     |         ^^^^^^^^^^^
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr]     = note: #[warn(unused_must_use)] on by default
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `RET` should have a snake case name such as `ret`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:128:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 128 | /     fn RET (&mut self) {
Dec 02 09:10:24.957 INFO [stderr] 129 | |         println!("RET");
Dec 02 09:10:24.957 INFO [stderr] 130 | |         self.program_counter = self.stack[self.sp as usize];
Dec 02 09:10:24.957 INFO [stderr] 131 | |         self.sp -= 1;
Dec 02 09:10:24.957 INFO [stderr] 132 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `SE` should have a snake case name such as `se`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:134:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 134 | /     fn SE (&mut self, x: u16, kk: u16) {
Dec 02 09:10:24.957 INFO [stderr] 135 | |         println!("SE {} {}", x, kk);
Dec 02 09:10:24.957 INFO [stderr] 136 | |         if self.V[x as usize] as u16 == kk {
Dec 02 09:10:24.957 INFO [stderr] 137 | |             self.program_counter += 2;
Dec 02 09:10:24.957 INFO [stderr] 138 | |         }
Dec 02 09:10:24.957 INFO [stderr] 139 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `SNE` should have a snake case name such as `sne`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:141:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 141 | /     fn SNE (&mut self, x: u16, kk: u16) {
Dec 02 09:10:24.957 INFO [stderr] 142 | |         println!("SNE {} {}", x, kk);
Dec 02 09:10:24.957 INFO [stderr] 143 | |         if self.V[x as usize] as u16 != kk {
Dec 02 09:10:24.957 INFO [stderr] 144 | |             self.program_counter += 2;
Dec 02 09:10:24.957 INFO [stderr] 145 | |         }
Dec 02 09:10:24.957 INFO [stderr] 146 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `SE_xy` should have a snake case name such as `se_xy`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:148:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 148 | /     fn SE_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.957 INFO [stderr] 149 | |         println!("SE_xy {} {}", x, y);
Dec 02 09:10:24.957 INFO [stderr] 150 | |         if self.V[x as usize] != self.V[y as usize] {
Dec 02 09:10:24.957 INFO [stderr] 151 | |             self.program_counter += 2;
Dec 02 09:10:24.957 INFO [stderr] 152 | |         }
Dec 02 09:10:24.957 INFO [stderr] 153 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `LD` should have a snake case name such as `ld`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:155:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 155 | /     fn LD (&mut self, x: u16, kk: u16) {
Dec 02 09:10:24.957 INFO [stderr] 156 | |         println!("LD {} {}", x, kk);
Dec 02 09:10:24.957 INFO [stderr] 157 | |         self.V[x as usize] = kk as u8;
Dec 02 09:10:24.957 INFO [stderr] 158 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `ADD` should have a snake case name such as `add`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:160:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 160 | /     fn ADD (&mut self, x: u16, kk: u16) {
Dec 02 09:10:24.957 INFO [stderr] 161 | |         println!("ADD {} {}", x, kk);
Dec 02 09:10:24.957 INFO [stderr] 162 | |         self.V[x as usize] += kk as u8;
Dec 02 09:10:24.957 INFO [stderr] 163 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `LD_xy` should have a snake case name such as `ld_xy`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:165:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 165 | /     fn LD_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.957 INFO [stderr] 166 | |         println!("LD_xy {} {}", x, y);
Dec 02 09:10:24.957 INFO [stderr] 167 | |         self.V[x as usize] = self.V[y as usize];
Dec 02 09:10:24.957 INFO [stderr] 168 | |     }
Dec 02 09:10:24.957 INFO [stderr]     | |_____^
Dec 02 09:10:24.957 INFO [stderr] 
Dec 02 09:10:24.957 INFO [stderr] warning: method `OR` should have a snake case name such as `or`
Dec 02 09:10:24.957 INFO [stderr]    --> src/CPU.rs:170:5
Dec 02 09:10:24.957 INFO [stderr]     |
Dec 02 09:10:24.957 INFO [stderr] 170 | /     fn OR (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.957 INFO [stderr] 171 | |         println!("OR {} {}", x, y);
Dec 02 09:10:24.957 INFO [stderr] 172 | |         self.V[x as usize] |= self.V[y as usize];
Dec 02 09:10:24.957 INFO [stderr] 173 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `AND` should have a snake case name such as `and`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:175:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 175 | /     fn AND (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.958 INFO [stderr] 176 | |         println!("AND {} {}", x, y);
Dec 02 09:10:24.958 INFO [stderr] 177 | |         self.V[x as usize] &= self.V[y as usize];
Dec 02 09:10:24.958 INFO [stderr] 178 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `XOR` should have a snake case name such as `xor`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:180:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 180 | /     fn XOR (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.958 INFO [stderr] 181 | |         println!("XOR {} {}", x, y);
Dec 02 09:10:24.958 INFO [stderr] 182 | |         self.V[x as usize] ^= self.V[y as usize];
Dec 02 09:10:24.958 INFO [stderr] 183 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `ADD_xy` should have a snake case name such as `add_xy`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:185:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 185 | /     fn ADD_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.958 INFO [stderr] 186 | |         println!("ADD_xy {} {}", x, y);
Dec 02 09:10:24.958 INFO [stderr] 187 | |         self.V[x as usize] += self.V[y as usize];
Dec 02 09:10:24.958 INFO [stderr] 188 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `SUB` should have a snake case name such as `sub`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:190:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 190 | /     fn SUB (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.958 INFO [stderr] 191 | |         println!("SUB {} {}", x, y);
Dec 02 09:10:24.958 INFO [stderr] 192 | |         if self.V[x as usize] > self.V[y as usize] {
Dec 02 09:10:24.958 INFO [stderr] 193 | |             self.V[0xF] = 1;
Dec 02 09:10:24.958 INFO [stderr] ...   |
Dec 02 09:10:24.958 INFO [stderr] 197 | |         self.V[x as usize] -= self.V[y as usize];
Dec 02 09:10:24.958 INFO [stderr] 198 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `SHR` should have a snake case name such as `shr`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:200:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 200 | /     fn SHR (&mut self, x: u16) {
Dec 02 09:10:24.958 INFO [stderr] 201 | |         println!("SHR {}", x);
Dec 02 09:10:24.958 INFO [stderr] 202 | |         self.V[0xF] = self.V[x as usize] & 0x1;
Dec 02 09:10:24.958 INFO [stderr] 203 | |         self.V[x as usize] >>= 1;
Dec 02 09:10:24.958 INFO [stderr] 204 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `SUBN` should have a snake case name such as `subn`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:206:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 206 | /     fn SUBN (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.958 INFO [stderr] 207 | |         println!("SUB {} {}", x, y);
Dec 02 09:10:24.958 INFO [stderr] 208 | |         if self.V[y as usize] > self.V[x as usize] {
Dec 02 09:10:24.958 INFO [stderr] 209 | |             self.V[0xF] = 1;
Dec 02 09:10:24.958 INFO [stderr] ...   |
Dec 02 09:10:24.958 INFO [stderr] 213 | |         self.V[x as usize] -= self.V[y as usize];
Dec 02 09:10:24.958 INFO [stderr] 214 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `SHL` should have a snake case name such as `shl`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:216:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 216 | /     fn SHL (&mut self, x: u16) {
Dec 02 09:10:24.958 INFO [stderr] 217 | |         println!("SHL {}", x);
Dec 02 09:10:24.958 INFO [stderr] 218 | |         self.V[0xF] = self.V[x as usize] & 0x80;
Dec 02 09:10:24.958 INFO [stderr] 219 | |         self.V[x as usize] <<= 1;
Dec 02 09:10:24.958 INFO [stderr] 220 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `SNE_xy` should have a snake case name such as `sne_xy`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:222:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 222 | /     fn SNE_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:24.958 INFO [stderr] 223 | |         println!("SNE_xy {} {}", x, y);
Dec 02 09:10:24.958 INFO [stderr] 224 | |         if self.V[x as usize] == self.V[y as usize] {
Dec 02 09:10:24.958 INFO [stderr] 225 | |             self.program_counter += 2;
Dec 02 09:10:24.958 INFO [stderr] 226 | |         }
Dec 02 09:10:24.958 INFO [stderr] 227 | |     }
Dec 02 09:10:24.958 INFO [stderr]     | |_____^
Dec 02 09:10:24.958 INFO [stderr] 
Dec 02 09:10:24.958 INFO [stderr] warning: method `LD_I` should have a snake case name such as `ld_i`
Dec 02 09:10:24.958 INFO [stderr]    --> src/CPU.rs:229:5
Dec 02 09:10:24.958 INFO [stderr]     |
Dec 02 09:10:24.958 INFO [stderr] 229 | /     fn LD_I (&mut self, nnn: u16) {
Dec 02 09:10:24.959 INFO [stderr] 230 | |         println!("LD_I {}", nnn);
Dec 02 09:10:24.959 INFO [stderr] 231 | |         self.index_register = nnn;
Dec 02 09:10:24.959 INFO [stderr] 232 | |     }
Dec 02 09:10:24.959 INFO [stderr]     | |_____^
Dec 02 09:10:24.959 INFO [stderr] 
Dec 02 09:10:24.959 INFO [stderr] warning: method `JP_V0` should have a snake case name such as `jp_v0`
Dec 02 09:10:24.959 INFO [stderr]    --> src/CPU.rs:234:5
Dec 02 09:10:24.959 INFO [stderr]     |
Dec 02 09:10:24.959 INFO [stderr] 234 | /     fn JP_V0 (&mut self, nnn: u16) {
Dec 02 09:10:24.959 INFO [stderr] 235 | |         println!("JP_V0 {}", nnn);
Dec 02 09:10:24.959 INFO [stderr] 236 | |         self.program_counter = (self.V[0] + nnn as u8).into();
Dec 02 09:10:24.959 INFO [stderr] 237 | |     }
Dec 02 09:10:24.959 INFO [stderr]     | |_____^
Dec 02 09:10:24.959 INFO [stderr] 
Dec 02 09:10:24.959 INFO [stderr] warning: method `RND` should have a snake case name such as `rnd`
Dec 02 09:10:24.959 INFO [stderr]    --> src/CPU.rs:239:5
Dec 02 09:10:24.959 INFO [stderr]     |
Dec 02 09:10:24.959 INFO [stderr] 239 | /     fn RND (&mut self, x: u16, kk: u16) {
Dec 02 09:10:24.959 INFO [stderr] 240 | |         println!("RND {} {}", x, kk);
Dec 02 09:10:24.959 INFO [stderr] 241 | |         self.V[x as usize] = (thread_rng().gen_range(0, 255) as u16 & kk) as u8;
Dec 02 09:10:24.959 INFO [stderr] 242 | |     }
Dec 02 09:10:24.959 INFO [stderr]     | |_____^
Dec 02 09:10:24.959 INFO [stderr] 
Dec 02 09:10:24.959 INFO [stderr] warning: method `SKP` should have a snake case name such as `skp`
Dec 02 09:10:24.959 INFO [stderr]    --> src/CPU.rs:244:5
Dec 02 09:10:24.959 INFO [stderr]     |
Dec 02 09:10:24.959 INFO [stderr] 244 | /     fn SKP (&mut self, x: u16) {
Dec 02 09:10:24.959 INFO [stderr] 245 | |         println!("SKP {}", x);
Dec 02 09:10:24.959 INFO [stderr] 246 | |         if true {
Dec 02 09:10:24.959 INFO [stderr] 247 | |             // self.program_counter += 2;
Dec 02 09:10:24.959 INFO [stderr] 248 | |         }
Dec 02 09:10:24.959 INFO [stderr] 249 | |     }
Dec 02 09:10:24.959 INFO [stderr]     | |_____^
Dec 02 09:10:24.959 INFO [stderr] 
Dec 02 09:10:24.959 INFO [stderr] warning: method `SKNP` should have a snake case name such as `sknp`
Dec 02 09:10:24.959 INFO [stderr]    --> src/CPU.rs:251:5
Dec 02 09:10:24.959 INFO [stderr]     |
Dec 02 09:10:24.959 INFO [stderr] 251 | /     fn SKNP (&mut self, x: u16) {
Dec 02 09:10:24.959 INFO [stderr] 252 | |         println!("SKNP {}", x);
Dec 02 09:10:24.959 INFO [stderr] 253 | |         if true {
Dec 02 09:10:24.959 INFO [stderr] 254 | |             // self.program_counter += 2;
Dec 02 09:10:24.959 INFO [stderr] 255 | |         }
Dec 02 09:10:24.959 INFO [stderr] 256 | |     }
Dec 02 09:10:24.959 INFO [stderr]     | |_____^
Dec 02 09:10:24.959 INFO [stderr] 
Dec 02 09:10:27.663 INFO [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2m 14s
Dec 02 09:10:27.680 INFO [stderr] su: No module specific data is present
Dec 02 09:10:27.976 INFO running `"docker" "inspect" "16e6fc95febdd7b06b2a0828fdeca5d016ee5a7120123cf42e8478ce2a9e5b39"`
Dec 02 09:10:28.091 INFO running `"docker" "rm" "-f" "16e6fc95febdd7b06b2a0828fdeca5d016ee5a7120123cf42e8478ce2a9e5b39"`
Dec 02 09:10:28.199 INFO [stdout] 16e6fc95febdd7b06b2a0828fdeca5d016ee5a7120123cf42e8478ce2a9e5b39
Dec 02 09:10:28.204 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-4/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-4/beta-1.31-5/1.30.1:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1.30.1 test --frozen --no-run" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 02 09:10:28.403 INFO [stdout] f03979a0405a51af8742f749dab6b705653d97d16818b12be82b7c7c010a1f00
Dec 02 09:10:28.405 INFO running `"docker" "start" "-a" "f03979a0405a51af8742f749dab6b705653d97d16818b12be82b7c7c010a1f00"`
Dec 02 09:10:28.979 INFO [stderr] usermod: no changes
Dec 02 09:10:29.146 INFO [stderr]    Compiling chip8-rust v0.1.0 (/source)
Dec 02 09:10:33.403 INFO [stderr] warning: unused import: `piston::window::WindowSettings`
Dec 02 09:10:33.403 INFO [stderr]  --> src/main.rs:9:5
Dec 02 09:10:33.403 INFO [stderr]   |
Dec 02 09:10:33.403 INFO [stderr] 9 | use piston::window::WindowSettings;
Dec 02 09:10:33.403 INFO [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:33.403 INFO [stderr]   |
Dec 02 09:10:33.403 INFO [stderr]   = note: #[warn(unused_imports)] on by default
Dec 02 09:10:33.403 INFO [stderr] 
Dec 02 09:10:33.403 INFO [stderr] warning: unused import: `glutin_window::GlutinWindow as Window`
Dec 02 09:10:33.403 INFO [stderr]   --> src/main.rs:10:5
Dec 02 09:10:33.403 INFO [stderr]    |
Dec 02 09:10:33.403 INFO [stderr] 10 | use glutin_window::GlutinWindow as Window;
Dec 02 09:10:33.403 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:33.403 INFO [stderr] 
Dec 02 09:10:33.403 INFO [stderr] warning: unused import: `piston::event_loop::*`
Dec 02 09:10:33.403 INFO [stderr]   --> src/main.rs:11:5
Dec 02 09:10:33.403 INFO [stderr]    |
Dec 02 09:10:33.403 INFO [stderr] 11 | use piston::event_loop::*;
Dec 02 09:10:33.403 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:33.403 INFO [stderr] 
Dec 02 09:10:33.403 INFO [stderr] warning: unused import: `piston::input::*`
Dec 02 09:10:33.403 INFO [stderr]   --> src/main.rs:12:5
Dec 02 09:10:33.403 INFO [stderr]    |
Dec 02 09:10:33.403 INFO [stderr] 12 | use piston::input::*;
Dec 02 09:10:33.403 INFO [stderr]    |     ^^^^^^^^^^^^^^^^
Dec 02 09:10:33.403 INFO [stderr] 
Dec 02 09:10:33.403 INFO [stderr] warning: unused imports: `GlGraphics`, `OpenGL`
Dec 02 09:10:33.403 INFO [stderr]   --> src/main.rs:13:24
Dec 02 09:10:33.403 INFO [stderr]    |
Dec 02 09:10:33.403 INFO [stderr] 13 | use opengl_graphics::{ GlGraphics, OpenGL };
Dec 02 09:10:33.403 INFO [stderr]    |                        ^^^^^^^^^^  ^^^^^^
Dec 02 09:10:33.403 INFO [stderr] 
Dec 02 09:10:33.403 INFO [stderr] warning: unused import: `std::io::prelude::*`
Dec 02 09:10:33.403 INFO [stderr]  --> src/CPU.rs:4:5
Dec 02 09:10:33.403 INFO [stderr]   |
Dec 02 09:10:33.403 INFO [stderr] 4 | use std::io::prelude::*;
Dec 02 09:10:33.403 INFO [stderr]   |     ^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:33.403 INFO [stderr] 
Dec 02 09:10:33.475 INFO [stderr] warning: unreachable statement
Dec 02 09:10:33.475 INFO [stderr]   --> src/main.rs:29:5
Dec 02 09:10:33.475 INFO [stderr]    |
Dec 02 09:10:33.475 INFO [stderr] 29 |     println!("Hello, world!");
Dec 02 09:10:33.475 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:33.475 INFO [stderr]    |
Dec 02 09:10:33.475 INFO [stderr]    = note: #[warn(unreachable_code)] on by default
Dec 02 09:10:33.475 INFO [stderr]    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
Dec 02 09:10:33.475 INFO [stderr] 
Dec 02 09:10:33.544 INFO [stderr] warning: unused variable: `state`
Dec 02 09:10:33.544 INFO [stderr]   --> src/CPU.rs:83:13
Dec 02 09:10:33.544 INFO [stderr]    |
Dec 02 09:10:33.544 INFO [stderr] 83 |         let state = match nibble {
Dec 02 09:10:33.544 INFO [stderr]    |             ^^^^^ help: consider using `_state` instead
Dec 02 09:10:33.544 INFO [stderr]    |
Dec 02 09:10:33.544 INFO [stderr]    = note: #[warn(unused_variables)] on by default
Dec 02 09:10:33.544 INFO [stderr] 
Dec 02 09:10:33.545 INFO [stderr] warning: unused variable: `bytes_read`
Dec 02 09:10:33.545 INFO [stderr]    --> src/CPU.rs:265:13
Dec 02 09:10:33.545 INFO [stderr]     |
Dec 02 09:10:33.545 INFO [stderr] 265 |         let bytes_read = if let Ok(bytes_read) = reader.read(&mut buffer) {
Dec 02 09:10:33.545 INFO [stderr]     |             ^^^^^^^^^^ help: consider using `_bytes_read` instead
Dec 02 09:10:33.545 INFO [stderr] 
Dec 02 09:10:33.567 INFO [stderr] warning: field is never used: `gfx`
Dec 02 09:10:33.568 INFO [stderr]   --> src/CPU.rs:24:5
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr] 24 |     gfx: [[u8; 32]; 64],
Dec 02 09:10:33.568 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr]    = note: #[warn(dead_code)] on by default
Dec 02 09:10:33.568 INFO [stderr] 
Dec 02 09:10:33.568 INFO [stderr] warning: field is never used: `delay_timer`
Dec 02 09:10:33.568 INFO [stderr]   --> src/CPU.rs:27:5
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr] 27 |     delay_timer: u8,
Dec 02 09:10:33.568 INFO [stderr]    |     ^^^^^^^^^^^^^^^
Dec 02 09:10:33.568 INFO [stderr] 
Dec 02 09:10:33.568 INFO [stderr] warning: field is never used: `sound_timer`
Dec 02 09:10:33.568 INFO [stderr]   --> src/CPU.rs:28:5
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr] 28 |     sound_timer: u8,
Dec 02 09:10:33.568 INFO [stderr]    |     ^^^^^^^^^^^^^^^
Dec 02 09:10:33.568 INFO [stderr] 
Dec 02 09:10:33.568 INFO [stderr] warning: module `CPU` should have a snake case name such as `cpu`
Dec 02 09:10:33.568 INFO [stderr]   --> src/main.rs:15:1
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr] 15 | mod CPU;
Dec 02 09:10:33.568 INFO [stderr]    | ^^^^^^^^
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr]    = note: #[warn(non_snake_case)] on by default
Dec 02 09:10:33.568 INFO [stderr] 
Dec 02 09:10:33.568 INFO [stderr] warning: constant `fontset` should have an upper case name such as `FONTSET`
Dec 02 09:10:33.568 INFO [stderr]   --> src/CPU.rs:9:1
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr] 9  | / const fontset: [u8; 80] = [
Dec 02 09:10:33.568 INFO [stderr] 10 | |     0xF0, 0x90, 0x90, 0x90, 0xF0, 0x20, 0x60, 0x20, 0x20, 0x70,
Dec 02 09:10:33.568 INFO [stderr] 11 | |     0xF0, 0x10, 0xF0, 0x80, 0xF0, 0xF0, 0x10, 0xF0, 0x10, 0xF0,
Dec 02 09:10:33.568 INFO [stderr] 12 | |     0x90, 0x90, 0xF0, 0x10, 0x10, 0xF0, 0x80, 0xF0, 0x10, 0xF0,
Dec 02 09:10:33.568 INFO [stderr] ...  |
Dec 02 09:10:33.568 INFO [stderr] 17 | |     0xF0, 0x80, 0xF0, 0x80, 0xF0, 0xF0, 0x80, 0xF0, 0x80, 0x80
Dec 02 09:10:33.568 INFO [stderr] 18 | | ];
Dec 02 09:10:33.568 INFO [stderr]    | |__^
Dec 02 09:10:33.568 INFO [stderr]    |
Dec 02 09:10:33.568 INFO [stderr]    = note: #[warn(non_upper_case_globals)] on by default
Dec 02 09:10:33.568 INFO [stderr] 
Dec 02 09:10:33.568 INFO [stderr] warning: structure field `V` should have a snake case name such as `v`
Dec 02 09:10:33.569 INFO [stderr]   --> src/CPU.rs:26:5
Dec 02 09:10:33.569 INFO [stderr]    |
Dec 02 09:10:33.569 INFO [stderr] 26 |     V: [u8; 16], // General purpose registers
Dec 02 09:10:33.569 INFO [stderr]    |     ^^^^^^^^^^^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `JP` should have a snake case name such as `jp`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:116:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 116 | /     fn JP (&mut self, nnn: u16) {
Dec 02 09:10:33.569 INFO [stderr] 117 | |         println!("JP {}", nnn);
Dec 02 09:10:33.569 INFO [stderr] 118 | |         self.program_counter = nnn;
Dec 02 09:10:33.569 INFO [stderr] 119 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `CALL` should have a snake case name such as `call`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:121:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 121 | /     fn CALL (&mut self, nnn: u16) {
Dec 02 09:10:33.569 INFO [stderr] 122 | |         println!("CALL {}", nnn);
Dec 02 09:10:33.569 INFO [stderr] 123 | |         self.stack[self.sp as usize] = self.program_counter;
Dec 02 09:10:33.569 INFO [stderr] 124 | |         self.sp + 1;
Dec 02 09:10:33.569 INFO [stderr] 125 | |         self.program_counter = nnn;
Dec 02 09:10:33.569 INFO [stderr] 126 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: unused arithmetic operation which must be used
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:124:9
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 124 |         self.sp + 1;
Dec 02 09:10:33.569 INFO [stderr]     |         ^^^^^^^^^^^
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr]     = note: #[warn(unused_must_use)] on by default
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `RET` should have a snake case name such as `ret`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:128:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 128 | /     fn RET (&mut self) {
Dec 02 09:10:33.569 INFO [stderr] 129 | |         println!("RET");
Dec 02 09:10:33.569 INFO [stderr] 130 | |         self.program_counter = self.stack[self.sp as usize];
Dec 02 09:10:33.569 INFO [stderr] 131 | |         self.sp -= 1;
Dec 02 09:10:33.569 INFO [stderr] 132 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `SE` should have a snake case name such as `se`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:134:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 134 | /     fn SE (&mut self, x: u16, kk: u16) {
Dec 02 09:10:33.569 INFO [stderr] 135 | |         println!("SE {} {}", x, kk);
Dec 02 09:10:33.569 INFO [stderr] 136 | |         if self.V[x as usize] as u16 == kk {
Dec 02 09:10:33.569 INFO [stderr] 137 | |             self.program_counter += 2;
Dec 02 09:10:33.569 INFO [stderr] 138 | |         }
Dec 02 09:10:33.569 INFO [stderr] 139 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `SNE` should have a snake case name such as `sne`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:141:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 141 | /     fn SNE (&mut self, x: u16, kk: u16) {
Dec 02 09:10:33.569 INFO [stderr] 142 | |         println!("SNE {} {}", x, kk);
Dec 02 09:10:33.569 INFO [stderr] 143 | |         if self.V[x as usize] as u16 != kk {
Dec 02 09:10:33.569 INFO [stderr] 144 | |             self.program_counter += 2;
Dec 02 09:10:33.569 INFO [stderr] 145 | |         }
Dec 02 09:10:33.569 INFO [stderr] 146 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `SE_xy` should have a snake case name such as `se_xy`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:148:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 148 | /     fn SE_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.569 INFO [stderr] 149 | |         println!("SE_xy {} {}", x, y);
Dec 02 09:10:33.569 INFO [stderr] 150 | |         if self.V[x as usize] != self.V[y as usize] {
Dec 02 09:10:33.569 INFO [stderr] 151 | |             self.program_counter += 2;
Dec 02 09:10:33.569 INFO [stderr] 152 | |         }
Dec 02 09:10:33.569 INFO [stderr] 153 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `LD` should have a snake case name such as `ld`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:155:5
Dec 02 09:10:33.569 INFO [stderr]     |
Dec 02 09:10:33.569 INFO [stderr] 155 | /     fn LD (&mut self, x: u16, kk: u16) {
Dec 02 09:10:33.569 INFO [stderr] 156 | |         println!("LD {} {}", x, kk);
Dec 02 09:10:33.569 INFO [stderr] 157 | |         self.V[x as usize] = kk as u8;
Dec 02 09:10:33.569 INFO [stderr] 158 | |     }
Dec 02 09:10:33.569 INFO [stderr]     | |_____^
Dec 02 09:10:33.569 INFO [stderr] 
Dec 02 09:10:33.569 INFO [stderr] warning: method `ADD` should have a snake case name such as `add`
Dec 02 09:10:33.569 INFO [stderr]    --> src/CPU.rs:160:5
Dec 02 09:10:33.570 INFO [stderr]     |
Dec 02 09:10:33.570 INFO [stderr] 160 | /     fn ADD (&mut self, x: u16, kk: u16) {
Dec 02 09:10:33.570 INFO [stderr] 161 | |         println!("ADD {} {}", x, kk);
Dec 02 09:10:33.570 INFO [stderr] 162 | |         self.V[x as usize] += kk as u8;
Dec 02 09:10:33.570 INFO [stderr] 163 | |     }
Dec 02 09:10:33.570 INFO [stderr]     | |_____^
Dec 02 09:10:33.570 INFO [stderr] 
Dec 02 09:10:33.570 INFO [stderr] warning: method `LD_xy` should have a snake case name such as `ld_xy`
Dec 02 09:10:33.570 INFO [stderr]    --> src/CPU.rs:165:5
Dec 02 09:10:33.570 INFO [stderr]     |
Dec 02 09:10:33.570 INFO [stderr] 165 | /     fn LD_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.570 INFO [stderr] 166 | |         println!("LD_xy {} {}", x, y);
Dec 02 09:10:33.570 INFO [stderr] 167 | |         self.V[x as usize] = self.V[y as usize];
Dec 02 09:10:33.570 INFO [stderr] 168 | |     }
Dec 02 09:10:33.570 INFO [stderr]     | |_____^
Dec 02 09:10:33.570 INFO [stderr] 
Dec 02 09:10:33.570 INFO [stderr] warning: method `OR` should have a snake case name such as `or`
Dec 02 09:10:33.570 INFO [stderr]    --> src/CPU.rs:170:5
Dec 02 09:10:33.570 INFO [stderr]     |
Dec 02 09:10:33.570 INFO [stderr] 170 | /     fn OR (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.570 INFO [stderr] 171 | |         println!("OR {} {}", x, y);
Dec 02 09:10:33.570 INFO [stderr] 172 | |         self.V[x as usize] |= self.V[y as usize];
Dec 02 09:10:33.570 INFO [stderr] 173 | |     }
Dec 02 09:10:33.570 INFO [stderr]     | |_____^
Dec 02 09:10:33.570 INFO [stderr] 
Dec 02 09:10:33.574 INFO [stderr] warning: method `AND` should have a snake case name such as `and`
Dec 02 09:10:33.574 INFO [stderr]    --> src/CPU.rs:175:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 175 | /     fn AND (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.575 INFO [stderr] 176 | |         println!("AND {} {}", x, y);
Dec 02 09:10:33.575 INFO [stderr] 177 | |         self.V[x as usize] &= self.V[y as usize];
Dec 02 09:10:33.575 INFO [stderr] 178 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `XOR` should have a snake case name such as `xor`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:180:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 180 | /     fn XOR (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.575 INFO [stderr] 181 | |         println!("XOR {} {}", x, y);
Dec 02 09:10:33.575 INFO [stderr] 182 | |         self.V[x as usize] ^= self.V[y as usize];
Dec 02 09:10:33.575 INFO [stderr] 183 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `ADD_xy` should have a snake case name such as `add_xy`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:185:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 185 | /     fn ADD_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.575 INFO [stderr] 186 | |         println!("ADD_xy {} {}", x, y);
Dec 02 09:10:33.575 INFO [stderr] 187 | |         self.V[x as usize] += self.V[y as usize];
Dec 02 09:10:33.575 INFO [stderr] 188 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `SUB` should have a snake case name such as `sub`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:190:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 190 | /     fn SUB (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.575 INFO [stderr] 191 | |         println!("SUB {} {}", x, y);
Dec 02 09:10:33.575 INFO [stderr] 192 | |         if self.V[x as usize] > self.V[y as usize] {
Dec 02 09:10:33.575 INFO [stderr] 193 | |             self.V[0xF] = 1;
Dec 02 09:10:33.575 INFO [stderr] ...   |
Dec 02 09:10:33.575 INFO [stderr] 197 | |         self.V[x as usize] -= self.V[y as usize];
Dec 02 09:10:33.575 INFO [stderr] 198 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `SHR` should have a snake case name such as `shr`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:200:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 200 | /     fn SHR (&mut self, x: u16) {
Dec 02 09:10:33.575 INFO [stderr] 201 | |         println!("SHR {}", x);
Dec 02 09:10:33.575 INFO [stderr] 202 | |         self.V[0xF] = self.V[x as usize] & 0x1;
Dec 02 09:10:33.575 INFO [stderr] 203 | |         self.V[x as usize] >>= 1;
Dec 02 09:10:33.575 INFO [stderr] 204 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `SUBN` should have a snake case name such as `subn`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:206:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 206 | /     fn SUBN (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.575 INFO [stderr] 207 | |         println!("SUB {} {}", x, y);
Dec 02 09:10:33.575 INFO [stderr] 208 | |         if self.V[y as usize] > self.V[x as usize] {
Dec 02 09:10:33.575 INFO [stderr] 209 | |             self.V[0xF] = 1;
Dec 02 09:10:33.575 INFO [stderr] ...   |
Dec 02 09:10:33.575 INFO [stderr] 213 | |         self.V[x as usize] -= self.V[y as usize];
Dec 02 09:10:33.575 INFO [stderr] 214 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `SHL` should have a snake case name such as `shl`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:216:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 216 | /     fn SHL (&mut self, x: u16) {
Dec 02 09:10:33.575 INFO [stderr] 217 | |         println!("SHL {}", x);
Dec 02 09:10:33.575 INFO [stderr] 218 | |         self.V[0xF] = self.V[x as usize] & 0x80;
Dec 02 09:10:33.575 INFO [stderr] 219 | |         self.V[x as usize] <<= 1;
Dec 02 09:10:33.575 INFO [stderr] 220 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `SNE_xy` should have a snake case name such as `sne_xy`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:222:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 222 | /     fn SNE_xy (&mut self, x: u16, y: u16) {
Dec 02 09:10:33.575 INFO [stderr] 223 | |         println!("SNE_xy {} {}", x, y);
Dec 02 09:10:33.575 INFO [stderr] 224 | |         if self.V[x as usize] == self.V[y as usize] {
Dec 02 09:10:33.575 INFO [stderr] 225 | |             self.program_counter += 2;
Dec 02 09:10:33.575 INFO [stderr] 226 | |         }
Dec 02 09:10:33.575 INFO [stderr] 227 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.575 INFO [stderr] 
Dec 02 09:10:33.575 INFO [stderr] warning: method `LD_I` should have a snake case name such as `ld_i`
Dec 02 09:10:33.575 INFO [stderr]    --> src/CPU.rs:229:5
Dec 02 09:10:33.575 INFO [stderr]     |
Dec 02 09:10:33.575 INFO [stderr] 229 | /     fn LD_I (&mut self, nnn: u16) {
Dec 02 09:10:33.575 INFO [stderr] 230 | |         println!("LD_I {}", nnn);
Dec 02 09:10:33.575 INFO [stderr] 231 | |         self.index_register = nnn;
Dec 02 09:10:33.575 INFO [stderr] 232 | |     }
Dec 02 09:10:33.575 INFO [stderr]     | |_____^
Dec 02 09:10:33.576 INFO [stderr] 
Dec 02 09:10:33.576 INFO [stderr] warning: method `JP_V0` should have a snake case name such as `jp_v0`
Dec 02 09:10:33.576 INFO [stderr]    --> src/CPU.rs:234:5
Dec 02 09:10:33.576 INFO [stderr]     |
Dec 02 09:10:33.576 INFO [stderr] 234 | /     fn JP_V0 (&mut self, nnn: u16) {
Dec 02 09:10:33.576 INFO [stderr] 235 | |         println!("JP_V0 {}", nnn);
Dec 02 09:10:33.576 INFO [stderr] 236 | |         self.program_counter = (self.V[0] + nnn as u8).into();
Dec 02 09:10:33.576 INFO [stderr] 237 | |     }
Dec 02 09:10:33.576 INFO [stderr]     | |_____^
Dec 02 09:10:33.576 INFO [stderr] 
Dec 02 09:10:33.576 INFO [stderr] warning: method `RND` should have a snake case name such as `rnd`
Dec 02 09:10:33.576 INFO [stderr]    --> src/CPU.rs:239:5
Dec 02 09:10:33.576 INFO [stderr]     |
Dec 02 09:10:33.576 INFO [stderr] 239 | /     fn RND (&mut self, x: u16, kk: u16) {
Dec 02 09:10:33.576 INFO [stderr] 240 | |         println!("RND {} {}", x, kk);
Dec 02 09:10:33.576 INFO [stderr] 241 | |         self.V[x as usize] = (thread_rng().gen_range(0, 255) as u16 & kk) as u8;
Dec 02 09:10:33.576 INFO [stderr] 242 | |     }
Dec 02 09:10:33.576 INFO [stderr]     | |_____^
Dec 02 09:10:33.576 INFO [stderr] 
Dec 02 09:10:33.576 INFO [stderr] warning: method `SKP` should have a snake case name such as `skp`
Dec 02 09:10:33.576 INFO [stderr]    --> src/CPU.rs:244:5
Dec 02 09:10:33.576 INFO [stderr]     |
Dec 02 09:10:33.576 INFO [stderr] 244 | /     fn SKP (&mut self, x: u16) {
Dec 02 09:10:33.576 INFO [stderr] 245 | |         println!("SKP {}", x);
Dec 02 09:10:33.576 INFO [stderr] 246 | |         if true {
Dec 02 09:10:33.576 INFO [stderr] 247 | |             // self.program_counter += 2;
Dec 02 09:10:33.576 INFO [stderr] 248 | |         }
Dec 02 09:10:33.576 INFO [stderr] 249 | |     }
Dec 02 09:10:33.576 INFO [stderr]     | |_____^
Dec 02 09:10:33.576 INFO [stderr] 
Dec 02 09:10:33.576 INFO [stderr] warning: method `SKNP` should have a snake case name such as `sknp`
Dec 02 09:10:33.576 INFO [stderr]    --> src/CPU.rs:251:5
Dec 02 09:10:33.576 INFO [stderr]     |
Dec 02 09:10:33.576 INFO [stderr] 251 | /     fn SKNP (&mut self, x: u16) {
Dec 02 09:10:33.576 INFO [stderr] 252 | |         println!("SKNP {}", x);
Dec 02 09:10:33.576 INFO [stderr] 253 | |         if true {
Dec 02 09:10:33.576 INFO [stderr] 254 | |             // self.program_counter += 2;
Dec 02 09:10:33.576 INFO [stderr] 255 | |         }
Dec 02 09:10:33.576 INFO [stderr] 256 | |     }
Dec 02 09:10:33.576 INFO [stderr]     | |_____^
Dec 02 09:10:33.576 INFO [stderr] 
Dec 02 09:10:34.055 INFO [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 5.05s
Dec 02 09:10:34.067 INFO [stderr] su: No module specific data is present
Dec 02 09:10:34.521 INFO running `"docker" "inspect" "f03979a0405a51af8742f749dab6b705653d97d16818b12be82b7c7c010a1f00"`
Dec 02 09:10:34.725 INFO running `"docker" "rm" "-f" "f03979a0405a51af8742f749dab6b705653d97d16818b12be82b7c7c010a1f00"`
Dec 02 09:10:35.027 INFO [stdout] f03979a0405a51af8742f749dab6b705653d97d16818b12be82b7c7c010a1f00
Dec 02 09:10:35.029 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-4/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-4/beta-1.31-5/1.30.1:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1.30.1 test --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"`
Dec 02 09:10:35.399 INFO [stdout] 9f07c7743b8ff1a9f1cffeacc3e19fcd9f031276eb6a7b89b00cd916f7de4f3c
Dec 02 09:10:35.401 INFO running `"docker" "start" "-a" "9f07c7743b8ff1a9f1cffeacc3e19fcd9f031276eb6a7b89b00cd916f7de4f3c"`
Dec 02 09:10:36.399 INFO [stderr] usermod: no changes
Dec 02 09:10:36.635 INFO [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.22s
Dec 02 09:10:36.667 INFO [stderr]      Running /target/debug/deps/chip8_rust-ebd77fd8e7f0e897
Dec 02 09:10:36.671 INFO [stdout] 
Dec 02 09:10:36.671 INFO [stdout] running 0 tests
Dec 02 09:10:36.671 INFO [stdout] 
Dec 02 09:10:36.671 INFO [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Dec 02 09:10:36.671 INFO [stdout] 
Dec 02 09:10:36.690 INFO [stderr] su: No module specific data is present
Dec 02 09:10:37.454 INFO running `"docker" "inspect" "9f07c7743b8ff1a9f1cffeacc3e19fcd9f031276eb6a7b89b00cd916f7de4f3c"`
Dec 02 09:10:37.673 INFO running `"docker" "rm" "-f" "9f07c7743b8ff1a9f1cffeacc3e19fcd9f031276eb6a7b89b00cd916f7de4f3c"`
Dec 02 09:10:37.927 INFO [stdout] 9f07c7743b8ff1a9f1cffeacc3e19fcd9f031276eb6a7b89b00cd916f7de4f3c
