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