Dec 06 03:49:45.022 INFO testing christopherjmedlin/yalc8emu against master#906deae0790bd18681b937fe9a141a3c26cf1855 for pr-56514 Dec 06 03:49:45.022 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-7/master#906deae0790bd18681b937fe9a141a3c26cf1855:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-7/pr-56514/master#906deae0790bd18681b937fe9a141a3c26cf1855:/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 +906deae0790bd18681b937fe9a141a3c26cf1855-alt build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 03:49:45.362 INFO [stdout] e6c57b30a187ce4340deffceb07cd65f9d8ebea418574306fbce8f97e562da3a Dec 06 03:49:45.364 INFO running `"docker" "start" "-a" "e6c57b30a187ce4340deffceb07cd65f9d8ebea418574306fbce8f97e562da3a"` Dec 06 03:49:46.115 INFO [stderr] usermod: no changes Dec 06 03:49:46.198 INFO [stderr] Compiling num-traits v0.2.6 Dec 06 03:49:49.908 INFO [stderr] Compiling num-integer v0.1.39 Dec 06 03:49:50.627 INFO [stderr] Compiling num-iter v0.1.37 Dec 06 03:49:50.876 INFO [stderr] Compiling num v0.1.42 Dec 06 03:49:51.129 INFO [stderr] Compiling sdl2 v0.31.0 Dec 06 03:49:55.172 INFO [stderr] Compiling chip8 v0.1.0 (/source) Dec 06 03:49:55.815 INFO [stderr] warning: unused import: `Duration` Dec 06 03:49:55.815 INFO [stderr] --> src/cpu/timers.rs:1:26 Dec 06 03:49:55.815 INFO [stderr] | Dec 06 03:49:55.815 INFO [stderr] 1 | use std::time::{Instant, Duration}; Dec 06 03:49:55.815 INFO [stderr] | ^^^^^^^^ Dec 06 03:49:55.815 INFO [stderr] | Dec 06 03:49:55.815 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 06 03:49:55.815 INFO [stderr] Dec 06 03:49:55.815 INFO [stderr] warning: unused import: `std::num::Wrapping` Dec 06 03:49:55.815 INFO [stderr] --> src/cpu/mod.rs:6:5 Dec 06 03:49:55.815 INFO [stderr] | Dec 06 03:49:55.815 INFO [stderr] 6 | use std::num::Wrapping; Dec 06 03:49:55.815 INFO [stderr] | ^^^^^^^^^^^^^^^^^^ Dec 06 03:49:55.815 INFO [stderr] Dec 06 03:49:55.816 INFO [stderr] warning: unnecessary parentheses around `if` condition Dec 06 03:49:55.816 INFO [stderr] --> src/cpu/mod.rs:378:22 Dec 06 03:49:55.816 INFO [stderr] | Dec 06 03:49:55.816 INFO [stderr] 378 | let end = if (x > 0xf) {0xf} else {x}; Dec 06 03:49:55.816 INFO [stderr] | ^^^^^^^^^ help: remove these parentheses Dec 06 03:49:55.816 INFO [stderr] | Dec 06 03:49:55.816 INFO [stderr] = note: #[warn(unused_parens)] on by default Dec 06 03:49:55.816 INFO [stderr] Dec 06 03:49:55.816 INFO [stderr] warning: unnecessary parentheses around `if` condition Dec 06 03:49:55.816 INFO [stderr] --> src/cpu/mod.rs:389:22 Dec 06 03:49:55.816 INFO [stderr] | Dec 06 03:49:55.816 INFO [stderr] 389 | let end = if (x > 0xf) {0xf} else {x}; Dec 06 03:49:55.816 INFO [stderr] | ^^^^^^^^^ help: remove these parentheses Dec 06 03:49:55.816 INFO [stderr] Dec 06 03:49:55.969 INFO [stderr] warning: unused variable: `why` Dec 06 03:49:55.969 INFO [stderr] --> src/rom.rs:9:13 Dec 06 03:49:55.969 INFO [stderr] | Dec 06 03:49:55.969 INFO [stderr] 9 | Err(why) => panic!("Couldn't open ROM"), Dec 06 03:49:55.969 INFO [stderr] | ^^^ help: consider using `_why` instead Dec 06 03:49:55.969 INFO [stderr] | Dec 06 03:49:55.969 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 06 03:49:55.969 INFO [stderr] Dec 06 03:49:55.969 INFO [stderr] warning: unused variable: `b` Dec 06 03:49:55.969 INFO [stderr] --> src/cpu/mod.rs:50:18 Dec 06 03:49:55.969 INFO [stderr] | Dec 06 03:49:55.969 INFO [stderr] 50 | for (i, &b) in rom.iter().enumerate() { Dec 06 03:49:55.969 INFO [stderr] | ^ help: consider using `_b` instead Dec 06 03:49:55.969 INFO [stderr] Dec 06 03:49:55.969 INFO [stderr] warning: unused variable: `result` Dec 06 03:49:55.969 INFO [stderr] --> src/display.rs:57:25 Dec 06 03:49:55.969 INFO [stderr] | Dec 06 03:49:55.969 INFO [stderr] 57 | let result = canvas.fill_rect(Rect::new(x_coord, y_coord, 10, 10)); Dec 06 03:49:55.969 INFO [stderr] | ^^^^^^ help: consider using `_result` instead Dec 06 03:49:55.969 INFO [stderr] Dec 06 03:49:55.969 INFO [stderr] warning: unused variable: `event_keycode` Dec 06 03:49:55.969 INFO [stderr] --> src/keypad.rs:24:13 Dec 06 03:49:55.969 INFO [stderr] | Dec 06 03:49:55.969 INFO [stderr] 24 | let event_keycode: Keycode; Dec 06 03:49:55.969 INFO [stderr] | ^^^^^^^^^^^^^ help: consider using `_event_keycode` instead Dec 06 03:49:55.969 INFO [stderr] Dec 06 03:49:55.987 INFO [stderr] warning: variable does not need to be mutable Dec 06 03:49:55.987 INFO [stderr] --> src/cpu/timers.rs:16:13 Dec 06 03:49:55.987 INFO [stderr] | Dec 06 03:49:55.987 INFO [stderr] 16 | let mut timers = TimerSubsystem { Dec 06 03:49:55.987 INFO [stderr] | ----^^^^^^ Dec 06 03:49:55.987 INFO [stderr] | | Dec 06 03:49:55.987 INFO [stderr] | help: remove this `mut` Dec 06 03:49:55.987 INFO [stderr] | Dec 06 03:49:55.987 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 06 03:49:55.988 INFO [stderr] Dec 06 03:49:56.020 INFO [stderr] warning: method is never used: `get_pixel` Dec 06 03:49:56.020 INFO [stderr] --> src/display.rs:68:5 Dec 06 03:49:56.020 INFO [stderr] | Dec 06 03:49:56.020 INFO [stderr] 68 | pub fn get_pixel(self, x: usize, y: usize) -> (bool) { Dec 06 03:49:56.020 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 03:49:56.020 INFO [stderr] | Dec 06 03:49:56.020 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 06 03:49:56.020 INFO [stderr] Dec 06 03:49:56.020 INFO [stderr] warning: method `op_00E0` should have a snake case name such as `op_00_e0` Dec 06 03:49:56.020 INFO [stderr] --> src/cpu/mod.rs:127:5 Dec 06 03:49:56.020 INFO [stderr] | Dec 06 03:49:56.020 INFO [stderr] 127 | / fn op_00E0(&mut self) -> (usize) { Dec 06 03:49:56.020 INFO [stderr] 128 | | self.display.clear(); Dec 06 03:49:56.020 INFO [stderr] 129 | | 2 Dec 06 03:49:56.020 INFO [stderr] 130 | | } Dec 06 03:49:56.020 INFO [stderr] | |_____^ Dec 06 03:49:56.020 INFO [stderr] | Dec 06 03:49:56.020 INFO [stderr] = note: #[warn(non_snake_case)] on by default Dec 06 03:49:56.020 INFO [stderr] Dec 06 03:49:56.020 INFO [stderr] warning: method `op_00EE` should have a snake case name such as `op_00_ee` Dec 06 03:49:56.020 INFO [stderr] --> src/cpu/mod.rs:133:5 Dec 06 03:49:56.020 INFO [stderr] | Dec 06 03:49:56.020 INFO [stderr] 133 | / fn op_00EE(&mut self) -> (usize) { Dec 06 03:49:56.020 INFO [stderr] 134 | | self.pc = self.stack[self.sp]; Dec 06 03:49:56.020 INFO [stderr] 135 | | self.sp -= 1; Dec 06 03:49:56.020 INFO [stderr] 136 | | 0 Dec 06 03:49:56.021 INFO [stderr] 137 | | } Dec 06 03:49:56.021 INFO [stderr] | |_____^ Dec 06 03:49:56.021 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_8xyE` should have a snake case name such as `op_8xy_e` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:264:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 264 | / fn op_8xyE(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 265 | | self.v[0xF] = if self.v[x] & 1 == 1 {1} else {0}; Dec 06 03:49:56.022 INFO [stderr] 266 | | self.v[x] <<= 1; Dec 06 03:49:56.022 INFO [stderr] 267 | | 2 Dec 06 03:49:56.022 INFO [stderr] 268 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_Annn` should have a snake case name such as `op_annn` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:279:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 279 | / fn op_Annn(&mut self, nnn: usize) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 280 | | self.i = nnn; Dec 06 03:49:56.022 INFO [stderr] 281 | | 2 Dec 06 03:49:56.022 INFO [stderr] 282 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_Bnnn` should have a snake case name such as `op_bnnn` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:285:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 285 | / fn op_Bnnn(&mut self, nnn: usize) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 286 | | self.pc = nnn + (self.v[0] as usize); Dec 06 03:49:56.022 INFO [stderr] 287 | | 0 Dec 06 03:49:56.022 INFO [stderr] 288 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_Cxkk` should have a snake case name such as `op_cxkk` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:291:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 291 | / fn op_Cxkk(&mut self, x: usize, kk: u8) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 292 | | let rn: u8 = rand::random(); Dec 06 03:49:56.022 INFO [stderr] 293 | | self.v[x] = rn & kk; Dec 06 03:49:56.022 INFO [stderr] 294 | | 2 Dec 06 03:49:56.022 INFO [stderr] 295 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_Dxyn` should have a snake case name such as `op_dxyn` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:298:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 298 | / fn op_Dxyn(&mut self, x: usize, y: usize, n: usize) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 299 | | let mut sprite = [0; 15]; Dec 06 03:49:56.022 INFO [stderr] 300 | | Dec 06 03:49:56.022 INFO [stderr] 301 | | for j in 0..n { Dec 06 03:49:56.022 INFO [stderr] ... | Dec 06 03:49:56.022 INFO [stderr] 308 | | 2 Dec 06 03:49:56.022 INFO [stderr] 309 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_Ex9E` should have a snake case name such as `op_ex9_e` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:312:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 312 | / fn op_Ex9E (&mut self, x: usize) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 313 | | if self.keypad.get_key(self.v[x] as usize) { return 4 } Dec 06 03:49:56.022 INFO [stderr] 314 | | 2 Dec 06 03:49:56.022 INFO [stderr] 315 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_ExA1` should have a snake case name such as `op_ex_a1` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:318:5 Dec 06 03:49:56.022 INFO [stderr] | Dec 06 03:49:56.022 INFO [stderr] 318 | / fn op_ExA1(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.022 INFO [stderr] 319 | | if self.keypad.get_key(self.v[x] as usize) { return 2 } Dec 06 03:49:56.022 INFO [stderr] 320 | | 4 Dec 06 03:49:56.022 INFO [stderr] 321 | | } Dec 06 03:49:56.022 INFO [stderr] | |_____^ Dec 06 03:49:56.022 INFO [stderr] Dec 06 03:49:56.022 INFO [stderr] warning: method `op_Fx07` should have a snake case name such as `op_fx07` Dec 06 03:49:56.022 INFO [stderr] --> src/cpu/mod.rs:324:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 324 | / fn op_Fx07(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 325 | | self.v[x] = self.timer_subsystem.delay; Dec 06 03:49:56.023 INFO [stderr] 326 | | 2 Dec 06 03:49:56.023 INFO [stderr] 327 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx0A` should have a snake case name such as `op_fx0_a` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:330:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 330 | / fn op_Fx0A(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 331 | | let keypress = self.keypad.wait_for_keypress(); Dec 06 03:49:56.023 INFO [stderr] 332 | | if keypress == 0x10 { Dec 06 03:49:56.023 INFO [stderr] 333 | | // keep pc where it is and keep executing this same instruction Dec 06 03:49:56.023 INFO [stderr] ... | Dec 06 03:49:56.023 INFO [stderr] 340 | | 2 Dec 06 03:49:56.023 INFO [stderr] 341 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx15` should have a snake case name such as `op_fx15` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:344:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 344 | / fn op_Fx15(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 345 | | self.timer_subsystem.delay = self.v[x]; Dec 06 03:49:56.023 INFO [stderr] 346 | | 2 Dec 06 03:49:56.023 INFO [stderr] 347 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx18` should have a snake case name such as `op_fx18` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:350:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 350 | / fn op_Fx18(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 351 | | self.timer_subsystem.sound = self.v[x]; Dec 06 03:49:56.023 INFO [stderr] 352 | | 2 Dec 06 03:49:56.023 INFO [stderr] 353 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx1E` should have a snake case name such as `op_fx1_e` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:356:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 356 | / fn op_Fx1E(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 357 | | self.i = self.v[x] as usize + self.i; Dec 06 03:49:56.023 INFO [stderr] 358 | | 2 Dec 06 03:49:56.023 INFO [stderr] 359 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx29` should have a snake case name such as `op_fx29` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:362:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 362 | / fn op_Fx29(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 363 | | self.i = (self.v[x] * 5) as usize; Dec 06 03:49:56.023 INFO [stderr] 364 | | 2 Dec 06 03:49:56.023 INFO [stderr] 365 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx33` should have a snake case name such as `op_fx33` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:368:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 368 | / fn op_Fx33(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 369 | | self.ram[self.i] = self.v[x] / 100; Dec 06 03:49:56.023 INFO [stderr] 370 | | self.ram[self.i + 1] = (self.v[x] % 100) / 10; Dec 06 03:49:56.023 INFO [stderr] 371 | | self.ram[self.i + 2] = self.v[x] % 10; Dec 06 03:49:56.023 INFO [stderr] 372 | | 2 Dec 06 03:49:56.023 INFO [stderr] 373 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx55` should have a snake case name such as `op_fx55` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:376:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 376 | / fn op_Fx55(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 377 | | // prevent out of bounds Dec 06 03:49:56.023 INFO [stderr] 378 | | let end = if (x > 0xf) {0xf} else {x}; Dec 06 03:49:56.023 INFO [stderr] 379 | | Dec 06 03:49:56.023 INFO [stderr] ... | Dec 06 03:49:56.023 INFO [stderr] 383 | | 2 Dec 06 03:49:56.023 INFO [stderr] 384 | | } Dec 06 03:49:56.023 INFO [stderr] | |_____^ Dec 06 03:49:56.023 INFO [stderr] Dec 06 03:49:56.023 INFO [stderr] warning: method `op_Fx65` should have a snake case name such as `op_fx65` Dec 06 03:49:56.023 INFO [stderr] --> src/cpu/mod.rs:387:5 Dec 06 03:49:56.023 INFO [stderr] | Dec 06 03:49:56.023 INFO [stderr] 387 | / fn op_Fx65(&mut self, x: usize) -> (usize) { Dec 06 03:49:56.023 INFO [stderr] 388 | | // prevent out of bounds Dec 06 03:49:56.023 INFO [stderr] 389 | | let end = if (x > 0xf) {0xf} else {x}; Dec 06 03:49:56.023 INFO [stderr] 390 | | Dec 06 03:49:56.024 INFO [stderr] ... | Dec 06 03:49:56.024 INFO [stderr] 394 | | 2 Dec 06 03:49:56.024 INFO [stderr] 395 | | } Dec 06 03:49:56.024 INFO [stderr] | |_____^ Dec 06 03:49:56.024 INFO [stderr] Dec 06 03:49:56.024 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 06 03:49:56.024 INFO [stderr] --> src/rom.rs:13:5 Dec 06 03:49:56.024 INFO [stderr] | Dec 06 03:49:56.024 INFO [stderr] 13 | file.read(buf); Dec 06 03:49:56.024 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 06 03:49:56.024 INFO [stderr] | Dec 06 03:49:56.024 INFO [stderr] = note: #[warn(unused_must_use)] on by default Dec 06 03:49:56.024 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 06 03:49:56.024 INFO [stderr] Dec 06 03:49:56.520 INFO [stderr] error: linking with `cc` failed: exit code: 1 Dec 06 03:49:56.520 INFO [stderr] | Dec 06 03:49:56.520 INFO [stderr] = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.0.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.1.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.10.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.11.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.12.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.13.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.14.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.15.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.2.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.3.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.4.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.5.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.6.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.7.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.8.rcgu.o" "/target/debug/deps/chip8-ddfa3c5d010aced7.chip8.4mai7p5w-cgu.9.rcgu.o" "-o" "/target/debug/deps/chip8-ddfa3c5d010aced7" "/target/debug/deps/chip8-ddfa3c5d010aced7.27w0uqokuszauzi4.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/target/debug/deps" "-L" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/target/debug/deps/libsdl2-286308cc5acadd8e.rlib" "/target/debug/deps/librand-9c05cdc719305dbc.rlib" "/target/debug/deps/librand-38b5cbc7f7546e18.rlib" "/target/debug/deps/libsdl2_sys-c811a8832b94c9f9.rlib" "/target/debug/deps/libbitflags-527620e07db41240.rlib" "/target/debug/deps/liblazy_static-6816f7cfd72ebb67.rlib" "/target/debug/deps/libnum-1310504d9bcded44.rlib" "/target/debug/deps/libnum_iter-cd8f8e614411ed57.rlib" "/target/debug/deps/libnum_integer-621243cf68d84757.rlib" "/target/debug/deps/libnum_traits-f51cb9f341077de6.rlib" "/target/debug/deps/librand-587fe5a520237cc1.rlib" "/target/debug/deps/liblibc-dfd19e3e8ba82b59.rlib" "/target/debug/deps/librand_core-488d0a81ee98b3fa.rlib" "/target/debug/deps/librand_core-296558516ce87fe7.rlib" "-Wl,--start-group" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-e972c2420364a4db.rlib" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-55db828da3f253f9.rlib" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-70134419af0c02d4.rlib" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-85dd988f6e224ab0.rlib" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-35e5ecdfebfa7d5c.rlib" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-10fd134b0cf006a8.rlib" "-Wl,--end-group" "/rustup-home/toolchains/906deae0790bd18681b937fe9a141a3c26cf1855-alt/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-1306eac77b02d077.rlib" "-Wl,-Bdynamic" "-lSDL2" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil" Dec 06 03:49:56.520 INFO [stderr] = note: /usr/bin/ld: cannot find -lSDL2 Dec 06 03:49:56.520 INFO [stderr] collect2: error: ld returned 1 exit status Dec 06 03:49:56.521 INFO [stderr] Dec 06 03:49:56.521 INFO [stderr] Dec 06 03:49:56.524 INFO [stderr] error: aborting due to previous error Dec 06 03:49:56.524 INFO [stderr] Dec 06 03:49:56.531 INFO [stderr] error: Could not compile `chip8`. Dec 06 03:49:56.531 INFO [stderr] Dec 06 03:49:56.531 INFO [stderr] To learn more, run the command again with --verbose. Dec 06 03:49:56.533 INFO [stderr] su: No module specific data is present Dec 06 03:49:56.790 INFO running `"docker" "inspect" "e6c57b30a187ce4340deffceb07cd65f9d8ebea418574306fbce8f97e562da3a"` Dec 06 03:49:56.854 INFO running `"docker" "rm" "-f" "e6c57b30a187ce4340deffceb07cd65f9d8ebea418574306fbce8f97e562da3a"` Dec 06 03:49:56.921 INFO [stdout] e6c57b30a187ce4340deffceb07cd65f9d8ebea418574306fbce8f97e562da3a