[INFO] cloning repository https://github.com/latortuga71/CoffeePot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/latortuga71/CoffeePot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatortuga71%2FCoffeePot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatortuga71%2FCoffeePot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1308637ff06d87b6bb47de3169d4f15efffd62e1
[INFO] testing latortuga71/CoffeePot against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatortuga71%2FCoffeePot" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/latortuga71/CoffeePot on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/latortuga71/CoffeePot
[INFO] finished tweaking git repo https://github.com/latortuga71/CoffeePot
[INFO] tweaked toml for git repo https://github.com/latortuga71/CoffeePot written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/latortuga71/CoffeePot 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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3b491118b184eae45b912086219dc400054037ed81bed12426150e88d96b5555
[INFO] running `Command { std: "docker" "start" "-a" "3b491118b184eae45b912086219dc400054037ed81bed12426150e88d96b5555", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b491118b184eae45b912086219dc400054037ed81bed12426150e88d96b5555", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b491118b184eae45b912086219dc400054037ed81bed12426150e88d96b5555", kill_on_drop: false }`
[INFO] [stdout] 3b491118b184eae45b912086219dc400054037ed81bed12426150e88d96b5555
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] da519adea80c4696bb18f8fc5d7cf0f6affba03e4c6ae0c3548a448cd45793b2
[INFO] running `Command { std: "docker" "start" "-a" "da519adea80c4696bb18f8fc5d7cf0f6affba03e4c6ae0c3548a448cd45793b2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling coffeepot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `clone`
[INFO] [stdout]  --> src/main.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{clone, env, io::BufRead, time::Duration};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::data`
[INFO] [stdout]  --> src/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::data;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash::Hash`, `thread::panicking`
[INFO] [stdout]  --> src/cpu.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{collections::HashMap, collections::HashSet, hash::Hash, os::fd::AsRawFd, thread::panicking};
[INFO] [stdout]   |                                                       ^^^^^^^^^^                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `io::Write`, `self`
[INFO] [stdout]  --> src/loader.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{io::Write, process::{self, exit}};
[INFO] [stdout]   |           ^^^^^^^^^            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `f32::consts::E`, `fs::read`, `thread::panicking`
[INFO] [stdout]  --> src/mmu.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, f32::consts::E, fmt, fs::read, io::Write, thread::panicking};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^^       ^^^^^^^^             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::clone`
[INFO] [stdout]  --> src/data.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::clone;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/cpu.rs:701:9
[INFO] [stdout]     |
[INFO] [stdout] 700 |         todo!("floatingpoint");
[INFO] [stdout]     |         ---------------------- any code following this expression is unreachable
[INFO] [stdout] 701 |         false
[INFO] [stdout]     |         ^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/cpu.rs:747:9
[INFO] [stdout]     |
[INFO] [stdout] 746 |         todo!("FLOATING POINT REGISTERS");
[INFO] [stdout]     |         --------------------------------- any code following this expression is unreachable
[INFO] [stdout] 747 |         false
[INFO] [stdout]     |         ^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/cpu.rs:771:9
[INFO] [stdout]     |
[INFO] [stdout] 770 |         todo!("floating point");
[INFO] [stdout]     |         ----------------------- any code following this expression is unreachable
[INFO] [stdout] 771 |         false
[INFO] [stdout]     |         ^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1689:17
[INFO] [stdout]      |
[INFO] [stdout] 1688 |                 todo!("MMAP SYSCALL");
[INFO] [stdout]      |                 --------------------- any code following this expression is unreachable
[INFO] [stdout] 1689 |                 self.mmu.alloc(0x440000, 0x0124,false,false,false);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]  --> src/mmu.rs:1:78
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, f32::consts::E, fmt, fs::read, io::Write, thread::panicking};
[INFO] [stdout]   |                                                                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]    --> src/cpu.rs:392:25
[INFO] [stdout]     |
[INFO] [stdout] 392 |                     let rs2 = (instruction >> 2) & 0x1f;
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:394:25
[INFO] [stdout]     |
[INFO] [stdout] 394 |                     let offset = ((instruction >> 1) & 0x1c0) // offset[8:6]
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:699:27
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn c_fldsp(&mut self, rd: u64, offset: u64) -> bool {
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:699:36
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn c_fldsp(&mut self, rd: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:745:25
[INFO] [stdout]     |
[INFO] [stdout] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]    --> src/cpu.rs:745:34
[INFO] [stdout]     |
[INFO] [stdout] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:745:44
[INFO] [stdout]     |
[INFO] [stdout] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:769:25
[INFO] [stdout]     |
[INFO] [stdout] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]    --> src/cpu.rs:769:34
[INFO] [stdout]     |
[INFO] [stdout] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:769:44
[INFO] [stdout]     |
[INFO] [stdout] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:834:30
[INFO] [stdout]     |
[INFO] [stdout] 834 |     fn c_addi16sp(&mut self, rd: u64, nzimm: u64) -> bool {
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1115:49
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1115:58
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1119:50
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1119:59
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1119:69
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1123:42
[INFO] [stdout]      |
[INFO] [stdout] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1123:51
[INFO] [stdout]      |
[INFO] [stdout] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1127:43
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                           ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1127:52
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1127:62
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                              ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1132:42
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1132:51
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1132:61
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1136:42
[INFO] [stdout]      |
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1136:51
[INFO] [stdout]      |
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1136:61
[INFO] [stdout]      |
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1141:41
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1141:50
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1141:60
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1146:41
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1146:50
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1146:60
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1150:41
[INFO] [stdout]      |
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1150:50
[INFO] [stdout]      |
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1150:60
[INFO] [stdout]      |
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1154:40
[INFO] [stdout]      |
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                        ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1154:49
[INFO] [stdout]      |
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1154:59
[INFO] [stdout]      |
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1158:41
[INFO] [stdout]      |
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1158:50
[INFO] [stdout]      |
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1158:60
[INFO] [stdout]      |
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1162:41
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1162:50
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1162:60
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1167:49
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1167:58
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1167:68
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1172:49
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1172:58
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1172:68
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1177:48
[INFO] [stdout]      |
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1177:57
[INFO] [stdout]      |
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1177:67
[INFO] [stdout]      |
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1182:48
[INFO] [stdout]      |
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1182:57
[INFO] [stdout]      |
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1182:67
[INFO] [stdout]      |
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1187:48
[INFO] [stdout]      |
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1187:57
[INFO] [stdout]      |
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1187:67
[INFO] [stdout]      |
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1191:48
[INFO] [stdout]      |
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1191:57
[INFO] [stdout]      |
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1191:67
[INFO] [stdout]      |
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1195:47
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                               ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1195:56
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1195:66
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1199:48
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1199:57
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1199:67
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1204:49
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1204:58
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1204:68
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1209:42
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1209:51
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1209:61
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_size`
[INFO] [stdout]   --> src/loader.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let segment_size = segment_end.wrapping_sub(segment_start);
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut segment_end = segment_start as usize + program_header.p_filesz as usize; // has to be filesz
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/mmu.rs:52:14
[INFO] [stdout]    |
[INFO] [stdout] 52 |         for (k,_segment) in self.virtual_memory.iter_mut() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/mmu.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for (k,_segment) in self.virtual_memory.iter_mut() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mmu.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut seg: Segment;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debug`
[INFO] [stdout]   --> src/main.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut debug = false;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_debug`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter_reader`
[INFO] [stdout]   --> src/main.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let iter_reader = std::sync::Arc::clone(&iterations);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut debug = false;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]   --> src/main.rs:60:32
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn fuzz(mut emulator: Emulator,thread_id:i32, iterations:std::sync::Arc<std::sync::Mutex<f64>>) {
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mmu::Permissions` is more private than the item `Segment::perms`
[INFO] [stdout]    --> src/mmu.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub perms: Vec<Permissions>
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `Segment::perms` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `mmu::Permissions` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/mmu.rs:319:1
[INFO] [stdout]     |
[INFO] [stdout] 319 | enum Permissions {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CALL_STACK` is never used
[INFO] [stdout]  --> src/cpu.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const MAX_CALL_STACK:u64 = 1024;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `f_reg`, `csr_reg`, and `current_compressed` are never read
[INFO] [stdout]   --> src/cpu.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct CPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub f_reg: [u64; 32],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 20 |     pub csr_reg: [u64; 4096],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 21 |     pub file_descriptors: HashMap<u64,std::os::fd::RawFd>,
[INFO] [stdout] 22 |     pub current_compressed: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPU` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu.rs:1115:8
[INFO] [stdout]      |
[INFO] [stdout] 52   | impl CPU {
[INFO] [stdout]      | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1603 |     fn csrrw(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1615 |     fn csrrwi(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1623 |     fn csrrs(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1632 |     fn csrrc(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1641 |     fn csrrsi(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1649 |     fn csrrci(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print_segments`, `get_segments`, and `segment_taken` are never used
[INFO] [stdout]    --> src/mmu.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41  |     pub fn print_segments(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50  |     pub fn get_segments(&mut self) -> Vec<(u64,u64)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn segment_taken(&self,address:u64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `perms` is never read
[INFO] [stdout]    --> src/mmu.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub struct Segment {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub perms: Vec<Permissions>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Segment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `dirty` are never used
[INFO] [stdout]    --> src/mmu.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl Segment {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 291 |     fn new() -> Segment {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `READ`, `WRITE`, `EXECUTE`, `READWRITE`, and `READEXECUTE` are never constructed
[INFO] [stdout]    --> src/mmu.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 319 | enum Permissions {
[INFO] [stdout]     |      ----------- variants in this enum
[INFO] [stdout] 320 |     READ,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 321 |     WRITE,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 322 |     EXECUTE,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 323 |     NONE,
[INFO] [stdout] 324 |     READWRITE,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 325 |     READEXECUTE,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Permissions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `raw_data_size`, `virtual_memory_size`, `perms`, and `alignment` are never read
[INFO] [stdout]    --> src/mmu.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub struct ElfSection{
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 330 |     pub raw_data: Vec<u8>,
[INFO] [stdout] 331 |     pub raw_data_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 332 |     pub virtual_address: u64,
[INFO] [stdout] 333 |     pub virtual_memory_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 334 |     pub perms: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 335 |     pub alignment: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElfSection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 104 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.44s
[INFO] running `Command { std: "docker" "inspect" "da519adea80c4696bb18f8fc5d7cf0f6affba03e4c6ae0c3548a448cd45793b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da519adea80c4696bb18f8fc5d7cf0f6affba03e4c6ae0c3548a448cd45793b2", kill_on_drop: false }`
[INFO] [stdout] da519adea80c4696bb18f8fc5d7cf0f6affba03e4c6ae0c3548a448cd45793b2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f100ebd38dffcce037c8fb84a4db8bdbcf61e0ee3d5790023770b3921372edc4
[INFO] running `Command { std: "docker" "start" "-a" "f100ebd38dffcce037c8fb84a4db8bdbcf61e0ee3d5790023770b3921372edc4", kill_on_drop: false }`
[INFO] [stderr]    Compiling coffeepot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `clone`
[INFO] [stdout]  --> src/main.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{clone, env, io::BufRead, time::Duration};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::data`
[INFO] [stdout]  --> src/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::data;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash::Hash`, `thread::panicking`
[INFO] [stdout]  --> src/cpu.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{collections::HashMap, collections::HashSet, hash::Hash, os::fd::AsRawFd, thread::panicking};
[INFO] [stdout]   |                                                       ^^^^^^^^^^                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `io::Write`, `self`
[INFO] [stdout]  --> src/loader.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{io::Write, process::{self, exit}};
[INFO] [stdout]   |           ^^^^^^^^^            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `f32::consts::E`, `fs::read`, `thread::panicking`
[INFO] [stdout]  --> src/mmu.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, f32::consts::E, fmt, fs::read, io::Write, thread::panicking};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^^       ^^^^^^^^             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::clone`
[INFO] [stdout]  --> src/data.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::clone;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/cpu.rs:701:9
[INFO] [stdout]     |
[INFO] [stdout] 700 |         todo!("floatingpoint");
[INFO] [stdout]     |         ---------------------- any code following this expression is unreachable
[INFO] [stdout] 701 |         false
[INFO] [stdout]     |         ^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/cpu.rs:747:9
[INFO] [stdout]     |
[INFO] [stdout] 746 |         todo!("FLOATING POINT REGISTERS");
[INFO] [stdout]     |         --------------------------------- any code following this expression is unreachable
[INFO] [stdout] 747 |         false
[INFO] [stdout]     |         ^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/cpu.rs:771:9
[INFO] [stdout]     |
[INFO] [stdout] 770 |         todo!("floating point");
[INFO] [stdout]     |         ----------------------- any code following this expression is unreachable
[INFO] [stdout] 771 |         false
[INFO] [stdout]     |         ^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1689:17
[INFO] [stdout]      |
[INFO] [stdout] 1688 |                 todo!("MMAP SYSCALL");
[INFO] [stdout]      |                 --------------------- any code following this expression is unreachable
[INFO] [stdout] 1689 |                 self.mmu.alloc(0x440000, 0x0124,false,false,false);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]  --> src/mmu.rs:1:78
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, f32::consts::E, fmt, fs::read, io::Write, thread::panicking};
[INFO] [stdout]   |                                                                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]    --> src/cpu.rs:392:25
[INFO] [stdout]     |
[INFO] [stdout] 392 |                     let rs2 = (instruction >> 2) & 0x1f;
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:394:25
[INFO] [stdout]     |
[INFO] [stdout] 394 |                     let offset = ((instruction >> 1) & 0x1c0) // offset[8:6]
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:699:27
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn c_fldsp(&mut self, rd: u64, offset: u64) -> bool {
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:699:36
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn c_fldsp(&mut self, rd: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:745:25
[INFO] [stdout]     |
[INFO] [stdout] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]    --> src/cpu.rs:745:34
[INFO] [stdout]     |
[INFO] [stdout] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:745:44
[INFO] [stdout]     |
[INFO] [stdout] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:769:25
[INFO] [stdout]     |
[INFO] [stdout] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]    --> src/cpu.rs:769:34
[INFO] [stdout]     |
[INFO] [stdout] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/cpu.rs:769:44
[INFO] [stdout]     |
[INFO] [stdout] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/cpu.rs:834:30
[INFO] [stdout]     |
[INFO] [stdout] 834 |     fn c_addi16sp(&mut self, rd: u64, nzimm: u64) -> bool {
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1115:49
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1115:58
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1119:50
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1119:59
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1119:69
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1123:42
[INFO] [stdout]      |
[INFO] [stdout] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1123:51
[INFO] [stdout]      |
[INFO] [stdout] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1127:43
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                           ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1127:52
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1127:62
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                              ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1132:42
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1132:51
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1132:61
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1136:42
[INFO] [stdout]      |
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1136:51
[INFO] [stdout]      |
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1136:61
[INFO] [stdout]      |
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1141:41
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1141:50
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1141:60
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1146:41
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1146:50
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1146:60
[INFO] [stdout]      |
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1150:41
[INFO] [stdout]      |
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1150:50
[INFO] [stdout]      |
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1150:60
[INFO] [stdout]      |
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1154:40
[INFO] [stdout]      |
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                        ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1154:49
[INFO] [stdout]      |
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1154:59
[INFO] [stdout]      |
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1158:41
[INFO] [stdout]      |
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1158:50
[INFO] [stdout]      |
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1158:60
[INFO] [stdout]      |
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1162:41
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1162:50
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1162:60
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1167:49
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1167:58
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1167:68
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1172:49
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1172:58
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1172:68
[INFO] [stdout]      |
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1177:48
[INFO] [stdout]      |
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1177:57
[INFO] [stdout]      |
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1177:67
[INFO] [stdout]      |
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1182:48
[INFO] [stdout]      |
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1182:57
[INFO] [stdout]      |
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1182:67
[INFO] [stdout]      |
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1187:48
[INFO] [stdout]      |
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1187:57
[INFO] [stdout]      |
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1187:67
[INFO] [stdout]      |
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1191:48
[INFO] [stdout]      |
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1191:57
[INFO] [stdout]      |
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1191:67
[INFO] [stdout]      |
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1195:47
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                               ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1195:56
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1195:66
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1199:48
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1199:57
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1199:67
[INFO] [stdout]      |
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1204:49
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1204:58
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1204:68
[INFO] [stdout]      |
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]     --> src/cpu.rs:1209:42
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs1`
[INFO] [stdout]     --> src/cpu.rs:1209:51
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rs2`
[INFO] [stdout]     --> src/cpu.rs:1209:61
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_size`
[INFO] [stdout]   --> src/loader.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let segment_size = segment_end.wrapping_sub(segment_start);
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let mut segment_end = segment_start as usize + program_header.p_filesz as usize; // has to be filesz
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/mmu.rs:52:14
[INFO] [stdout]    |
[INFO] [stdout] 52 |         for (k,_segment) in self.virtual_memory.iter_mut() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/mmu.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for (k,_segment) in self.virtual_memory.iter_mut() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mmu.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mut seg: Segment;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debug`
[INFO] [stdout]   --> src/main.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut debug = false;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_debug`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter_reader`
[INFO] [stdout]   --> src/main.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let iter_reader = std::sync::Arc::clone(&iterations);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut debug = false;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]   --> src/main.rs:60:32
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn fuzz(mut emulator: Emulator,thread_id:i32, iterations:std::sync::Arc<std::sync::Mutex<f64>>) {
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mmu::Permissions` is more private than the item `Segment::perms`
[INFO] [stdout]    --> src/mmu.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub perms: Vec<Permissions>
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `Segment::perms` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `mmu::Permissions` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/mmu.rs:319:1
[INFO] [stdout]     |
[INFO] [stdout] 319 | enum Permissions {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CALL_STACK` is never used
[INFO] [stdout]  --> src/cpu.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const MAX_CALL_STACK:u64 = 1024;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `f_reg`, `csr_reg`, and `current_compressed` are never read
[INFO] [stdout]   --> src/cpu.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct CPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub f_reg: [u64; 32],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 20 |     pub csr_reg: [u64; 4096],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 21 |     pub file_descriptors: HashMap<u64,std::os::fd::RawFd>,
[INFO] [stdout] 22 |     pub current_compressed: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPU` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu.rs:1115:8
[INFO] [stdout]      |
[INFO] [stdout] 52   | impl CPU {
[INFO] [stdout]      | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1603 |     fn csrrw(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1615 |     fn csrrwi(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1623 |     fn csrrs(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1632 |     fn csrrc(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1641 |     fn csrrsi(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1649 |     fn csrrci(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print_segments`, `get_segments`, and `segment_taken` are never used
[INFO] [stdout]    --> src/mmu.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41  |     pub fn print_segments(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50  |     pub fn get_segments(&mut self) -> Vec<(u64,u64)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn segment_taken(&self,address:u64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `perms` is never read
[INFO] [stdout]    --> src/mmu.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub struct Segment {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub perms: Vec<Permissions>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Segment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `dirty` are never used
[INFO] [stdout]    --> src/mmu.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl Segment {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 291 |     fn new() -> Segment {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `READ`, `WRITE`, `EXECUTE`, `READWRITE`, and `READEXECUTE` are never constructed
[INFO] [stdout]    --> src/mmu.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 319 | enum Permissions {
[INFO] [stdout]     |      ----------- variants in this enum
[INFO] [stdout] 320 |     READ,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 321 |     WRITE,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 322 |     EXECUTE,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 323 |     NONE,
[INFO] [stdout] 324 |     READWRITE,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 325 |     READEXECUTE,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Permissions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `raw_data_size`, `virtual_memory_size`, `perms`, and `alignment` are never read
[INFO] [stdout]    --> src/mmu.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub struct ElfSection{
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 330 |     pub raw_data: Vec<u8>,
[INFO] [stdout] 331 |     pub raw_data_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 332 |     pub virtual_address: u64,
[INFO] [stdout] 333 |     pub virtual_memory_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 334 |     pub perms: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 335 |     pub alignment: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElfSection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 104 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s
[INFO] running `Command { std: "docker" "inspect" "f100ebd38dffcce037c8fb84a4db8bdbcf61e0ee3d5790023770b3921372edc4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f100ebd38dffcce037c8fb84a4db8bdbcf61e0ee3d5790023770b3921372edc4", kill_on_drop: false }`
[INFO] [stdout] f100ebd38dffcce037c8fb84a4db8bdbcf61e0ee3d5790023770b3921372edc4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 930d8efd24ab00a4d2e41ffcf67d47e75a4898553e60cd8088eb355434faa662
[INFO] running `Command { std: "docker" "start" "-a" "930d8efd24ab00a4d2e41ffcf67d47e75a4898553e60cd8088eb355434faa662", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `clone`
[INFO] [stderr]  --> src/main.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::{clone, env, io::BufRead, time::Duration};
[INFO] [stderr]   |           ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::data`
[INFO] [stderr]  --> src/cpu.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::data;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `hash::Hash`, `thread::panicking`
[INFO] [stderr]  --> src/cpu.rs:4:55
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::{collections::HashMap, collections::HashSet, hash::Hash, os::fd::AsRawFd, thread::panicking};
[INFO] [stderr]   |                                                       ^^^^^^^^^^                   ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `io::Write`, `self`
[INFO] [stderr]  --> src/loader.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::{io::Write, process::{self, exit}};
[INFO] [stderr]   |           ^^^^^^^^^            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `f32::consts::E`, `fs::read`, `thread::panicking`
[INFO] [stderr]  --> src/mmu.rs:1:47
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{collections::HashMap, error::Error, f32::consts::E, fmt, fs::read, io::Write, thread::panicking};
[INFO] [stderr]   |                                               ^^^^^^^^^^^^^^       ^^^^^^^^             ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::clone`
[INFO] [stderr]  --> src/data.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::clone;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/cpu.rs:701:9
[INFO] [stderr]     |
[INFO] [stderr] 700 |         todo!("floatingpoint");
[INFO] [stderr]     |         ---------------------- any code following this expression is unreachable
[INFO] [stderr] 701 |         false
[INFO] [stderr]     |         ^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/cpu.rs:747:9
[INFO] [stderr]     |
[INFO] [stderr] 746 |         todo!("FLOATING POINT REGISTERS");
[INFO] [stderr]     |         --------------------------------- any code following this expression is unreachable
[INFO] [stderr] 747 |         false
[INFO] [stderr]     |         ^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/cpu.rs:771:9
[INFO] [stderr]     |
[INFO] [stderr] 770 |         todo!("floating point");
[INFO] [stderr]     |         ----------------------- any code following this expression is unreachable
[INFO] [stderr] 771 |         false
[INFO] [stderr]     |         ^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]     --> src/cpu.rs:1689:17
[INFO] [stderr]      |
[INFO] [stderr] 1688 |                 todo!("MMAP SYSCALL");
[INFO] [stderr]      |                 --------------------- any code following this expression is unreachable
[INFO] [stderr] 1689 |                 self.mmu.alloc(0x440000, 0x0124,false,false,false);
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `io::Write`
[INFO] [stderr]  --> src/mmu.rs:1:78
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{collections::HashMap, error::Error, f32::consts::E, fmt, fs::read, io::Write, thread::panicking};
[INFO] [stderr]   |                                                                              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]    --> src/cpu.rs:392:25
[INFO] [stderr]     |
[INFO] [stderr] 392 |                     let rs2 = (instruction >> 2) & 0x1f;
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/cpu.rs:394:25
[INFO] [stderr]     |
[INFO] [stderr] 394 |                     let offset = ((instruction >> 1) & 0x1c0) // offset[8:6]
[INFO] [stderr]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]    --> src/cpu.rs:699:27
[INFO] [stderr]     |
[INFO] [stderr] 699 |     fn c_fldsp(&mut self, rd: u64, offset: u64) -> bool {
[INFO] [stderr]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/cpu.rs:699:36
[INFO] [stderr]     |
[INFO] [stderr] 699 |     fn c_fldsp(&mut self, rd: u64, offset: u64) -> bool {
[INFO] [stderr]     |                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]    --> src/cpu.rs:745:25
[INFO] [stderr]     |
[INFO] [stderr] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stderr]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]    --> src/cpu.rs:745:34
[INFO] [stderr]     |
[INFO] [stderr] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/cpu.rs:745:44
[INFO] [stderr]     |
[INFO] [stderr] 745 |     fn c_fld(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stderr]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]    --> src/cpu.rs:769:25
[INFO] [stderr]     |
[INFO] [stderr] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stderr]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]    --> src/cpu.rs:769:34
[INFO] [stderr]     |
[INFO] [stderr] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/cpu.rs:769:44
[INFO] [stderr]     |
[INFO] [stderr] 769 |     fn c_fsd(&mut self, rd: u64, rs1: u64, offset: u64) -> bool {
[INFO] [stderr]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]    --> src/cpu.rs:834:30
[INFO] [stderr]     |
[INFO] [stderr] 834 |     fn c_addi16sp(&mut self, rd: u64, nzimm: u64) -> bool {
[INFO] [stderr]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1115:49
[INFO] [stderr]      |
[INFO] [stderr] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stderr]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1115:58
[INFO] [stderr]      |
[INFO] [stderr] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stderr]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1119:50
[INFO] [stderr]      |
[INFO] [stderr] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                  ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1119:59
[INFO] [stderr]      |
[INFO] [stderr] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1119:69
[INFO] [stderr]      |
[INFO] [stderr] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1123:42
[INFO] [stderr]      |
[INFO] [stderr] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stderr]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1123:51
[INFO] [stderr]      |
[INFO] [stderr] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stderr]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1127:43
[INFO] [stderr]      |
[INFO] [stderr] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                           ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1127:52
[INFO] [stderr]      |
[INFO] [stderr] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1127:62
[INFO] [stderr]      |
[INFO] [stderr] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                              ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1132:42
[INFO] [stderr]      |
[INFO] [stderr] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1132:51
[INFO] [stderr]      |
[INFO] [stderr] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1132:61
[INFO] [stderr]      |
[INFO] [stderr] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1136:42
[INFO] [stderr]      |
[INFO] [stderr] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1136:51
[INFO] [stderr]      |
[INFO] [stderr] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1136:61
[INFO] [stderr]      |
[INFO] [stderr] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1141:41
[INFO] [stderr]      |
[INFO] [stderr] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1141:50
[INFO] [stderr]      |
[INFO] [stderr] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1141:60
[INFO] [stderr]      |
[INFO] [stderr] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1146:41
[INFO] [stderr]      |
[INFO] [stderr] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1146:50
[INFO] [stderr]      |
[INFO] [stderr] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1146:60
[INFO] [stderr]      |
[INFO] [stderr] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1150:41
[INFO] [stderr]      |
[INFO] [stderr] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1150:50
[INFO] [stderr]      |
[INFO] [stderr] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1150:60
[INFO] [stderr]      |
[INFO] [stderr] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1154:40
[INFO] [stderr]      |
[INFO] [stderr] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                        ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1154:49
[INFO] [stderr]      |
[INFO] [stderr] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1154:59
[INFO] [stderr]      |
[INFO] [stderr] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1158:41
[INFO] [stderr]      |
[INFO] [stderr] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1158:50
[INFO] [stderr]      |
[INFO] [stderr] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1158:60
[INFO] [stderr]      |
[INFO] [stderr] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1162:41
[INFO] [stderr]      |
[INFO] [stderr] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                         ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1162:50
[INFO] [stderr]      |
[INFO] [stderr] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1162:60
[INFO] [stderr]      |
[INFO] [stderr] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1167:49
[INFO] [stderr]      |
[INFO] [stderr] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1167:58
[INFO] [stderr]      |
[INFO] [stderr] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1167:68
[INFO] [stderr]      |
[INFO] [stderr] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1172:49
[INFO] [stderr]      |
[INFO] [stderr] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1172:58
[INFO] [stderr]      |
[INFO] [stderr] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1172:68
[INFO] [stderr]      |
[INFO] [stderr] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1177:48
[INFO] [stderr]      |
[INFO] [stderr] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1177:57
[INFO] [stderr]      |
[INFO] [stderr] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1177:67
[INFO] [stderr]      |
[INFO] [stderr] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1182:48
[INFO] [stderr]      |
[INFO] [stderr] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1182:57
[INFO] [stderr]      |
[INFO] [stderr] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1182:67
[INFO] [stderr]      |
[INFO] [stderr] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1187:48
[INFO] [stderr]      |
[INFO] [stderr] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1187:57
[INFO] [stderr]      |
[INFO] [stderr] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1187:67
[INFO] [stderr]      |
[INFO] [stderr] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1191:48
[INFO] [stderr]      |
[INFO] [stderr] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1191:57
[INFO] [stderr]      |
[INFO] [stderr] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1191:67
[INFO] [stderr]      |
[INFO] [stderr] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1195:47
[INFO] [stderr]      |
[INFO] [stderr] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                               ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1195:56
[INFO] [stderr]      |
[INFO] [stderr] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1195:66
[INFO] [stderr]      |
[INFO] [stderr] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1199:48
[INFO] [stderr]      |
[INFO] [stderr] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1199:57
[INFO] [stderr]      |
[INFO] [stderr] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1199:67
[INFO] [stderr]      |
[INFO] [stderr] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1204:49
[INFO] [stderr]      |
[INFO] [stderr] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1204:58
[INFO] [stderr]      |
[INFO] [stderr] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1204:68
[INFO] [stderr]      |
[INFO] [stderr] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rd`
[INFO] [stderr]     --> src/cpu.rs:1209:42
[INFO] [stderr]      |
[INFO] [stderr] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs1`
[INFO] [stderr]     --> src/cpu.rs:1209:51
[INFO] [stderr]      |
[INFO] [stderr] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rs1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rs2`
[INFO] [stderr]     --> src/cpu.rs:1209:61
[INFO] [stderr]      |
[INFO] [stderr] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_rs2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `segment_size`
[INFO] [stderr]   --> src/loader.rs:72:13
[INFO] [stderr]    |
[INFO] [stderr] 72 |         let segment_size = segment_end.wrapping_sub(segment_start);
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_size`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/loader.rs:71:13
[INFO] [stderr]    |
[INFO] [stderr] 71 |         let mut segment_end = segment_start as usize + program_header.p_filesz as usize; // has to be filesz
[INFO] [stderr]    |             ----^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]   --> src/mmu.rs:52:14
[INFO] [stderr]    |
[INFO] [stderr] 52 |         for (k,_segment) in self.virtual_memory.iter_mut() {
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]   --> src/mmu.rs:61:14
[INFO] [stderr]    |
[INFO] [stderr] 61 |         for (k,_segment) in self.virtual_memory.iter_mut() {
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/mmu.rs:243:13
[INFO] [stderr]     |
[INFO] [stderr] 243 |         let mut seg: Segment;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `debug`
[INFO] [stderr]   --> src/main.rs:27:13
[INFO] [stderr]    |
[INFO] [stderr] 27 |     let mut debug = false;
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_debug`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `iter_reader`
[INFO] [stderr]   --> src/main.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let iter_reader = std::sync::Arc::clone(&iterations);
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter_reader`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 27 |     let mut debug = false;
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thread_id`
[INFO] [stderr]   --> src/main.rs:60:32
[INFO] [stderr]    |
[INFO] [stderr] 60 | fn fuzz(mut emulator: Emulator,thread_id:i32, iterations:std::sync::Arc<std::sync::Mutex<f64>>) {
[INFO] [stderr]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stderr] 
[INFO] [stderr] warning: type `mmu::Permissions` is more private than the item `Segment::perms`
[INFO] [stderr]    --> src/mmu.rs:287:5
[INFO] [stderr]     |
[INFO] [stderr] 287 |     pub perms: Vec<Permissions>
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `Segment::perms` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `mmu::Permissions` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/mmu.rs:319:1
[INFO] [stderr]     |
[INFO] [stderr] 319 | enum Permissions {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_CALL_STACK` is never used
[INFO] [stderr]  --> src/cpu.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const MAX_CALL_STACK:u64 = 1024;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `f_reg`, `csr_reg`, and `current_compressed` are never read
[INFO] [stderr]   --> src/cpu.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 9  | pub struct CPU {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub f_reg: [u64; 32],
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 20 |     pub csr_reg: [u64; 4096],
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 21 |     pub file_descriptors: HashMap<u64,std::os::fd::RawFd>,
[INFO] [stderr] 22 |     pub current_compressed: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CPU` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]     --> src/cpu.rs:1115:8
[INFO] [stderr]      |
[INFO] [stderr] 52   | impl CPU {
[INFO] [stderr]      | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 1115 |     fn load_double_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1119 |     fn store_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1123 |     fn load_word_atomic(self: &mut Self, rd: u64, rs1: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1127 |     fn store_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1132 |     fn maxu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1136 |     fn minu_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1141 |     fn min_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1146 |     fn max_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1150 |     fn xor_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1154 |     fn or_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1158 |     fn and_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1162 |     fn add_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1167 |     fn minu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1172 |     fn maxu_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1177 |     fn max_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1182 |     fn min_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1187 |     fn xor_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1191 |     fn and_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1195 |     fn or_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1199 |     fn add_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1204 |     fn swap_double_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1209 |     fn swap_word_atomic(self: &mut Self, rd: u64, rs1: u64, rs2: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1603 |     fn csrrw(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1615 |     fn csrrwi(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1623 |     fn csrrs(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1632 |     fn csrrc(&mut self, csr: u64, rs1: u64, rd: u64) -> bool {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1641 |     fn csrrsi(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1649 |     fn csrrci(&mut self, csr: u64, imm: u64, rd: u64) -> bool {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `print_segments`, `get_segments`, and `segment_taken` are never used
[INFO] [stderr]    --> src/mmu.rs:41:12
[INFO] [stderr]     |
[INFO] [stderr] 34  | impl MMU {
[INFO] [stderr]     | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 41  |     pub fn print_segments(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50  |     pub fn get_segments(&mut self) -> Vec<(u64,u64)> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     fn segment_taken(&self,address:u64) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `perms` is never read
[INFO] [stderr]    --> src/mmu.rs:287:9
[INFO] [stderr]     |
[INFO] [stderr] 279 | pub struct Segment {
[INFO] [stderr]     |            ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 287 |     pub perms: Vec<Permissions>
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Segment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `dirty` are never used
[INFO] [stderr]    --> src/mmu.rs:291:8
[INFO] [stderr]     |
[INFO] [stderr] 290 | impl Segment {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr] 291 |     fn new() -> Segment {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 312 |     pub fn dirty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `READ`, `WRITE`, `EXECUTE`, `READWRITE`, and `READEXECUTE` are never constructed
[INFO] [stderr]    --> src/mmu.rs:320:5
[INFO] [stderr]     |
[INFO] [stderr] 319 | enum Permissions {
[INFO] [stderr]     |      ----------- variants in this enum
[INFO] [stderr] 320 |     READ,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 321 |     WRITE,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 322 |     EXECUTE,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 323 |     NONE,
[INFO] [stderr] 324 |     READWRITE,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 325 |     READEXECUTE,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Permissions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `raw_data_size`, `virtual_memory_size`, `perms`, and `alignment` are never read
[INFO] [stderr]    --> src/mmu.rs:331:9
[INFO] [stderr]     |
[INFO] [stderr] 329 | pub struct ElfSection{
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 330 |     pub raw_data: Vec<u8>,
[INFO] [stderr] 331 |     pub raw_data_size: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 332 |     pub virtual_address: u64,
[INFO] [stderr] 333 |     pub virtual_memory_size: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 334 |     pub perms: u64,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 335 |     pub alignment: u64,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ElfSection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `coffeepot` (bin "coffeepot" test) generated 104 warnings (run `cargo fix --bin "coffeepot" --tests` to apply 9 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/coffeepot-694872f5ee8f633b)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test tests::andi ... ok
[INFO] [stdout] test tests::add ... ok
[INFO] [stdout] test tests::c_li ... ok
[INFO] [stdout] test tests::c_lw ... ok
[INFO] [stdout] test tests::c_j ... ok
[INFO] [stdout] test tests::addi ... ok
[INFO] [stdout] test tests::auipc ... ok
[INFO] [stdout] test tests::c_mv ... ok
[INFO] [stdout] test tests::c_sd ... ok
[INFO] [stdout] test tests::c_sw ... ok
[INFO] [stdout] test tests::divu ... ok
[INFO] [stdout] test tests::load_double_word ... ok
[INFO] [stdout] test tests::jalr ... ok
[INFO] [stdout] test tests::load_word_unsigned ... ok
[INFO] [stdout] test tests::lui ... ok
[INFO] [stdout] test tests::load_byte ... ok
[INFO] [stdout] test tests::c_beqz ... ok
[INFO] [stdout] test tests::load_half ... ok
[INFO] [stdout] test tests::store_half ... ok
[INFO] [stdout] test tests::store_byte ... ok
[INFO] [stdout] test tests::store_word ... ok
[INFO] [stdout] test tests::load_word ... ok
[INFO] [stdout] test tests::mul ... ok
[INFO] [stdout] test tests::sub ... ok
[INFO] [stdout] test tests::srl ... ok
[INFO] [stdout] test tests::store_double_word ... ok
[INFO] [stdout] test tests::libc_stack_inbit ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::libc_stack_inbit stdout ----
[INFO] [stdout] thread 'tests::libc_stack_inbit' panicked at src/tests.rs:297:5:
[INFO] [stdout] TODO!
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55d733f8b4f5 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
[INFO] [stdout]    1:     0x55d733f8b4f5 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55d733f8b4f5 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x55d733f8b4f5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6ed9e62a156d84e4
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55d733fb1d4b - core::fmt::rt::Argument::fmt::h645c680983f03c9f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63
[INFO] [stdout]    5:     0x55d733fb1d4b - core::fmt::write::h8bcd80919a02be29
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21
[INFO] [stdout]    6:     0x55d733f88d1f - std::io::Write::write_fmt::h8d0c47c662cad79c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15
[INFO] [stdout]    7:     0x55d733f8b2ce - std::sys_common::backtrace::_print::h6306f131a28d62b0
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x55d733f8b2ce - std::sys_common::backtrace::print::h7079288e0a26dfcc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x55d733f8ccf9 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba
[INFO] [stdout]   10:     0x55d733f8c9be - std::panicking::default_hook::hd56ee406bf547b5c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9
[INFO] [stdout]   11:     0x55d733f5b7ca - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::he5eacdef44c8728f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   12:     0x55d733f5b7ca - test::test_main::{{closure}}::h0ec9aed229e79095
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x55d733f8d2fb - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcbd0d80e1ad4e4f9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   14:     0x55d733f8d2fb - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13
[INFO] [stdout]   15:     0x55d733f8d03b - std::panicking::begin_panic_handler::{{closure}}::hbc4e76194a5e287c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:656:13
[INFO] [stdout]   16:     0x55d733f8b9b9 - std::sys_common::backtrace::__rust_end_short_backtrace::h847fedc9d1ff7b6d
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x55d733f8cda7 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:652:5
[INFO] [stdout]   18:     0x55d733ef4843 - core::panicking::panic_fmt::hec11a924b87ce965
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55d733f27f92 - coffeepot::tests::libc_stack_inbit::h083fa438253c4c51
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:297:5
[INFO] [stdout]   20:     0x55d733f27f47 - coffeepot::tests::libc_stack_inbit::{{closure}}::h58f4fa3a5116dc92
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:296:22
[INFO] [stdout]   21:     0x55d733f1b706 - core::ops::function::FnOnce::call_once::hcd33a4477ec70555
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x55d733f601ab - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x55d733f601ab - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18
[INFO] [stdout]   24:     0x55d733f5f8b1 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60
[INFO] [stdout]   25:     0x55d733f5f8b1 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x55d733f5f8b1 - std::panicking::try::do_call::h1bf2463bccd4b28c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   27:     0x55d733f5f8b1 - std::panicking::try::hd6d4808c9fab4fa5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   28:     0x55d733f5f8b1 - std::panic::catch_unwind::hd5641d97d123f9f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   29:     0x55d733f5f8b1 - test::run_test_in_process::hc273b71c8b878a4c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27
[INFO] [stdout]   30:     0x55d733f5f8b1 - test::run_test::{{closure}}::h6838df834eb8467e
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:569:43
[INFO] [stdout]   31:     0x55d733f28274 - test::run_test::{{closure}}::h608b98ecff5665fb
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:599:41
[INFO] [stdout]   32:     0x55d733f28274 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdc4182b97d1042e9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   33:     0x55d733f2cca2 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h571773fd21d674c8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:542:17
[INFO] [stdout]   34:     0x55d733f2cca2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hdcd384cf2fa70ba3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x55d733f2cca2 - std::panicking::try::do_call::h4f1a44bd81423be1
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   36:     0x55d733f2cca2 - std::panicking::try::h5e02afcb81dcd361
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   37:     0x55d733f2cca2 - std::panic::catch_unwind::h022f75775bfd8c45
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   38:     0x55d733f2cca2 - std::thread::Builder::spawn_unchecked_::{{closure}}::hf5a62e9e4e6df1f8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:541:30
[INFO] [stdout]   39:     0x55d733f2cca2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d56360aeb9509a7
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x55d733f914eb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7a343dc551c06baa
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   41:     0x55d733f914eb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h30b8111cbaa644f3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   42:     0x55d733f914eb - std::sys::pal::unix::thread::Thread::new::thread_start::h7404e134e61e7a11
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys/pal/unix/thread.rs:108:17
[INFO] [stdout]   43:     0x7f14b4493ac3 - <unknown>
[INFO] [stdout]   44:     0x7f14b4524a04 - __clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::libc_stack_inbit
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 26 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin coffeepot`
[INFO] running `Command { std: "docker" "inspect" "930d8efd24ab00a4d2e41ffcf67d47e75a4898553e60cd8088eb355434faa662", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "930d8efd24ab00a4d2e41ffcf67d47e75a4898553e60cd8088eb355434faa662", kill_on_drop: false }`
[INFO] [stdout] 930d8efd24ab00a4d2e41ffcf67d47e75a4898553e60cd8088eb355434faa662
