[INFO] cloning repository https://github.com/normalno-dev/octochip
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/normalno-dev/octochip" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnormalno-dev%2Foctochip", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnormalno-dev%2Foctochip'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5b32f3ea15fc810d98a87006bf45226755e5b6f6
[INFO] testing normalno-dev/octochip against beta-2025-10-28 for beta-1.92-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnormalno-dev%2Foctochip" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/normalno-dev/octochip
[INFO] finished tweaking git repo https://github.com/normalno-dev/octochip
[INFO] tweaked toml for git repo https://github.com/normalno-dev/octochip written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/normalno-dev/octochip on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/normalno-dev/octochip 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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3ad6108a7e34d0e20bb7e6e2f78054b9a29018775ef67b2225562672a802f0bb
[INFO] running `Command { std: "docker" "start" "-a" "3ad6108a7e34d0e20bb7e6e2f78054b9a29018775ef67b2225562672a802f0bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ad6108a7e34d0e20bb7e6e2f78054b9a29018775ef67b2225562672a802f0bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ad6108a7e34d0e20bb7e6e2f78054b9a29018775ef67b2225562672a802f0bb", kill_on_drop: false }`
[INFO] [stdout] 3ad6108a7e34d0e20bb7e6e2f78054b9a29018775ef67b2225562672a802f0bb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d8656d7adac358c53925521bc154787406aa3db1798876ecf40941957c708b77
[INFO] running `Command { std: "docker" "start" "-a" "d8656d7adac358c53925521bc154787406aa3db1798876ecf40941957c708b77", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling libc v0.2.173
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling machine v0.1.0 (/opt/rustwide/workdir/machine)
[INFO] [stdout] warning: unused import: `crate::error::Error`
[INFO] [stdout]  --> machine/src/display.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::Error;
[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: `std::slice::Windows`
[INFO] [stdout]  --> machine/src/display.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::slice::Windows;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Error`
[INFO] [stdout]  --> machine/src/keyboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RngCore` and `Rng`
[INFO] [stdout]  --> machine/src/machine.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::{Rng, RngCore, SeedableRng};
[INFO] [stdout]   |            ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> machine/src/machine/ops_memory.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::Memory`
[INFO] [stdout]  --> machine/src/machine/debug.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::memory::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Display` is never constructed
[INFO] [stdout]  --> machine/src/display.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Display {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> machine/src/display.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Display {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  13 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub fn height(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn width(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn get_pixel(&self, x: u8, y: u8) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn draw_sprite(&mut self, x: u8, y: u8, sprite: &[u8]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn set_pixel(&mut self, x: u8, y: u8, value: bool) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn toggle_pixel(&mut self, x: u8, y: u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn pixel_to_bit_offset(&self, x: u8, y: u8) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn alloc_framebuffer(height: u8, width: u8) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/instruction.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Keyboard` is never constructed
[INFO] [stdout]  --> machine/src/keyboard.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Keyboard(u16);
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> machine/src/keyboard.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Keyboard {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout]  6 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn is_key_pressed(&self, key: u8) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn get_keys(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn any_key_pressed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn clear_all_keys(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn set_key(&mut self, key: u8, pressed: bool) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_first_pressed_key(&self) -> Option<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> machine/src/machine.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Machine` is never constructed
[INFO] [stdout]   --> machine/src/machine.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Machine {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> machine/src/machine.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  47 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn with_config(cfg: config::Config) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn run_frame<P: Platform>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn step(&mut self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn load_program(&mut self, program: Vec<u16>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn update_timers(&mut self, delta: Duration) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> machine/src/machine.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl Machine {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 194 |     pub fn get_registers(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn get_pc(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn get_sp(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn get_memory(&self) -> &Memory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn get_display(&self) -> &Display {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn get_delay_timer(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn get_sound_timer(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn get_index(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exec` is never used
[INFO] [stdout]    --> machine/src/machine.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl Machine {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 228 |     fn exec(&mut self, instruction: Instruction) -> Result<()> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> machine/src/machine/config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quircks` is never constructed
[INFO] [stdout]  --> machine/src/machine/quircks.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Quircks {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_alu.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> machine/src/machine/ops_alu.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_add_immediate(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(super) fn op_add(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(super) fn op_subtract(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub(super) fn op_subtract_negate(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(super) fn op_or(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(super) fn op_and(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub(super) fn op_xor(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub(super) fn op_shift_right(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub(super) fn op_shift_left(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_control.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> machine/src/machine/ops_control.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_return(&mut self) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(super) fn op_call(&mut self, addr: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub(super) fn op_jump(&mut self, addr: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub(super) fn op_jump_offset(&mut self, offset: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub(super) fn op_skip_if_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub(super) fn op_skip_if_not_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub(super) fn op_skip_if_equal(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub(super) fn op_skip_if_not_equal(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_io.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_skip_if_key`, `op_skip_if_not_key`, `op_wait_for_key`, and `op_draw` are never used
[INFO] [stdout]   --> machine/src/machine/ops_io.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_skip_if_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(super) fn op_skip_if_not_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(super) fn op_wait_for_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(super) fn op_draw(&mut self, vx: u8, vy: u8, n: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_memory.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_load_font`, `op_store_bcd`, `op_store_registers`, and `op_load_registers` are never used
[INFO] [stdout]   --> machine/src/machine/ops_memory.rs:9:19
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  9 |     pub(super) fn op_load_font(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub(super) fn op_store_bcd(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(super) fn op_store_registers(&mut self, x: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(super) fn op_load_registers(&mut self, x: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_register.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_set_immediate`, `op_set`, `op_set_index`, and `op_add_index` are never used
[INFO] [stdout]   --> machine/src/machine/ops_register.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_set_immediate(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub(super) fn op_set(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub(super) fn op_set_index(&mut self, addr: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(super) fn op_add_index(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_system.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_clear`, `op_syscall`, `op_rnd`, `op_set_delay_timer`, `op_set_sound_timer`, and `op_load_delay_timer` are never used
[INFO] [stdout]   --> machine/src/machine/ops_system.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 10 |     pub(super) fn op_clear(&mut self) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(super) fn op_syscall(&self, _: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub(super) fn op_rnd(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(super) fn op_set_delay_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(super) fn op_set_sound_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub(super) fn op_load_delay_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dump_registers`, `dump_memory_hex`, and `dump_screen` are never used
[INFO] [stdout]   --> machine/src/machine/debug.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  6 |     pub fn dump_registers(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn dump_memory_hex(&self, start: u16, length: u16) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn dump_screen(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/memory.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FONTS` is never used
[INFO] [stdout]  --> machine/src/memory.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const FONTS: [u8; 80] = [
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Memory` is never constructed
[INFO] [stdout]   --> machine/src/memory.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Memory {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> machine/src/memory.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Memory {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn read(&self, addr: u16) -> Result<u8> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn write(&mut self, addr: u16, value: u8) -> Result<()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn write_word(&mut self, addr: u16, value: u16) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn read_range(&self, start: u16, length: u16) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn read_word(&self, addr: u16) -> Result<u16> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn load_fonts(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionMode` is never used
[INFO] [stdout]  --> machine/src/platform.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ExecutionMode {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Platform` is never used
[INFO] [stdout]   --> machine/src/platform.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Platform {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.72s
[INFO] running `Command { std: "docker" "inspect" "d8656d7adac358c53925521bc154787406aa3db1798876ecf40941957c708b77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d8656d7adac358c53925521bc154787406aa3db1798876ecf40941957c708b77", kill_on_drop: false }`
[INFO] [stdout] d8656d7adac358c53925521bc154787406aa3db1798876ecf40941957c708b77
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5a66a78b281ecc5a9dd28cea9c62bed94852f2954bafde745827835f13a87e36
[INFO] running `Command { std: "docker" "start" "-a" "5a66a78b281ecc5a9dd28cea9c62bed94852f2954bafde745827835f13a87e36", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stdout] warning: unused import: `crate::error::Error`
[INFO] [stdout]  --> machine/src/display.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::Error;
[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: `std::slice::Windows`
[INFO] [stdout]  --> machine/src/display.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::slice::Windows;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Error`
[INFO] [stdout]  --> machine/src/keyboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RngCore` and `Rng`
[INFO] [stdout]  --> machine/src/machine.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::{Rng, RngCore, SeedableRng};
[INFO] [stdout]   |            ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> machine/src/machine/ops_memory.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::Memory`
[INFO] [stdout]  --> machine/src/machine/debug.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::memory::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Display` is never constructed
[INFO] [stdout]  --> machine/src/display.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Display {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> machine/src/display.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Display {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  13 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub fn height(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn width(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn get_pixel(&self, x: u8, y: u8) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn draw_sprite(&mut self, x: u8, y: u8, sprite: &[u8]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn set_pixel(&mut self, x: u8, y: u8, value: bool) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn toggle_pixel(&mut self, x: u8, y: u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn pixel_to_bit_offset(&self, x: u8, y: u8) -> (usize, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn alloc_framebuffer(height: u8, width: u8) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/instruction.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Keyboard` is never constructed
[INFO] [stdout]  --> machine/src/keyboard.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Keyboard(u16);
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> machine/src/keyboard.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Keyboard {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout]  6 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn is_key_pressed(&self, key: u8) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn get_keys(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn any_key_pressed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn clear_all_keys(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn set_key(&mut self, key: u8, pressed: bool) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_first_pressed_key(&self) -> Option<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> machine/src/machine.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Machine` is never constructed
[INFO] [stdout]   --> machine/src/machine.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Machine {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> machine/src/machine.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  47 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn with_config(cfg: config::Config) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn run_frame<P: Platform>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn step(&mut self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn load_program(&mut self, program: Vec<u16>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn update_timers(&mut self, delta: Duration) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> machine/src/machine.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl Machine {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 194 |     pub fn get_registers(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn get_pc(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn get_sp(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn get_memory(&self) -> &Memory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn get_display(&self) -> &Display {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn get_delay_timer(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn get_sound_timer(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn get_index(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exec` is never used
[INFO] [stdout]    --> machine/src/machine.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl Machine {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 228 |     fn exec(&mut self, instruction: Instruction) -> Result<()> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> machine/src/machine/config.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quircks` is never constructed
[INFO] [stdout]  --> machine/src/machine/quircks.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Quircks {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_alu.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> machine/src/machine/ops_alu.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_add_immediate(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(super) fn op_add(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(super) fn op_subtract(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub(super) fn op_subtract_negate(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(super) fn op_or(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(super) fn op_and(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub(super) fn op_xor(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub(super) fn op_shift_right(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub(super) fn op_shift_left(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_control.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> machine/src/machine/ops_control.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_return(&mut self) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(super) fn op_call(&mut self, addr: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub(super) fn op_jump(&mut self, addr: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub(super) fn op_jump_offset(&mut self, offset: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub(super) fn op_skip_if_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub(super) fn op_skip_if_not_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub(super) fn op_skip_if_equal(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub(super) fn op_skip_if_not_equal(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_io.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_skip_if_key`, `op_skip_if_not_key`, `op_wait_for_key`, and `op_draw` are never used
[INFO] [stdout]   --> machine/src/machine/ops_io.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_skip_if_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(super) fn op_skip_if_not_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(super) fn op_wait_for_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(super) fn op_draw(&mut self, vx: u8, vy: u8, n: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_memory.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_load_font`, `op_store_bcd`, `op_store_registers`, and `op_load_registers` are never used
[INFO] [stdout]   --> machine/src/machine/ops_memory.rs:9:19
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  9 |     pub(super) fn op_load_font(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub(super) fn op_store_bcd(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(super) fn op_store_registers(&mut self, x: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(super) fn op_load_registers(&mut self, x: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_register.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_set_immediate`, `op_set`, `op_set_index`, and `op_add_index` are never used
[INFO] [stdout]   --> machine/src/machine/ops_register.rs:7:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  7 |     pub(super) fn op_set_immediate(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub(super) fn op_set(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub(super) fn op_set_index(&mut self, addr: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(super) fn op_add_index(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/machine/ops_system.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `op_clear`, `op_syscall`, `op_rnd`, `op_set_delay_timer`, `op_set_sound_timer`, and `op_load_delay_timer` are never used
[INFO] [stdout]   --> machine/src/machine/ops_system.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 10 |     pub(super) fn op_clear(&mut self) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(super) fn op_syscall(&self, _: u16) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub(super) fn op_rnd(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(super) fn op_set_delay_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(super) fn op_set_sound_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub(super) fn op_load_delay_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dump_registers`, `dump_memory_hex`, and `dump_screen` are never used
[INFO] [stdout]   --> machine/src/machine/debug.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  6 |     pub fn dump_registers(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn dump_memory_hex(&self, start: u16, length: u16) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn dump_screen(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/memory.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FONTS` is never used
[INFO] [stdout]  --> machine/src/memory.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const FONTS: [u8; 80] = [
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Memory` is never constructed
[INFO] [stdout]   --> machine/src/memory.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Memory {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> machine/src/memory.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Memory {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn read(&self, addr: u16) -> Result<u8> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn write(&mut self, addr: u16, value: u8) -> Result<()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn write_word(&mut self, addr: u16, value: u16) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn read_range(&self, start: u16, length: u16) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn read_word(&self, addr: u16) -> Result<u16> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn load_fonts(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionMode` is never used
[INFO] [stdout]  --> machine/src/platform.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ExecutionMode {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Platform` is never used
[INFO] [stdout]   --> machine/src/platform.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Platform {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling machine v0.1.0 (/opt/rustwide/workdir/machine)
[INFO] [stdout] warning: unused import: `crate::error::Error`
[INFO] [stdout]  --> machine/src/display.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::Error;
[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: `std::slice::Windows`
[INFO] [stdout]  --> machine/src/display.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::slice::Windows;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Error`
[INFO] [stdout]  --> machine/src/keyboard.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RngCore` and `Rng`
[INFO] [stdout]  --> machine/src/machine.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::{Rng, RngCore, SeedableRng};
[INFO] [stdout]   |            ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> machine/src/machine/ops_memory.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::Memory`
[INFO] [stdout]  --> machine/src/machine/debug.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::memory::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> machine/src/instruction.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_keys`, `any_key_pressed`, and `set_key` are never used
[INFO] [stdout]   --> machine/src/keyboard.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Keyboard {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn get_keys(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn any_key_pressed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn set_key(&mut self, key: u8, pressed: bool) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timer_period` is never read
[INFO] [stdout]   --> machine/src/machine.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Machine {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     timer_period: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_seed`, `with_config`, `run_frame`, `calculate_instructions_for_frame`, and `update_timers` are never used
[INFO] [stdout]    --> machine/src/machine.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn with_config(cfg: config::Config) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn run_frame<P: Platform>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn update_timers(&mut self, delta: Duration) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> machine/src/machine.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl Machine {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn get_pc(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn get_sp(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn get_memory(&self) -> &Memory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn get_display(&self) -> &Display {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn get_delay_timer(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn get_sound_timer(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn get_index(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cpu_frequency` is never read
[INFO] [stdout]  --> machine/src/machine/config.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Config {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 3 |     pub quircks: Quircks,
[INFO] [stdout] 4 |     pub cpu_frequency: u16,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dump_registers` and `dump_memory_hex` are never used
[INFO] [stdout]   --> machine/src/machine/debug.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Machine {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout]  6 |     pub fn dump_registers(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn dump_memory_hex(&self, start: u16, length: u16) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionMode` is never used
[INFO] [stdout]  --> machine/src/platform.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ExecutionMode {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Platform` is never used
[INFO] [stdout]   --> machine/src/platform.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Platform {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.99s
[INFO] running `Command { std: "docker" "inspect" "5a66a78b281ecc5a9dd28cea9c62bed94852f2954bafde745827835f13a87e36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a66a78b281ecc5a9dd28cea9c62bed94852f2954bafde745827835f13a87e36", kill_on_drop: false }`
[INFO] [stdout] 5a66a78b281ecc5a9dd28cea9c62bed94852f2954bafde745827835f13a87e36
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] cd6928196fd05736d62596b4cf91743330698a7bcb2fd4a227914195a1f4a938
[INFO] running `Command { std: "docker" "start" "-a" "cd6928196fd05736d62596b4cf91743330698a7bcb2fd4a227914195a1f4a938", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: unused import: `crate::error::Error`
[INFO] [stderr]  --> machine/src/display.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::error::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::slice::Windows`
[INFO] [stderr]  --> machine/src/display.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::slice::Windows;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::error::Error`
[INFO] [stderr]  --> machine/src/keyboard.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::error::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `RngCore` and `Rng`
[INFO] [stderr]  --> machine/src/machine.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | use rand::{Rng, RngCore, SeedableRng};
[INFO] [stderr]   |            ^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::iter`
[INFO] [stderr]  --> machine/src/machine/ops_memory.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::iter;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::memory::Memory`
[INFO] [stderr]  --> machine/src/machine/debug.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::memory::Memory;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Display` is never constructed
[INFO] [stderr]  --> machine/src/display.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Display {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> machine/src/display.rs:13:12
[INFO] [stderr]     |
[INFO] [stderr]  12 | impl Display {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  13 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  24 |     pub fn height(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  28 |     pub fn width(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  32 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  36 |     pub fn get_pixel(&self, x: u8, y: u8) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  47 |     pub fn draw_sprite(&mut self, x: u8, y: u8, sprite: &[u8]) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  80 |     fn set_pixel(&mut self, x: u8, y: u8, value: bool) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  93 |     fn toggle_pixel(&mut self, x: u8, y: u8) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     fn pixel_to_bit_offset(&self, x: u8, y: u8) -> (usize, usize) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     fn alloc_framebuffer(height: u8, width: u8) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/instruction.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Keyboard` is never constructed
[INFO] [stderr]  --> machine/src/keyboard.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct Keyboard(u16);
[INFO] [stderr]   |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> machine/src/keyboard.rs:6:12
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl Keyboard {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr]  6 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 10 |     pub fn is_key_pressed(&self, key: u8) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn get_keys(&self) -> u16 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn any_key_pressed(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn clear_all_keys(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn set_key(&mut self, key: u8, pressed: bool) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn get_first_pressed_key(&self) -> Option<u8> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]   --> machine/src/machine.rs:11:6
[INFO] [stderr]    |
[INFO] [stderr] 11 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]    |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Machine` is never constructed
[INFO] [stderr]   --> machine/src/machine.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct Machine {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> machine/src/machine.rs:47:12
[INFO] [stderr]     |
[INFO] [stderr]  46 | impl Machine {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  47 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  72 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  78 |     pub fn with_config(cfg: config::Config) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  87 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn run_frame<P: Platform>(
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub fn step(&mut self) -> Result<bool> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn load_program(&mut self, program: Vec<u16>) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 166 |     fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     fn update_timers(&mut self, delta: Duration) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> machine/src/machine.rs:194:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | impl Machine {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] 194 |     pub fn get_registers(&self) -> &[u8] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn get_pc(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub fn get_sp(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     pub fn get_memory(&self) -> &Memory {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn get_display(&self) -> &Display {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 214 |     pub fn get_delay_timer(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     pub fn get_sound_timer(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 222 |     pub fn get_index(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `exec` is never used
[INFO] [stderr]    --> machine/src/machine.rs:228:8
[INFO] [stderr]     |
[INFO] [stderr] 227 | impl Machine {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] 228 |     fn exec(&mut self, instruction: Instruction) -> Result<()> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Config` is never constructed
[INFO] [stderr]  --> machine/src/machine/config.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct Config {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Quircks` is never constructed
[INFO] [stderr]  --> machine/src/machine/quircks.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct Quircks {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/machine/ops_alu.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> machine/src/machine/ops_alu.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  7 |     pub(super) fn op_add_immediate(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 14 |     pub(super) fn op_add(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub(super) fn op_subtract(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub(super) fn op_subtract_negate(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub(super) fn op_or(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub(super) fn op_and(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     pub(super) fn op_xor(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub(super) fn op_shift_right(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub(super) fn op_shift_left(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/machine/ops_control.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> machine/src/machine/ops_control.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  7 |     pub(super) fn op_return(&mut self) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub(super) fn op_call(&mut self, addr: u16) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub(super) fn op_jump(&mut self, addr: u16) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub(super) fn op_jump_offset(&mut self, offset: u16) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub(super) fn op_skip_if_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub(super) fn op_skip_if_not_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub(super) fn op_skip_if_equal(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub(super) fn op_skip_if_not_equal(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/machine/ops_io.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `op_skip_if_key`, `op_skip_if_not_key`, `op_wait_for_key`, and `op_draw` are never used
[INFO] [stderr]   --> machine/src/machine/ops_io.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  7 |     pub(super) fn op_skip_if_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub(super) fn op_skip_if_not_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub(super) fn op_wait_for_key(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub(super) fn op_draw(&mut self, vx: u8, vy: u8, n: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/machine/ops_memory.rs:6:6
[INFO] [stderr]   |
[INFO] [stderr] 6 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `op_load_font`, `op_store_bcd`, `op_store_registers`, and `op_load_registers` are never used
[INFO] [stderr]   --> machine/src/machine/ops_memory.rs:9:19
[INFO] [stderr]    |
[INFO] [stderr]  8 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  9 |     pub(super) fn op_load_font(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub(super) fn op_store_bcd(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub(super) fn op_store_registers(&mut self, x: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub(super) fn op_load_registers(&mut self, x: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/machine/ops_register.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `op_set_immediate`, `op_set`, `op_set_index`, and `op_add_index` are never used
[INFO] [stderr]   --> machine/src/machine/ops_register.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  7 |     pub(super) fn op_set_immediate(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 12 |     pub(super) fn op_set(&mut self, vx: u8, vy: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub(super) fn op_set_index(&mut self, addr: u16) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub(super) fn op_add_index(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/machine/ops_system.rs:6:6
[INFO] [stderr]   |
[INFO] [stderr] 6 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `op_clear`, `op_syscall`, `op_rnd`, `op_set_delay_timer`, `op_set_sound_timer`, and `op_load_delay_timer` are never used
[INFO] [stderr]   --> machine/src/machine/ops_system.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr] 10 |     pub(super) fn op_clear(&mut self) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub(super) fn op_syscall(&self, _: u16) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub(super) fn op_rnd(&mut self, vx: u8, kk: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub(super) fn op_set_delay_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub(super) fn op_set_sound_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub(super) fn op_load_delay_timer(&mut self, vx: u8) -> Result<()> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `dump_registers`, `dump_memory_hex`, and `dump_screen` are never used
[INFO] [stderr]   --> machine/src/machine/debug.rs:6:12
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  6 |     pub fn dump_registers(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn dump_memory_hex(&self, start: u16, length: u16) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn dump_screen(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/memory.rs:2:6
[INFO] [stderr]   |
[INFO] [stderr] 2 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FONTS` is never used
[INFO] [stderr]  --> machine/src/memory.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const FONTS: [u8; 80] = [
[INFO] [stderr]   |       ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Memory` is never constructed
[INFO] [stderr]   --> machine/src/memory.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct Memory {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> machine/src/memory.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl Memory {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 28 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn read(&self, addr: u16) -> Result<u8> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn write(&mut self, addr: u16, value: u8) -> Result<()> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn write_word(&mut self, addr: u16, value: u16) -> Result<()> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub fn read_range(&self, start: u16, length: u16) -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn read_word(&self, addr: u16) -> Result<u16> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 88 |     fn load_fonts(&mut self) {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ExecutionMode` is never used
[INFO] [stderr]  --> machine/src/platform.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum ExecutionMode {
[INFO] [stderr]   |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Platform` is never used
[INFO] [stderr]   --> machine/src/platform.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait Platform {
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]  --> machine/src/instruction.rs:3:6
[INFO] [stderr]   |
[INFO] [stderr] 3 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_keys`, `any_key_pressed`, and `set_key` are never used
[INFO] [stderr]   --> machine/src/keyboard.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl Keyboard {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn get_keys(&self) -> u16 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn any_key_pressed(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn set_key(&mut self, key: u8, pressed: bool) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `timer_period` is never read
[INFO] [stderr]   --> machine/src/machine.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct Machine {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 42 |     timer_period: Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_seed`, `with_config`, `run_frame`, `calculate_instructions_for_frame`, and `update_timers` are never used
[INFO] [stderr]    --> machine/src/machine.rs:72:12
[INFO] [stderr]     |
[INFO] [stderr]  46 | impl Machine {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  72 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  78 |     pub fn with_config(cfg: config::Config) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn run_frame<P: Platform>(
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 166 |     fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     fn update_timers(&mut self, delta: Duration) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> machine/src/machine.rs:198:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | impl Machine {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn get_pc(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub fn get_sp(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     pub fn get_memory(&self) -> &Memory {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn get_display(&self) -> &Display {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 214 |     pub fn get_delay_timer(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     pub fn get_sound_timer(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 222 |     pub fn get_index(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `cpu_frequency` is never read
[INFO] [stderr]  --> machine/src/machine/config.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct Config {
[INFO] [stderr]   |            ------ field in this struct
[INFO] [stderr] 3 |     pub quircks: Quircks,
[INFO] [stderr] 4 |     pub cpu_frequency: u16,
[INFO] [stderr]   |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `dump_registers` and `dump_memory_hex` are never used
[INFO] [stderr]   --> machine/src/machine/debug.rs:6:12
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl Machine {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr]  6 |     pub fn dump_registers(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn dump_memory_hex(&self, start: u16, length: u16) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `machine` (lib) generated 37 warnings (run `cargo fix --lib -p machine` to apply 6 suggestions)
[INFO] [stderr] warning: `machine` (lib test) generated 15 warnings (8 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/machine-043d07baf25f5c0e)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test display::test::test_get_pixel ... ok
[INFO] [stdout] test instruction::decoder::nibbles::test_nibbles ... ok
[INFO] [stdout] test tests::it_works ... ok
[INFO] [stdout] test instruction::decoder::nibbles::test_decode ... ok
[INFO] [stdout] test display::test::test_toggle_pixel ... ok
[INFO] [stdout] test instruction::encoder::test::test_encode ... ok
[INFO] [stdout] test display::test::test_pixel_to_bit_offset ... ok
[INFO] [stdout] test display::test::test_set_pixel ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests machine
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cd6928196fd05736d62596b4cf91743330698a7bcb2fd4a227914195a1f4a938", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd6928196fd05736d62596b4cf91743330698a7bcb2fd4a227914195a1f4a938", kill_on_drop: false }`
[INFO] [stdout] cd6928196fd05736d62596b4cf91743330698a7bcb2fd4a227914195a1f4a938
