Dec 01 21:36:42.040 INFO testing christopherjmedlin/yalc8emu against 1.30.1 for beta-1.31-5
Dec 01 21:36:42.040 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.31-5/worker-1/1.30.1:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-1/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 01 21:36:42.587 INFO [stdout] c96f7992d1583daa2b676649fbc9eddfd661974a8be873251cbd69dd374dbed0
Dec 01 21:36:42.592 INFO running `"docker" "start" "-a" "c96f7992d1583daa2b676649fbc9eddfd661974a8be873251cbd69dd374dbed0"`
Dec 01 21:36:43.575 INFO [stderr] usermod: no changes
Dec 01 21:36:43.707 INFO [stderr]    Compiling sdl2-sys v0.31.0
Dec 01 21:36:47.627 INFO [stderr]    Compiling sdl2 v0.31.0
Dec 01 21:36:52.070 INFO [stderr]    Compiling chip8 v0.1.0 (/source)
Dec 01 21:36:52.856 INFO [stderr] warning: unused import: `Duration`
Dec 01 21:36:52.856 INFO [stderr]  --> src/cpu/timers.rs:1:26
Dec 01 21:36:52.856 INFO [stderr]   |
Dec 01 21:36:52.856 INFO [stderr] 1 | use std::time::{Instant, Duration};
Dec 01 21:36:52.856 INFO [stderr]   |                          ^^^^^^^^
Dec 01 21:36:52.856 INFO [stderr]   |
Dec 01 21:36:52.856 INFO [stderr]   = note: #[warn(unused_imports)] on by default
Dec 01 21:36:52.856 INFO [stderr] 
Dec 01 21:36:52.856 INFO [stderr] warning: unused import: `std::num::Wrapping`
Dec 01 21:36:52.856 INFO [stderr]  --> src/cpu/mod.rs:6:5
Dec 01 21:36:52.856 INFO [stderr]   |
Dec 01 21:36:52.856 INFO [stderr] 6 | use std::num::Wrapping;
Dec 01 21:36:52.857 INFO [stderr]   |     ^^^^^^^^^^^^^^^^^^
Dec 01 21:36:52.857 INFO [stderr] 
Dec 01 21:36:52.860 INFO [stderr] warning: unnecessary parentheses around `if` condition
Dec 01 21:36:52.860 INFO [stderr]    --> src/cpu/mod.rs:378:22
Dec 01 21:36:52.860 INFO [stderr]     |
Dec 01 21:36:52.860 INFO [stderr] 378 |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:52.860 INFO [stderr]     |                      ^^^^^^^^^ help: remove these parentheses
Dec 01 21:36:52.860 INFO [stderr]     |
Dec 01 21:36:52.860 INFO [stderr]     = note: #[warn(unused_parens)] on by default
Dec 01 21:36:52.860 INFO [stderr] 
Dec 01 21:36:52.860 INFO [stderr] warning: unnecessary parentheses around `if` condition
Dec 01 21:36:52.860 INFO [stderr]    --> src/cpu/mod.rs:389:22
Dec 01 21:36:52.860 INFO [stderr]     |
Dec 01 21:36:52.860 INFO [stderr] 389 |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:52.860 INFO [stderr]     |                      ^^^^^^^^^ help: remove these parentheses
Dec 01 21:36:52.860 INFO [stderr] 
Dec 01 21:36:53.035 INFO [stderr] warning: unused variable: `why`
Dec 01 21:36:53.035 INFO [stderr]  --> src/rom.rs:9:13
Dec 01 21:36:53.035 INFO [stderr]   |
Dec 01 21:36:53.035 INFO [stderr] 9 |         Err(why) => panic!("Couldn't open ROM"),
Dec 01 21:36:53.035 INFO [stderr]   |             ^^^ help: consider using `_why` instead
Dec 01 21:36:53.035 INFO [stderr]   |
Dec 01 21:36:53.035 INFO [stderr]   = note: #[warn(unused_variables)] on by default
Dec 01 21:36:53.035 INFO [stderr] 
Dec 01 21:36:53.035 INFO [stderr] warning: unused variable: `b`
Dec 01 21:36:53.035 INFO [stderr]   --> src/cpu/mod.rs:50:18
Dec 01 21:36:53.035 INFO [stderr]    |
Dec 01 21:36:53.035 INFO [stderr] 50 |         for (i, &b) in rom.iter().enumerate() {
Dec 01 21:36:53.035 INFO [stderr]    |                  ^ help: consider using `_b` instead
Dec 01 21:36:53.035 INFO [stderr] 
Dec 01 21:36:53.035 INFO [stderr] warning: unused variable: `result`
Dec 01 21:36:53.035 INFO [stderr]   --> src/display.rs:57:25
Dec 01 21:36:53.035 INFO [stderr]    |
Dec 01 21:36:53.035 INFO [stderr] 57 |                     let result = canvas.fill_rect(Rect::new(x_coord, y_coord, 10, 10));
Dec 01 21:36:53.036 INFO [stderr]    |                         ^^^^^^ help: consider using `_result` instead
Dec 01 21:36:53.036 INFO [stderr] 
Dec 01 21:36:53.036 INFO [stderr] warning: unused variable: `event_keycode`
Dec 01 21:36:53.036 INFO [stderr]   --> src/keypad.rs:24:13
Dec 01 21:36:53.036 INFO [stderr]    |
Dec 01 21:36:53.036 INFO [stderr] 24 |         let event_keycode: Keycode;
Dec 01 21:36:53.036 INFO [stderr]    |             ^^^^^^^^^^^^^ help: consider using `_event_keycode` instead
Dec 01 21:36:53.036 INFO [stderr] 
Dec 01 21:36:53.059 INFO [stderr] warning: variable does not need to be mutable
Dec 01 21:36:53.059 INFO [stderr]   --> src/cpu/timers.rs:16:13
Dec 01 21:36:53.059 INFO [stderr]    |
Dec 01 21:36:53.059 INFO [stderr] 16 |         let mut timers = TimerSubsystem {
Dec 01 21:36:53.059 INFO [stderr]    |             ----^^^^^^
Dec 01 21:36:53.059 INFO [stderr]    |             |
Dec 01 21:36:53.059 INFO [stderr]    |             help: remove this `mut`
Dec 01 21:36:53.059 INFO [stderr]    |
Dec 01 21:36:53.059 INFO [stderr]    = note: #[warn(unused_mut)] on by default
Dec 01 21:36:53.059 INFO [stderr] 
Dec 01 21:36:53.076 INFO [stderr] warning: method is never used: `get_pixel`
Dec 01 21:36:53.076 INFO [stderr]   --> src/display.rs:68:5
Dec 01 21:36:53.076 INFO [stderr]    |
Dec 01 21:36:53.076 INFO [stderr] 68 |     pub fn get_pixel(self, x: usize, y: usize) -> (bool) {
Dec 01 21:36:53.076 INFO [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 01 21:36:53.076 INFO [stderr]    |
Dec 01 21:36:53.076 INFO [stderr]    = note: #[warn(dead_code)] on by default
Dec 01 21:36:53.079 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_00E0` should have a snake case name such as `op_00_e0`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:127:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 127 | /     fn op_00E0(&mut self) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 128 | |         self.display.clear();
Dec 01 21:36:53.080 INFO [stderr] 129 | |         2
Dec 01 21:36:53.080 INFO [stderr] 130 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr]     = note: #[warn(non_snake_case)] on by default
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_00EE` should have a snake case name such as `op_00_ee`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:133:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 133 | /     fn op_00EE(&mut self) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 134 | |         self.pc = self.stack[self.sp];
Dec 01 21:36:53.080 INFO [stderr] 135 | |         self.sp -= 1;
Dec 01 21:36:53.080 INFO [stderr] 136 | |         0
Dec 01 21:36:53.080 INFO [stderr] 137 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_8xyE` should have a snake case name such as `op_8xy_e`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:264:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 264 | /     fn op_8xyE(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 265 | |         self.v[0xF] = if self.v[x] & 1 == 1 {1} else {0};
Dec 01 21:36:53.080 INFO [stderr] 266 | |         self.v[x] <<= 1;
Dec 01 21:36:53.080 INFO [stderr] 267 | |         2
Dec 01 21:36:53.080 INFO [stderr] 268 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Annn` should have a snake case name such as `op_annn`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:279:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 279 | /     fn op_Annn(&mut self, nnn: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 280 | |         self.i = nnn;
Dec 01 21:36:53.080 INFO [stderr] 281 | |         2
Dec 01 21:36:53.080 INFO [stderr] 282 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Bnnn` should have a snake case name such as `op_bnnn`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:285:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 285 | /     fn op_Bnnn(&mut self, nnn: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 286 | |         self.pc = nnn + (self.v[0] as usize);
Dec 01 21:36:53.080 INFO [stderr] 287 | |         0
Dec 01 21:36:53.080 INFO [stderr] 288 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Cxkk` should have a snake case name such as `op_cxkk`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:291:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 291 | /     fn op_Cxkk(&mut self, x: usize, kk: u8) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 292 | |         let rn: u8 = rand::random();
Dec 01 21:36:53.080 INFO [stderr] 293 | |         self.v[x] = rn & kk;
Dec 01 21:36:53.080 INFO [stderr] 294 | |         2
Dec 01 21:36:53.080 INFO [stderr] 295 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Dxyn` should have a snake case name such as `op_dxyn`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:298:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 298 | /     fn op_Dxyn(&mut self, x: usize, y: usize, n: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 299 | |         let mut sprite = [0; 15];
Dec 01 21:36:53.080 INFO [stderr] 300 | |         
Dec 01 21:36:53.080 INFO [stderr] 301 | |         for j in 0..n {
Dec 01 21:36:53.080 INFO [stderr] ...   |
Dec 01 21:36:53.080 INFO [stderr] 308 | |         2
Dec 01 21:36:53.080 INFO [stderr] 309 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Ex9E` should have a snake case name such as `op_ex9_e`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:312:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 312 | /     fn op_Ex9E (&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 313 | |         if self.keypad.get_key(self.v[x] as usize) { return 4 }
Dec 01 21:36:53.080 INFO [stderr] 314 | |         2
Dec 01 21:36:53.080 INFO [stderr] 315 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_ExA1` should have a snake case name such as `op_ex_a1`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:318:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 318 | /     fn op_ExA1(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 319 | |         if self.keypad.get_key(self.v[x] as usize) { return 2 }
Dec 01 21:36:53.080 INFO [stderr] 320 | |         4
Dec 01 21:36:53.080 INFO [stderr] 321 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Fx07` should have a snake case name such as `op_fx07`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:324:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 324 | /     fn op_Fx07(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 325 | |         self.v[x] = self.timer_subsystem.delay;
Dec 01 21:36:53.080 INFO [stderr] 326 | |         2
Dec 01 21:36:53.080 INFO [stderr] 327 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Fx0A` should have a snake case name such as `op_fx0_a`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:330:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 330 | /     fn op_Fx0A(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 331 | |         let keypress = self.keypad.wait_for_keypress();
Dec 01 21:36:53.080 INFO [stderr] 332 | |         if keypress == 0x10 {
Dec 01 21:36:53.080 INFO [stderr] 333 | |             // keep pc where it is and keep executing this same instruction
Dec 01 21:36:53.080 INFO [stderr] ...   |
Dec 01 21:36:53.080 INFO [stderr] 340 | |         2
Dec 01 21:36:53.080 INFO [stderr] 341 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Fx15` should have a snake case name such as `op_fx15`
Dec 01 21:36:53.080 INFO [stderr]    --> src/cpu/mod.rs:344:5
Dec 01 21:36:53.080 INFO [stderr]     |
Dec 01 21:36:53.080 INFO [stderr] 344 | /     fn op_Fx15(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.080 INFO [stderr] 345 | |         self.timer_subsystem.delay = self.v[x];
Dec 01 21:36:53.080 INFO [stderr] 346 | |         2
Dec 01 21:36:53.080 INFO [stderr] 347 | |     }
Dec 01 21:36:53.080 INFO [stderr]     | |_____^
Dec 01 21:36:53.080 INFO [stderr] 
Dec 01 21:36:53.080 INFO [stderr] warning: method `op_Fx18` should have a snake case name such as `op_fx18`
Dec 01 21:36:53.081 INFO [stderr]    --> src/cpu/mod.rs:350:5
Dec 01 21:36:53.081 INFO [stderr]     |
Dec 01 21:36:53.081 INFO [stderr] 350 | /     fn op_Fx18(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.081 INFO [stderr] 351 | |         self.timer_subsystem.sound = self.v[x];
Dec 01 21:36:53.081 INFO [stderr] 352 | |         2
Dec 01 21:36:53.081 INFO [stderr] 353 | |     }
Dec 01 21:36:53.081 INFO [stderr]     | |_____^
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.081 INFO [stderr] warning: method `op_Fx1E` should have a snake case name such as `op_fx1_e`
Dec 01 21:36:53.081 INFO [stderr]    --> src/cpu/mod.rs:356:5
Dec 01 21:36:53.081 INFO [stderr]     |
Dec 01 21:36:53.081 INFO [stderr] 356 | /     fn op_Fx1E(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.081 INFO [stderr] 357 | |         self.i = self.v[x] as usize + self.i;
Dec 01 21:36:53.081 INFO [stderr] 358 | |         2
Dec 01 21:36:53.081 INFO [stderr] 359 | |     }
Dec 01 21:36:53.081 INFO [stderr]     | |_____^
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.081 INFO [stderr] warning: method `op_Fx29` should have a snake case name such as `op_fx29`
Dec 01 21:36:53.081 INFO [stderr]    --> src/cpu/mod.rs:362:5
Dec 01 21:36:53.081 INFO [stderr]     |
Dec 01 21:36:53.081 INFO [stderr] 362 | /     fn op_Fx29(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.081 INFO [stderr] 363 | |         self.i = (self.v[x] * 5) as usize;
Dec 01 21:36:53.081 INFO [stderr] 364 | |         2
Dec 01 21:36:53.081 INFO [stderr] 365 | |     }
Dec 01 21:36:53.081 INFO [stderr]     | |_____^
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.081 INFO [stderr] warning: method `op_Fx33` should have a snake case name such as `op_fx33`
Dec 01 21:36:53.081 INFO [stderr]    --> src/cpu/mod.rs:368:5
Dec 01 21:36:53.081 INFO [stderr]     |
Dec 01 21:36:53.081 INFO [stderr] 368 | /     fn op_Fx33(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.081 INFO [stderr] 369 | |         self.ram[self.i] = self.v[x] / 100;
Dec 01 21:36:53.081 INFO [stderr] 370 | |         self.ram[self.i + 1] = (self.v[x] % 100) / 10;
Dec 01 21:36:53.081 INFO [stderr] 371 | |         self.ram[self.i + 2] = self.v[x] % 10;
Dec 01 21:36:53.081 INFO [stderr] 372 | |         2
Dec 01 21:36:53.081 INFO [stderr] 373 | |     }
Dec 01 21:36:53.081 INFO [stderr]     | |_____^
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.081 INFO [stderr] warning: method `op_Fx55` should have a snake case name such as `op_fx55`
Dec 01 21:36:53.081 INFO [stderr]    --> src/cpu/mod.rs:376:5
Dec 01 21:36:53.081 INFO [stderr]     |
Dec 01 21:36:53.081 INFO [stderr] 376 | /     fn op_Fx55(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.081 INFO [stderr] 377 | |         // prevent out of bounds
Dec 01 21:36:53.081 INFO [stderr] 378 | |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:53.081 INFO [stderr] 379 | |
Dec 01 21:36:53.081 INFO [stderr] ...   |
Dec 01 21:36:53.081 INFO [stderr] 383 | |         2
Dec 01 21:36:53.081 INFO [stderr] 384 | |     }
Dec 01 21:36:53.081 INFO [stderr]     | |_____^
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.081 INFO [stderr] warning: method `op_Fx65` should have a snake case name such as `op_fx65`
Dec 01 21:36:53.081 INFO [stderr]    --> src/cpu/mod.rs:387:5
Dec 01 21:36:53.081 INFO [stderr]     |
Dec 01 21:36:53.081 INFO [stderr] 387 | /     fn op_Fx65(&mut self, x: usize) -> (usize) {
Dec 01 21:36:53.081 INFO [stderr] 388 | |         // prevent out of bounds
Dec 01 21:36:53.081 INFO [stderr] 389 | |         let end = if (x > 0xf) {0xf} else {x};
Dec 01 21:36:53.081 INFO [stderr] 390 | |
Dec 01 21:36:53.081 INFO [stderr] ...   |
Dec 01 21:36:53.081 INFO [stderr] 394 | |         2
Dec 01 21:36:53.081 INFO [stderr] 395 | |     }
Dec 01 21:36:53.081 INFO [stderr]     | |_____^
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.081 INFO [stderr] warning: unused `std::result::Result` which must be used
Dec 01 21:36:53.081 INFO [stderr]   --> src/rom.rs:13:5
Dec 01 21:36:53.081 INFO [stderr]    |
Dec 01 21:36:53.081 INFO [stderr] 13 |     file.read(buf);
Dec 01 21:36:53.081 INFO [stderr]    |     ^^^^^^^^^^^^^^^
Dec 01 21:36:53.081 INFO [stderr]    |
Dec 01 21:36:53.081 INFO [stderr]    = note: #[warn(unused_must_use)] on by default
Dec 01 21:36:53.081 INFO [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
Dec 01 21:36:53.081 INFO [stderr] 
Dec 01 21:36:53.447 INFO [stderr] error: linking with `cc` failed: exit code: 1
Dec 01 21:36:53.447 INFO [stderr]   |
Dec 01 21:36:53.447 INFO [stderr]   = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.0.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.1.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.10.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.11.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.12.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.13.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.14.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.15.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.2.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.3.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.4.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.5.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.6.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.7.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.8.rcgu.o" "/target/debug/deps/chip8-8baa5d16bc8b4a04.chip8.5maqpzxm-cgu.9.rcgu.o" "-o" "/target/debug/deps/chip8-8baa5d16bc8b4a04" "/target/debug/deps/chip8-8baa5d16bc8b4a04.3d4z5c0zkvtzmoh8.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/target/debug/deps" "-L" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/target/debug/deps/libsdl2-76726ca15ccc84e2.rlib" "/target/debug/deps/librand-a6981ffbadf44c0b.rlib" "/target/debug/deps/librand-295e536817d94b01.rlib" "/target/debug/deps/libsdl2_sys-cd183a0ad691ab73.rlib" "/target/debug/deps/libbitflags-d1a58b399641d224.rlib" "/target/debug/deps/liblazy_static-254eca49dbdf7c32.rlib" "/target/debug/deps/libnum-d9b7201a87b5ed90.rlib" "/target/debug/deps/libnum_iter-c80af21fd526a411.rlib" "/target/debug/deps/libnum_integer-1703d5fdba4b7938.rlib" "/target/debug/deps/libnum_traits-7bcc335dfe84b60c.rlib" "/target/debug/deps/librand-2330d6b211ce37c8.rlib" "/target/debug/deps/liblibc-e9f537c5e8431f63.rlib" "/target/debug/deps/librand_core-d62f42bd8bd86977.rlib" "/target/debug/deps/librand_core-e0e43335db43e230.rlib" "-Wl,--start-group" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-a021829e87e39dcf.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-ce8b5a3ae3174a34.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-e0a5861af782ac1b.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-faa54f218b0e3149.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-60c1f13c2a2bc637.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-62fff61d9c213778.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-457f5d21aa274348.rlib" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-4694ab1fde4317be.rlib" "-Wl,--end-group" "/rustup-home/toolchains/1.30.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-95d769f09dd6e7cb.rlib" "-Wl,-Bdynamic" "-lSDL2" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
Dec 01 21:36:53.447 INFO [stderr]   = note: /usr/bin/ld: cannot find -lSDL2
Dec 01 21:36:53.447 INFO [stderr]           collect2: error: ld returned 1 exit status
Dec 01 21:36:53.447 INFO [stderr]           
Dec 01 21:36:53.447 INFO [stderr] 
Dec 01 21:36:53.459 INFO [stderr] error: aborting due to previous error
Dec 01 21:36:53.459 INFO [stderr] 
Dec 01 21:36:53.467 INFO [stderr] error: Could not compile `chip8`.
Dec 01 21:36:53.468 INFO [stderr] 
Dec 01 21:36:53.468 INFO [stderr] To learn more, run the command again with --verbose.
Dec 01 21:36:53.469 INFO [stderr] su: No module specific data is present
Dec 01 21:36:53.737 INFO running `"docker" "inspect" "c96f7992d1583daa2b676649fbc9eddfd661974a8be873251cbd69dd374dbed0"`
Dec 01 21:36:53.881 INFO running `"docker" "rm" "-f" "c96f7992d1583daa2b676649fbc9eddfd661974a8be873251cbd69dd374dbed0"`
Dec 01 21:36:54.090 INFO [stdout] c96f7992d1583daa2b676649fbc9eddfd661974a8be873251cbd69dd374dbed0
