[INFO] cloning repository https://github.com/TamirBO/rustbandicoot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TamirBO/rustbandicoot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTamirBO%2Frustbandicoot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTamirBO%2Frustbandicoot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac18a390647f604859045897e9e467b792390bc0
[INFO] checking TamirBO/rustbandicoot against 416264364aa47959f5827723e1d7dabc95d0744b for pr-162242
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTamirBO%2Frustbandicoot" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/TamirBO/rustbandicoot
[INFO] finished tweaking git repo https://github.com/TamirBO/rustbandicoot
[INFO] tweaked toml for git repo https://github.com/TamirBO/rustbandicoot written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TamirBO/rustbandicoot on toolchain 416264364aa47959f5827723e1d7dabc95d0744b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+416264364aa47959f5827723e1d7dabc95d0744b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TamirBO/rustbandicoot 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" "+416264364aa47959f5827723e1d7dabc95d0744b" "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-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f
[INFO] running `Command { std: "docker" "start" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f" "/opt/rustwide/cargo-home/bin/cargo" "+416264364aa47959f5827723e1d7dabc95d0744b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f" "/opt/rustwide/cargo-home/bin/cargo" "+416264364aa47959f5827723e1d7dabc95d0744b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", 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.170
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]     Checking log v0.4.26
[INFO] [stderr]     Checking once_cell v1.20.3
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]     Checking libloading v0.8.6
[INFO] [stderr]    Compiling wayland-sys v0.31.6
[INFO] [stderr]    Compiling xml-rs v0.8.25
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling wayland-client v0.31.8
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]     Checking bytemuck v1.22.0
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking cursor-icon v1.1.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking xkeysym v0.2.1
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling quick-xml v0.37.2
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]     Checking as-raw-xcb-connection v1.0.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking chlorine v1.0.13
[INFO] [stderr]     Checking miniz_oxide v0.8.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]    Compiling glium v0.34.0
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling quote v1.0.39
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]    Compiling syn v2.0.99
[INFO] [stderr]    Compiling wayland-scanner v0.31.6
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking takeable-option v0.5.0
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling cc v1.2.16
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]    Compiling wayland-backend v0.3.8
[INFO] [stderr]    Compiling imgui-sys v0.12.0
[INFO] [stderr]    Compiling modular-bitfield-impl v0.11.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking modular-bitfield v0.11.2
[INFO] [stderr]     Checking backtrace v0.3.74
[INFO] [stderr]     Checking ps v0.1.0 (/opt/rustwide/workdir/ps)
[INFO] [stdout] warning: unused import: `mipsr3000::Cpu`
[INFO] [stdout]  --> ps/src/cpu/cop0.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{mipsr3000::Cpu, utils::cop0_register_name};
[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: `log::warn`
[INFO] [stdout]  --> ps/src/cpu/cop0.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::warn;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RAM_END` and `RAM_START`
[INFO] [stdout]  --> ps/src/cpu/mipsr3000.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::map::{RAM_END, RAM_START};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::instruction::Operation::RType`
[INFO] [stdout]  --> ps/src/cpu/mipsr3000.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::cpu::instruction::Operation::RType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::btree_map::Values`
[INFO] [stdout]  --> ps/src/cpu/mipsr3000.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::btree_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> ps/src/cpu/mipsr3000.rs:382:21
[INFO] [stdout]     |
[INFO] [stdout] 382 |         ps.cpu.hi = (rs % rt);
[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] 382 -         ps.cpu.hi = (rs % rt);
[INFO] [stdout] 382 +         ps.cpu.hi = rs % rt;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> ps/src/cpu/mipsr3000.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |         ps.cpu.lo = (rs / rt);
[INFO] [stdout]     |                     ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -         ps.cpu.lo = (rs / rt);
[INFO] [stdout] 383 +         ps.cpu.lo = rs / rt;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Expansion_Region_2` should have an upper camel case name
[INFO] [stdout]  --> ps/src/expansion_region2.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Expansion_Region_2 {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ExpansionRegion2`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::map`
[INFO] [stdout]  --> ps/src/irq/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::map;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> ps/src/ram.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> ps/src/ram.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CDROM`, `GPU`, `MDECIN`, `MDECOUT`, `OTC`, `PIO`, `Registers`, and `SPU`
[INFO] [stdout]  --> ps/src/dma/mod.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dma::channel::DMAPort::{CDROM, GPU, MDECIN, MDECOUT, OTC, PIO, Registers, SPU};
[INFO] [stdout]   |                                    ^^^^^  ^^^  ^^^^^^  ^^^^^^^  ^^^  ^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DMAPort`
[INFO] [stdout]  --> ps/src/dma/mod.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::dma::channel::{Channel, DMAPort};
[INFO] [stdout]   |                                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mipsr3000::Cpu`
[INFO] [stdout]  --> ps/src/cpu/cop0.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{mipsr3000::Cpu, utils::cop0_register_name};
[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: `log::warn`
[INFO] [stdout]  --> ps/src/cpu/cop0.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::warn;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RAM_END` and `RAM_START`
[INFO] [stdout]  --> ps/src/cpu/mipsr3000.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::map::{RAM_END, RAM_START};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::instruction::Operation::RType`
[INFO] [stdout]  --> ps/src/cpu/mipsr3000.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::cpu::instruction::Operation::RType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::btree_map::Values`
[INFO] [stdout]  --> ps/src/cpu/mipsr3000.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::btree_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> ps/src/cpu/mipsr3000.rs:382:21
[INFO] [stdout]     |
[INFO] [stdout] 382 |         ps.cpu.hi = (rs % rt);
[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] 382 -         ps.cpu.hi = (rs % rt);
[INFO] [stdout] 382 +         ps.cpu.hi = rs % rt;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> ps/src/cpu/mipsr3000.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |         ps.cpu.lo = (rs / rt);
[INFO] [stdout]     |                     ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 383 -         ps.cpu.lo = (rs / rt);
[INFO] [stdout] 383 +         ps.cpu.lo = rs / rt;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Expansion_Region_2` should have an upper camel case name
[INFO] [stdout]  --> ps/src/expansion_region2.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Expansion_Region_2 {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ExpansionRegion2`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::map`
[INFO] [stdout]  --> ps/src/irq/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::map;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> ps/src/ram.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> ps/src/ram.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CDROM`, `GPU`, `MDECIN`, `MDECOUT`, `OTC`, `PIO`, `Registers`, and `SPU`
[INFO] [stdout]  --> ps/src/dma/mod.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::dma::channel::DMAPort::{CDROM, GPU, MDECIN, MDECOUT, OTC, PIO, Registers, SPU};
[INFO] [stdout]   |                                    ^^^^^  ^^^  ^^^^^^  ^^^^^^^  ^^^  ^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DMAPort`
[INFO] [stdout]  --> ps/src/dma/mod.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::dma::channel::{Channel, DMAPort};
[INFO] [stdout]   |                                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]   --> ps/src/cpu/instruction.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fmt::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> ps/src/expansion_region2.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn read_byte(&self, addr: u32) -> u8 {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]   --> ps/src/ram.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |             let mut line: String;
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]   --> ps/src/dma/mod.rs:43:24
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 0x8 => self.channels[channel].control_register.register,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]    |
[INFO] [stdout]    = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ps/src/dma/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub unsafe fn read32(&self, addr: u32) -> u32 {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]   --> ps/src/dma/mod.rs:48:24
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 0x0 => self.control.register,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]    |
[INFO] [stdout]    = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]   --> ps/src/dma/mod.rs:49:24
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 0x4 => self.interrupt.register,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]    |
[INFO] [stdout]    = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> ps/src/dma/mod.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let offset = addr - DMA_REGISTERS_START;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXECODE_MASK` is never used
[INFO] [stdout]  --> ps/src/cpu/cop0.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const EXECODE_MASK: u32 = 0b00000000000000000000000001111100;
[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 variants are never constructed
[INFO] [stdout]    --> ps/src/cpu/cop0.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub enum Exception {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 108 |     //External Interrupt
[INFO] [stdout] 109 |     Interrupt = 0x0,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 110 |     //TLB Modification Exception
[INFO] [stdout] 111 |     MOD = 0x1,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 112 |     //TLB miss Exception (Load or instruction fetch)
[INFO] [stdout] 113 |     TLBL = 0x2,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 114 |     //TLB miss exception (Store)
[INFO] [stdout] 115 |     TLBS = 0x3,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     BusErrorFetch = 0x6,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 122 |     //Bus Error Exception (for data Load or Store)
[INFO] [stdout] 123 |     BusErrorLoad = 0x7,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     ReservedInstruction = 0xA,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 |     //Co-Processor Unusable Exception
[INFO] [stdout] 131 |     CoProcessorUnusable = 0xB,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_MASK` is never used
[INFO] [stdout]  --> ps/src/cpu/instruction.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const OP_MASK: u32 = 0b11111100000000000000000000000000;
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TARGET_MASK` is never used
[INFO] [stdout]   --> ps/src/cpu/instruction.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const TARGET_MASK: u32 = 0b00111111111111111111111111111111;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `gte` is never read
[INFO] [stdout]   --> ps/src/cpu/mipsr3000.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Cpu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     gte: [u32; 64],
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Cpu` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Interrupt` is never used
[INFO] [stdout]  --> ps/src/irq/mod.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Interrupt {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | / #[derive(Copy, Clone)]
[INFO] [stdout]  99 | | pub struct InterruptRegisterBits {
[INFO] [stdout]     | |________________________________- methods in this implementation
[INFO] [stdout] 100 |       //I don't know what it does and no one seems to implement it.
[INFO] [stdout] 101 |       controls_channel: B7,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |       force_irq: bool,
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |       enable_channel0_mdecin: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |       enable_channel1_mdecout: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |       enable_channel2_gpu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 |       enable_channel3_cdrom: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 |       enable_channel4_spu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 |       enable_channel5_pio: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 |       enable_channel6_otc: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 |       master_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |       flag_channel0_mdecin: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |       flag_channel1_mdecout: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |       flag_channel2_gpu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 |       flag_channel3_cdrom: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 |       flag_channel4_spu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 124 |       flag_channel5_pio: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 125 |       flag_channel6_otc: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 126 |       master_interrupt_flag: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bits` is never read
[INFO] [stdout]    --> ps/src/dma/mod.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | union InterruptRegister {
[INFO] [stdout]     |       ----------------- field in this union
[INFO] [stdout] 130 |     bits: InterruptRegisterBits,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | // #[derive(Copy, Clone)]
[INFO] [stdout] 136 | || struct ControlRegisterBits {
[INFO] [stdout]     | ||__________________________- associated function in this implementation
[INFO] [stdout] 137 | |      mdecin_channel0_priority: B3,
[INFO] [stdout] 138 | |      mdecin_channel0_enable: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 160 | |      cpu_enable: bool,
[INFO] [stdout] 161 | |  }
[INFO] [stdout]     | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `into_bytes` and `from_bytes` are never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | // #[derive(Copy, Clone)]
[INFO] [stdout] 136 | || struct ControlRegisterBits {
[INFO] [stdout]     | ||__________________________- associated items in this implementation
[INFO] [stdout] 137 | |      mdecin_channel0_priority: B3,
[INFO] [stdout] 138 | |      mdecin_channel0_enable: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 160 | |      cpu_enable: bool,
[INFO] [stdout] 161 | |  }
[INFO] [stdout]     | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | / #[derive(Copy, Clone)]
[INFO] [stdout] 136 | | struct ControlRegisterBits {
[INFO] [stdout]     | |__________________________- methods in this implementation
[INFO] [stdout] 137 |       mdecin_channel0_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 |       mdecin_channel0_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 |
[INFO] [stdout] 140 |       mdecout_channel1_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 141 |       mdecout_channel1_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 142 |
[INFO] [stdout] 143 |       gpu_channel2_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 144 |       gpu_channel2_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 |
[INFO] [stdout] 146 |       cdrom_channel3_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 |       cdrom_channel3_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 |
[INFO] [stdout] 149 |       spu_channel4_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 150 |       spu_channel4_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 151 |
[INFO] [stdout] 152 |       pio_channel5_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 153 |       pio_channel5_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 154 |
[INFO] [stdout] 155 |       otc_channel6_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 156 |       otc_channel6_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 157 |
[INFO] [stdout] 158 |       cpu_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bits` is never read
[INFO] [stdout]    --> ps/src/dma/mod.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | union ControlRegister {
[INFO] [stdout]     |       --------------- field in this union
[INFO] [stdout] 164 |     bits: ControlRegisterBits,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> ps/src/dma/channel.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | / #[derive(Copy, Clone)]
[INFO] [stdout] 39 | | pub struct ChannelControlBits {
[INFO] [stdout]    | |_____________________________- methods in this implementation
[INFO] [stdout] 40 |       // 0 - device to RAM 1 - RAM to device
[INFO] [stdout] 41 |       transfer_direction: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |       // 0 - Increase 1 - Decrease
[INFO] [stdout] 43 |       address_increment_or_decrement: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |       chopping_enabled: bool,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |       transfer_mode: B2,
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |       chopping_dma_window_size: B3,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |       chopping_cpu_window_size: B3,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |       start_transfer: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |       start_trigger: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `GPO` and `GP1` are never read
[INFO] [stdout]  --> ps/src/gpu/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct GPU {
[INFO] [stdout]   |            --- fields in this struct
[INFO] [stdout] 4 |     GPO: u32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 5 |     GP1: u32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `GPO` should have a snake case name
[INFO] [stdout]  --> ps/src/gpu/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     GPO: u32,
[INFO] [stdout]   |     ^^^ help: convert the identifier to snake case: `gpo`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `GP1` should have a snake case name
[INFO] [stdout]  --> ps/src/gpu/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     GP1: u32,
[INFO] [stdout]   |     ^^^ help: convert the identifier to snake case: `gp1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]   --> ps/src/cpu/instruction.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fmt::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Checking disassembler v0.1.0 (/opt/rustwide/workdir/disassembler)
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> ps/src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[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: `env`
[INFO] [stdout]  --> ps/src/main.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{env, fs};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> ps/src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[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: `env`
[INFO] [stdout]  --> ps/src/main.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{env, fs};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             writeln!(writer, "{}: 0x{:08X}", recorded_count, current_pc);
[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] 41 |             let _ = writeln!(writer, "{}: 0x{:08X}", recorded_count, current_pc);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     writeln!(writer, "\n------ EXECUTION SUMMARY ------");
[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] 58 |     let _ = writeln!(writer, "\n------ EXECUTION SUMMARY ------");
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     writeln!(writer, "Instructions executed until target: {}", instruction_count - recorded_count);
[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] 59 |     let _ = writeln!(writer, "Instructions executed until target: {}", instruction_count - recorded_count);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     writeln!(writer, "Instructions recorded after target: {}", recorded_count);
[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] 60 |     let _ = writeln!(writer, "Instructions recorded after target: {}", recorded_count);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     writeln!(writer, "Unique PC addresses visited after target: {}", visited_pcs.len());
[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] 61 |     let _ = writeln!(writer, "Unique PC addresses visited after target: {}", visited_pcs.len());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> ps/src/expansion_region2.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn read_byte(&self, addr: u32) -> u8 {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]   --> ps/src/ram.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |             let mut line: String;
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]   --> ps/src/dma/mod.rs:43:24
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 0x8 => self.channels[channel].control_register.register,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]    |
[INFO] [stdout]    = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ps/src/dma/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub unsafe fn read32(&self, addr: u32) -> u32 {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]   --> ps/src/dma/mod.rs:48:24
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 0x0 => self.control.register,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]    |
[INFO] [stdout]    = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]   --> ps/src/dma/mod.rs:49:24
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 0x4 => self.interrupt.register,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]    |
[INFO] [stdout]    = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> ps/src/dma/mod.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let offset = addr - DMA_REGISTERS_START;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             writeln!(writer, "{}: 0x{:08X}", recorded_count, current_pc);
[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] 41 |             let _ = writeln!(writer, "{}: 0x{:08X}", recorded_count, current_pc);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     writeln!(writer, "\n------ EXECUTION SUMMARY ------");
[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] 58 |     let _ = writeln!(writer, "\n------ EXECUTION SUMMARY ------");
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     writeln!(writer, "Instructions executed until target: {}", instruction_count - recorded_count);
[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] 59 |     let _ = writeln!(writer, "Instructions executed until target: {}", instruction_count - recorded_count);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     writeln!(writer, "Instructions recorded after target: {}", recorded_count);
[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] 60 |     let _ = writeln!(writer, "Instructions recorded after target: {}", recorded_count);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> ps/src/main.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     writeln!(writer, "Unique PC addresses visited after target: {}", visited_pcs.len());
[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] 61 |     let _ = writeln!(writer, "Unique PC addresses visited after target: {}", visited_pcs.len());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> disassembler/src/main.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut bin_file = File::open("./binaries/SCPH1001.BIN").unwrap();
[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 does not need to be mutable
[INFO] [stdout]  --> disassembler/src/main.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut bin_file = File::open("./binaries/SCPH1001.BIN").unwrap();
[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: constant `EXECODE_MASK` is never used
[INFO] [stdout]  --> ps/src/cpu/cop0.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const EXECODE_MASK: u32 = 0b00000000000000000000000001111100;
[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 variants are never constructed
[INFO] [stdout]    --> ps/src/cpu/cop0.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub enum Exception {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 108 |     //External Interrupt
[INFO] [stdout] 109 |     Interrupt = 0x0,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 110 |     //TLB Modification Exception
[INFO] [stdout] 111 |     MOD = 0x1,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 112 |     //TLB miss Exception (Load or instruction fetch)
[INFO] [stdout] 113 |     TLBL = 0x2,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 114 |     //TLB miss exception (Store)
[INFO] [stdout] 115 |     TLBS = 0x3,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     BusErrorFetch = 0x6,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 122 |     //Bus Error Exception (for data Load or Store)
[INFO] [stdout] 123 |     BusErrorLoad = 0x7,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     ReservedInstruction = 0xA,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 |     //Co-Processor Unusable Exception
[INFO] [stdout] 131 |     CoProcessorUnusable = 0xB,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_MASK` is never used
[INFO] [stdout]  --> ps/src/cpu/instruction.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const OP_MASK: u32 = 0b11111100000000000000000000000000;
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TARGET_MASK` is never used
[INFO] [stdout]   --> ps/src/cpu/instruction.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const TARGET_MASK: u32 = 0b00111111111111111111111111111111;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `gte` is never read
[INFO] [stdout]   --> ps/src/cpu/mipsr3000.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Cpu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     gte: [u32; 64],
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Cpu` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Interrupt` is never used
[INFO] [stdout]  --> ps/src/irq/mod.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum Interrupt {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | / #[derive(Copy, Clone)]
[INFO] [stdout]  99 | | pub struct InterruptRegisterBits {
[INFO] [stdout]     | |________________________________- methods in this implementation
[INFO] [stdout] 100 |       //I don't know what it does and no one seems to implement it.
[INFO] [stdout] 101 |       controls_channel: B7,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |       force_irq: bool,
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |       enable_channel0_mdecin: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |       enable_channel1_mdecout: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |       enable_channel2_gpu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 |       enable_channel3_cdrom: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 |       enable_channel4_spu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 |       enable_channel5_pio: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 |       enable_channel6_otc: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 |       master_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |       flag_channel0_mdecin: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |       flag_channel1_mdecout: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |       flag_channel2_gpu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 |       flag_channel3_cdrom: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 |       flag_channel4_spu: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 124 |       flag_channel5_pio: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 125 |       flag_channel6_otc: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 126 |       master_interrupt_flag: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bits` is never read
[INFO] [stdout]    --> ps/src/dma/mod.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | union InterruptRegister {
[INFO] [stdout]     |       ----------------- field in this union
[INFO] [stdout] 130 |     bits: InterruptRegisterBits,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | // #[derive(Copy, Clone)]
[INFO] [stdout] 136 | || struct ControlRegisterBits {
[INFO] [stdout]     | ||__________________________- associated function in this implementation
[INFO] [stdout] 137 | |      mdecin_channel0_priority: B3,
[INFO] [stdout] 138 | |      mdecin_channel0_enable: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 160 | |      cpu_enable: bool,
[INFO] [stdout] 161 | |  }
[INFO] [stdout]     | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `into_bytes` and `from_bytes` are never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | // #[derive(Copy, Clone)]
[INFO] [stdout] 136 | || struct ControlRegisterBits {
[INFO] [stdout]     | ||__________________________- associated items in this implementation
[INFO] [stdout] 137 | |      mdecin_channel0_priority: B3,
[INFO] [stdout] 138 | |      mdecin_channel0_enable: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 160 | |      cpu_enable: bool,
[INFO] [stdout] 161 | |  }
[INFO] [stdout]     | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> ps/src/dma/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | / #[derive(Copy, Clone)]
[INFO] [stdout] 136 | | struct ControlRegisterBits {
[INFO] [stdout]     | |__________________________- methods in this implementation
[INFO] [stdout] 137 |       mdecin_channel0_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 |       mdecin_channel0_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 |
[INFO] [stdout] 140 |       mdecout_channel1_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 141 |       mdecout_channel1_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 142 |
[INFO] [stdout] 143 |       gpu_channel2_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 144 |       gpu_channel2_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 |
[INFO] [stdout] 146 |       cdrom_channel3_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 |       cdrom_channel3_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 |
[INFO] [stdout] 149 |       spu_channel4_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 150 |       spu_channel4_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 151 |
[INFO] [stdout] 152 |       pio_channel5_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 153 |       pio_channel5_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 154 |
[INFO] [stdout] 155 |       otc_channel6_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 156 |       otc_channel6_enable: bool,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 157 |
[INFO] [stdout] 158 |       cpu_priority: B3,
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bits` is never read
[INFO] [stdout]    --> ps/src/dma/mod.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | union ControlRegister {
[INFO] [stdout]     |       --------------- field in this union
[INFO] [stdout] 164 |     bits: ControlRegisterBits,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> ps/src/dma/channel.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | / #[derive(Copy, Clone)]
[INFO] [stdout] 39 | | pub struct ChannelControlBits {
[INFO] [stdout]    | |_____________________________- methods in this implementation
[INFO] [stdout] 40 |       // 0 - device to RAM 1 - RAM to device
[INFO] [stdout] 41 |       transfer_direction: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |       // 0 - Increase 1 - Decrease
[INFO] [stdout] 43 |       address_increment_or_decrement: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |       chopping_enabled: bool,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |       transfer_mode: B2,
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |       chopping_dma_window_size: B3,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |       chopping_cpu_window_size: B3,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |       start_transfer: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |       start_trigger: B1,
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `GPO` and `GP1` are never read
[INFO] [stdout]  --> ps/src/gpu/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct GPU {
[INFO] [stdout]   |            --- fields in this struct
[INFO] [stdout] 4 |     GPO: u32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 5 |     GP1: u32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `GPO` should have a snake case name
[INFO] [stdout]  --> ps/src/gpu/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     GPO: u32,
[INFO] [stdout]   |     ^^^ help: convert the identifier to snake case: `gpo`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `GP1` should have a snake case name
[INFO] [stdout]  --> ps/src/gpu/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     GP1: u32,
[INFO] [stdout]   |     ^^^ help: convert the identifier to snake case: `gp1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Checking polling v3.7.4
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking wayland-cursor v0.31.8
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking imgui v0.12.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking imgui-glium-renderer v0.12.0
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking imgui-winit-support v0.12.0
[INFO] [stderr]     Checking debugger v0.1.0 (/opt/rustwide/workdir/debugger)
[INFO] [stdout] warning: unused imports: `JTypeOperation` and `Operation`
[INFO] [stdout]  --> debugger/src/ui.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 |     instruction::{self, JTypeOperation, Operation},
[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 variable: `renderer`
[INFO] [stdout]   --> debugger/src/ui.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(renderer: &mut Renderer, display: &mut Display<WindowSurface>) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display`
[INFO] [stdout]   --> debugger/src/ui.rs:30:41
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(renderer: &mut Renderer, display: &mut Display<WindowSurface>) -> Self {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `renderer`
[INFO] [stdout]   --> debugger/src/ui.rs:62:62
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render_ui(&mut self, emu: &mut Emulator, ui: &Ui, renderer: &mut Renderer) {
[INFO] [stdout]    |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]   --> debugger/src/ui.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let style = ui.push_style_var(imgui::StyleVar::ItemInnerSpacing([0.0, 0.0]));
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> debugger/src/ui.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DebuggerUI {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     breakpoint_address_input: String,
[INFO] [stdout] 17 |     cpu_window: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 18 |     code_window: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     watch_window: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 23 |     watch_entries: Vec<WatchEntry>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     new_watch_address: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     new_watch_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     selected_format: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_irq_info` is never used
[INFO] [stdout]    --> debugger/src/ui.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl DebuggerUI {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 392 |     fn display_irq_info(&self, ui: &Ui, register_name: &str, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `address`, `name`, and `format` are never read
[INFO] [stdout]    --> debugger/src/ui.rs:419:5
[INFO] [stdout]     |
[INFO] [stdout] 418 | struct WatchEntry {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] 419 |     address: u32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 420 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 421 |     format: WatchFormat,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Decimal` and `Binary` are never constructed
[INFO] [stdout]    --> debugger/src/ui.rs:427:5
[INFO] [stdout]     |
[INFO] [stdout] 425 | enum WatchFormat {
[INFO] [stdout]     |      ----------- variants in this enum
[INFO] [stdout] 426 |     Hex,
[INFO] [stdout] 427 |     Decimal,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 428 |     Binary,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `format_value` is never used
[INFO] [stdout]    --> debugger/src/ui.rs:432:8
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl WatchFormat {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 432 |     fn format_value(&self, value: u32) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JTypeOperation` and `Operation`
[INFO] [stdout]  --> debugger/src/ui.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 |     instruction::{self, JTypeOperation, Operation},
[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 variable: `renderer`
[INFO] [stdout]   --> debugger/src/ui.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(renderer: &mut Renderer, display: &mut Display<WindowSurface>) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display`
[INFO] [stdout]   --> debugger/src/ui.rs:30:41
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(renderer: &mut Renderer, display: &mut Display<WindowSurface>) -> Self {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `renderer`
[INFO] [stdout]   --> debugger/src/ui.rs:62:62
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render_ui(&mut self, emu: &mut Emulator, ui: &Ui, renderer: &mut Renderer) {
[INFO] [stdout]    |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]   --> debugger/src/ui.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let style = ui.push_style_var(imgui::StyleVar::ItemInnerSpacing([0.0, 0.0]));
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> debugger/src/ui.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DebuggerUI {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     breakpoint_address_input: String,
[INFO] [stdout] 17 |     cpu_window: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 18 |     code_window: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     watch_window: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 23 |     watch_entries: Vec<WatchEntry>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     new_watch_address: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     new_watch_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     selected_format: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_irq_info` is never used
[INFO] [stdout]    --> debugger/src/ui.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl DebuggerUI {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 392 |     fn display_irq_info(&self, ui: &Ui, register_name: &str, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `address`, `name`, and `format` are never read
[INFO] [stdout]    --> debugger/src/ui.rs:419:5
[INFO] [stdout]     |
[INFO] [stdout] 418 | struct WatchEntry {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] 419 |     address: u32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 420 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 421 |     format: WatchFormat,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Decimal` and `Binary` are never constructed
[INFO] [stdout]    --> debugger/src/ui.rs:427:5
[INFO] [stdout]     |
[INFO] [stdout] 425 | enum WatchFormat {
[INFO] [stdout]     |      ----------- variants in this enum
[INFO] [stdout] 426 |     Hex,
[INFO] [stdout] 427 |     Decimal,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 428 |     Binary,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `format_value` is never used
[INFO] [stdout]    --> debugger/src/ui.rs:432:8
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl WatchFormat {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 432 |     fn format_value(&self, value: u32) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.10s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.31.3, glutin-winit v0.4.2, imgui-glium-renderer v0.12.0, winit v0.29.15
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f", kill_on_drop: false }`
[INFO] [stdout] 2f50585692880cde0afa173cd36797a9007e7e2cb78964b1fcf45529bf2cc87f
