[INFO] cloning repository https://github.com/FPGAwesome/space-invaders8080-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FPGAwesome/space-invaders8080-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFPGAwesome%2Fspace-invaders8080-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFPGAwesome%2Fspace-invaders8080-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 902772678713276d34ac815950654be7a05e9bb0
[INFO] checking FPGAwesome/space-invaders8080-rust against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFPGAwesome%2Fspace-invaders8080-rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/FPGAwesome/space-invaders8080-rust
[INFO] finished tweaking git repo https://github.com/FPGAwesome/space-invaders8080-rust
[INFO] tweaked toml for git repo https://github.com/FPGAwesome/space-invaders8080-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/FPGAwesome/space-invaders8080-rust on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/FPGAwesome/space-invaders8080-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.37
[INFO] [stderr]   Downloaded queues v1.1.0
[INFO] [stderr]   Downloaded libloading v0.8.0
[INFO] [stderr]   Downloaded serde v1.0.166
[INFO] [stderr]   Downloaded serde_derive v1.0.166
[INFO] [stderr]   Downloaded bumpalo v3.13.0
[INFO] [stderr]   Downloaded minifb v0.24.0
[INFO] [stderr]   Downloaded rustix v0.37.22
[INFO] [stderr]   Downloaded orbclient v0.3.45
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6b9a3b36db248c200735a985bf30e33353de5cfdd6dec6892cdb94392495da77
[INFO] running `Command { std: "docker" "start" "-a" "6b9a3b36db248c200735a985bf30e33353de5cfdd6dec6892cdb94392495da77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b9a3b36db248c200735a985bf30e33353de5cfdd6dec6892cdb94392495da77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b9a3b36db248c200735a985bf30e33353de5cfdd6dec6892cdb94392495da77", kill_on_drop: false }`
[INFO] [stdout] 6b9a3b36db248c200735a985bf30e33353de5cfdd6dec6892cdb94392495da77
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d21e71c57cfcd8c1b90a25abe064c187d13c54386676445bb90b92bd18cd644
[INFO] running `Command { std: "docker" "start" "-a" "6d21e71c57cfcd8c1b90a25abe064c187d13c54386676445bb90b92bd18cd644", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.63
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling xml-rs v0.8.15
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]     Checking libloading v0.8.0
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]    Compiling rustix v0.37.22
[INFO] [stderr]    Compiling tempfile v3.6.0
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]    Compiling minifb v0.24.0
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking queues v1.1.0
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling quote v1.0.29
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking emu-8080 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/state8080.rs:871:22
[INFO] [stdout]     |
[INFO] [stdout] 871 |             let sp = (state.sp as u16);
[INFO] [stdout]     |                      ^               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 871 -             let sp = (state.sp as u16);
[INFO] [stdout] 871 +             let sp = state.sp as u16 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Thread` and `self`
[INFO] [stdout]  --> src/main.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::{self, Thread};
[INFO] [stdout]   |                   ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debugger::parse_command`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use debugger::parse_command;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/state8080.rs:871:22
[INFO] [stdout]     |
[INFO] [stdout] 871 |             let sp = (state.sp as u16);
[INFO] [stdout]     |                      ^               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 871 -             let sp = (state.sp as u16);
[INFO] [stdout] 871 +             let sp = state.sp as u16 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Thread` and `self`
[INFO] [stdout]  --> src/main.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread::{self, Thread};
[INFO] [stdout]   |                   ^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debugger::parse_command`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use debugger::parse_command;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | /     loop {
[INFO] [stdout] 163 | |         let mut ret_code=0;
[INFO] [stdout] 164 | |         let frame_start_time = Instant::now();
[INFO] [stdout] ...   |
[INFO] [stdout] 235 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 236 |
[INFO] [stdout] 237 |       let mut file = File::create("instruction_dump_last1000.txt").unwrap();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | /     loop {
[INFO] [stdout] 163 | |         let mut ret_code=0;
[INFO] [stdout] 164 | |         let frame_start_time = Instant::now();
[INFO] [stdout] ...   |
[INFO] [stdout] 235 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 236 |
[INFO] [stdout] 237 |       let mut file = File::create("instruction_dump_last1000.txt").unwrap();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `carry` is never read
[INFO] [stdout]    --> src/state8080.rs:571:30
[INFO] [stdout]     |
[INFO] [stdout] 571 |             let (mut result, mut carry) = state.a.overflowing_add(state.d);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `carry` is never read
[INFO] [stdout]    --> src/state8080.rs:583:30
[INFO] [stdout]     |
[INFO] [stdout] 583 |             let (mut result, mut carry) = state.a.overflowing_add(value);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `carry` is never read
[INFO] [stdout]    --> src/state8080.rs:571:30
[INFO] [stdout]     |
[INFO] [stdout] 571 |             let (mut result, mut carry) = state.a.overflowing_add(state.d);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `carry` is never read
[INFO] [stdout]    --> src/state8080.rs:583:30
[INFO] [stdout]     |
[INFO] [stdout] 583 |             let (mut result, mut carry) = state.a.overflowing_add(value);
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let mut ret_code=0;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_frame_time` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut last_frame_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_frame_time` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `intCounter` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut intCounter = Duration::default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_intCounter` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret_code`
[INFO] [stdout]    --> src/main.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let mut ret_code=0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_frame_time` is never read
[INFO] [stdout]    --> src/main.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         last_frame_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `intCounter` is never read
[INFO] [stdout]    --> src/main.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |             intCounter = elapsed;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let mut ret_code=0;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_frame_time` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut last_frame_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_frame_time` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `intCounter` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut intCounter = Duration::default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_intCounter` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret_code`
[INFO] [stdout]    --> src/main.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let mut ret_code=0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_frame_time` is never read
[INFO] [stdout]    --> src/main.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         last_frame_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `intCounter` is never read
[INFO] [stdout]    --> src/main.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |             intCounter = elapsed;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:439:18
[INFO] [stdout]     |
[INFO] [stdout] 439 |         0x40 => {state.b = state.b},//MOV B,B
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:448:18
[INFO] [stdout]     |
[INFO] [stdout] 448 |         0x49 => {state.c = state.c},//MOV C,C
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:457:18
[INFO] [stdout]     |
[INFO] [stdout] 457 |         0x52 => {state.d = state.d},//MOV C,H
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:530:18
[INFO] [stdout]     |
[INFO] [stdout] 530 |         0x7F => {state.a = state.a},//MOV A,A
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TIME` is never used
[INFO] [stdout]   --> src/main.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const FRAME_TIME: Duration = Duration::from_nanos(16666667); // 60 Hz frame time
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TIME120` is never used
[INFO] [stdout]   --> src/main.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const FRAME_TIME120: Duration = Duration::from_nanos(8333333); // 120 Hz frame time
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEBUG` is never used
[INFO] [stdout]   --> src/main.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const DEBUG: bool = false;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_bytes_to_file` is never used
[INFO] [stdout]    --> src/main.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn dump_bytes_to_file(bytes: &[u8], file_path: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_reg` is never used
[INFO] [stdout]   --> src/state8080.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl State8080 {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn get_reg(emu8080: &State8080, reg: char) -> u8 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_command` is never used
[INFO] [stdout]  --> src/debugger.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn parse_command(emu8080: &mut State8080) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `swapInterrupt` should have a snake case name
[INFO] [stdout]    --> src/main.rs:130:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut swapInterrupt = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `swap_interrupt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lastInterrupt` should have a snake case name
[INFO] [stdout]    --> src/main.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let mut lastInterrupt = Instant::now(); // kick off a timer for interrupts
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `last_interrupt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `intCounter` should have a snake case name
[INFO] [stdout]    --> src/main.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut intCounter = Duration::default();
[INFO] [stdout]     |             ^^^^^^^^^^ help: convert the identifier to snake case: `int_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:439:18
[INFO] [stdout]     |
[INFO] [stdout] 439 |         0x40 => {state.b = state.b},//MOV B,B
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:448:18
[INFO] [stdout]     |
[INFO] [stdout] 448 |         0x49 => {state.c = state.c},//MOV C,C
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:457:18
[INFO] [stdout]     |
[INFO] [stdout] 457 |         0x52 => {state.d = state.d},//MOV C,H
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/state8080.rs:530:18
[INFO] [stdout]     |
[INFO] [stdout] 530 |         0x7F => {state.a = state.a},//MOV A,A
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TIME` is never used
[INFO] [stdout]   --> src/main.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const FRAME_TIME: Duration = Duration::from_nanos(16666667); // 60 Hz frame time
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TIME120` is never used
[INFO] [stdout]   --> src/main.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const FRAME_TIME120: Duration = Duration::from_nanos(8333333); // 120 Hz frame time
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEBUG` is never used
[INFO] [stdout]   --> src/main.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const DEBUG: bool = false;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_bytes_to_file` is never used
[INFO] [stdout]    --> src/main.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn dump_bytes_to_file(bytes: &[u8], file_path: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_reg` is never used
[INFO] [stdout]   --> src/state8080.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl State8080 {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn get_reg(emu8080: &State8080, reg: char) -> u8 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_command` is never used
[INFO] [stdout]  --> src/debugger.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn parse_command(emu8080: &mut State8080) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `swapInterrupt` should have a snake case name
[INFO] [stdout]    --> src/main.rs:130:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut swapInterrupt = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `swap_interrupt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lastInterrupt` should have a snake case name
[INFO] [stdout]    --> src/main.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let mut lastInterrupt = Instant::now(); // kick off a timer for interrupts
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `last_interrupt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `intCounter` should have a snake case name
[INFO] [stdout]    --> src/main.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut intCounter = Duration::default();
[INFO] [stdout]     |             ^^^^^^^^^^ help: convert the identifier to snake case: `int_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             q.add(diss);
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 177 |             let _ = q.add(diss);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:179:17
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 q.remove();
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let _ = q.remove();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             q.add(diss);
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 177 |             let _ = q.add(diss);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:179:17
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 q.remove();
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let _ = q.remove();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.96s
[INFO] running `Command { std: "docker" "inspect" "6d21e71c57cfcd8c1b90a25abe064c187d13c54386676445bb90b92bd18cd644", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d21e71c57cfcd8c1b90a25abe064c187d13c54386676445bb90b92bd18cd644", kill_on_drop: false }`
[INFO] [stdout] 6d21e71c57cfcd8c1b90a25abe064c187d13c54386676445bb90b92bd18cd644
