[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 1.95.0 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTamirBO%2Frustbandicoot" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/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-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TamirBO/rustbandicoot on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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" "+1.95.0" "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] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded log v0.4.26 [INFO] [stderr] Downloaded quote v1.0.39 [INFO] [stderr] Downloaded wayland-cursor v0.31.8 [INFO] [stderr] Downloaded takeable-option v0.5.0 [INFO] [stderr] Downloaded redox_syscall v0.5.10 [INFO] [stderr] Downloaded chlorine v1.0.13 [INFO] [stderr] Downloaded mint v0.5.9 [INFO] [stderr] Downloaded imgui-winit-support v0.12.0 [INFO] [stderr] Downloaded bitflags v2.9.0 [INFO] [stderr] Downloaded bytemuck v1.22.0 [INFO] [stderr] Downloaded cc v1.2.16 [INFO] [stderr] Downloaded wayland-backend v0.3.8 [INFO] [stderr] Downloaded wayland-client v0.31.8 [INFO] [stderr] Downloaded imgui v0.12.0 [INFO] [stderr] Downloaded quick-xml v0.37.2 [INFO] [stderr] Downloaded winnow v0.7.3 [INFO] [stderr] Downloaded syn v2.0.99 [INFO] [stderr] Downloaded imgui-glium-renderer v0.12.0 [INFO] [stderr] Downloaded libc v0.2.170 [INFO] [stderr] Downloaded glium v0.34.0 [INFO] [stderr] Downloaded imgui-sys v0.12.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bc1319c325cebdcf6ade4af8fd9bc2f1b8381ddb9fc383f766309620ce36c77b [INFO] running `Command { std: "docker" "start" "-a" "bc1319c325cebdcf6ade4af8fd9bc2f1b8381ddb9fc383f766309620ce36c77b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bc1319c325cebdcf6ade4af8fd9bc2f1b8381ddb9fc383f766309620ce36c77b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc1319c325cebdcf6ade4af8fd9bc2f1b8381ddb9fc383f766309620ce36c77b", kill_on_drop: false }` [INFO] [stdout] bc1319c325cebdcf6ade4af8fd9bc2f1b8381ddb9fc383f766309620ce36c77b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8954933deeebfa72c90a08d00677f4739e2d15de57fe796d25b7cfcc87084f83 [INFO] running `Command { std: "docker" "start" "-a" "8954933deeebfa72c90a08d00677f4739e2d15de57fe796d25b7cfcc87084f83", 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 proc-macro2 v1.0.94 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling bitflags v2.9.0 [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 khronos_api v3.1.0 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling libloading v0.8.6 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling xml-rs v0.8.25 [INFO] [stderr] Compiling quick-xml v0.37.2 [INFO] [stderr] Compiling cfg_aliases v0.1.1 [INFO] [stderr] Compiling wayland-client v0.31.8 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling smithay-client-toolkit v0.18.1 [INFO] [stderr] Compiling dlib v0.5.2 [INFO] [stderr] Compiling xkeysym v0.2.1 [INFO] [stderr] Compiling cursor-icon v1.1.0 [INFO] [stderr] Compiling strict-num v0.1.1 [INFO] [stderr] Compiling xcursor v0.3.8 [INFO] [stderr] Compiling bytemuck v1.22.0 [INFO] [stderr] Compiling raw-window-handle v0.5.2 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling tiny-skia-path v0.11.4 [INFO] [stderr] Compiling glutin v0.31.3 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.8 [INFO] [stderr] Compiling winit v0.29.15 [INFO] [stderr] Compiling as-raw-xcb-connection v1.0.1 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling x11rb-protocol v0.13.1 [INFO] [stderr] Compiling mint v0.5.9 [INFO] [stderr] Compiling chlorine v1.0.13 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling wayland-sys v0.31.6 [INFO] [stderr] Compiling quote v1.0.39 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling miniz_oxide v0.8.5 [INFO] [stderr] Compiling syn v2.0.99 [INFO] [stderr] Compiling smol_str v0.2.2 [INFO] [stderr] Compiling wayland-scanner v0.31.6 [INFO] [stderr] Compiling tiny-skia v0.11.4 [INFO] [stderr] Compiling xkbcommon-dl v0.4.2 [INFO] [stderr] Compiling raw-window-handle v0.6.2 [INFO] [stderr] Compiling glutin-winit v0.4.2 [INFO] [stderr] Compiling takeable-option v0.5.0 [INFO] [stderr] Compiling glutin_egl_sys v0.6.0 [INFO] [stderr] Compiling glutin_glx_sys v0.5.0 [INFO] [stderr] Compiling glium v0.34.0 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling memmap2 v0.9.5 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling cc v1.2.16 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling owned_ttf_parser v0.25.0 [INFO] [stderr] Compiling ab_glyph v0.2.29 [INFO] [stderr] Compiling addr2line v0.24.2 [INFO] [stderr] Compiling modular-bitfield-impl v0.11.2 [INFO] [stderr] Compiling wayland-backend v0.3.8 [INFO] [stderr] Compiling imgui-sys v0.12.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling backtrace v0.3.74 [INFO] [stderr] Compiling polling v3.7.4 [INFO] [stderr] Compiling modular-bitfield v0.11.2 [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] [stderr] Compiling wayland-csd-frame v0.3.0 [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 [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 [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 [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] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling disassembler v0.1.0 (/opt/rustwide/workdir/disassembler) [INFO] [stderr] Compiling calloop v0.12.4 [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> ps/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `env` [INFO] [stdout] --> ps/src/main.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{env, fs}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> ps/src/main.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | writeln!(writer, "{}: 0x{:08X}", recorded_count, current_pc); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 41 | let _ = writeln!(writer, "{}: 0x{:08X}", recorded_count, current_pc); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> ps/src/main.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | writeln!(writer, "\n------ EXECUTION SUMMARY ------"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 58 | let _ = writeln!(writer, "\n------ EXECUTION SUMMARY ------"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> ps/src/main.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | writeln!(writer, "Instructions executed until target: {}", instruction_count - recorded_count); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 59 | let _ = writeln!(writer, "Instructions executed until target: {}", instruction_count - recorded_count); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> ps/src/main.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | writeln!(writer, "Instructions recorded after target: {}", recorded_count); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = writeln!(writer, "Instructions recorded after target: {}", recorded_count); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> ps/src/main.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | writeln!(writer, "Unique PC addresses visited after target: {}", visited_pcs.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 61 | let _ = writeln!(writer, "Unique PC addresses visited after target: {}", visited_pcs.len()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 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 wayland-protocols v0.31.2 [INFO] [stderr] Compiling calloop-wayland-source v0.2.0 [INFO] [stderr] Compiling wayland-cursor v0.31.8 [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 x11rb v0.13.1 [INFO] [stderr] Compiling imgui-glium-renderer v0.12.0 [INFO] [stderr] Compiling sctk-adwaita v0.8.3 [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) -> 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) -> 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, [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 1m 09s [INFO] running `Command { std: "docker" "inspect" "8954933deeebfa72c90a08d00677f4739e2d15de57fe796d25b7cfcc87084f83", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8954933deeebfa72c90a08d00677f4739e2d15de57fe796d25b7cfcc87084f83", kill_on_drop: false }` [INFO] [stdout] 8954933deeebfa72c90a08d00677f4739e2d15de57fe796d25b7cfcc87084f83 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3dd61c97fb9f60300c7117c359f83d537b9988cbb2730d7e786e8c3d7550b8e3 [INFO] running `Command { std: "docker" "start" "-a" "3dd61c97fb9f60300c7117c359f83d537b9988cbb2730d7e786e8c3d7550b8e3", 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 [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 [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 [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 ps v0.1.0 (/opt/rustwide/workdir/ps) [INFO] [stderr] Compiling disassembler v0.1.0 (/opt/rustwide/workdir/disassembler) [INFO] [stderr] Compiling debugger v0.1.0 (/opt/rustwide/workdir/debugger) [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 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 import: `std::path::Path` [INFO] [stdout] --> ps/src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `env` [INFO] [stdout] --> ps/src/main.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{env, fs}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `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 variable: `renderer` [INFO] [stdout] --> debugger/src/ui.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn new(renderer: &mut Renderer, display: &mut Display) -> 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) -> 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: 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: 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, [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: `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 [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 [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 [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] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.47s [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3dd61c97fb9f60300c7117c359f83d537b9988cbb2730d7e786e8c3d7550b8e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3dd61c97fb9f60300c7117c359f83d537b9988cbb2730d7e786e8c3d7550b8e3", kill_on_drop: false }` [INFO] [stdout] 3dd61c97fb9f60300c7117c359f83d537b9988cbb2730d7e786e8c3d7550b8e3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 5d2adb59f6cc56548d07a2f253399dad8f450227c0ab3cf525a8184a438c2e6c [INFO] running `Command { std: "docker" "start" "-a" "5d2adb59f6cc56548d07a2f253399dad8f450227c0ab3cf525a8184a438c2e6c", 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 [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 [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 [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: 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: `disassembler` (bin "disassembler" test) generated 1 warning (run `cargo fix --bin "disassembler" -p disassembler --tests` to apply 1 suggestion) [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) -> 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) -> 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, [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.22s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/debugger-6449e217014c4efb) [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-f5969fbb8262de54) [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/disassembler-dc38fa9bf61205b6) [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] [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-0d9bc3472f47f9b6) [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-4a5c443b8f132a11) [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" "5d2adb59f6cc56548d07a2f253399dad8f450227c0ab3cf525a8184a438c2e6c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d2adb59f6cc56548d07a2f253399dad8f450227c0ab3cf525a8184a438c2e6c", kill_on_drop: false }` [INFO] [stdout] 5d2adb59f6cc56548d07a2f253399dad8f450227c0ab3cf525a8184a438c2e6c