[INFO] cloning repository https://github.com/oriys/neonos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oriys/neonos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foriys%2Fneonos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foriys%2Fneonos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4ee81e728509c520b38dc22ac7cdbc03c59fdf27
[INFO] checking oriys/neonos against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foriys%2Fneonos" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/oriys/neonos
[INFO] finished tweaking git repo https://github.com/oriys/neonos
[INFO] tweaked toml for git repo https://github.com/oriys/neonos written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oriys/neonos on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oriys/neonos 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5
[INFO] running `Command { std: "docker" "start" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking neonos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]    --> src/main.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | / fn panic(info: &PanicInfo) -> ! {
[INFO] [stdout] 129 | |     crate::println!("[panic] {}", info.message());
[INFO] [stdout] 130 | |
[INFO] [stdout] 131 | |     if let Some(location) = info.location() {
[INFO] [stdout] ...   |
[INFO] [stdout] 142 | |     halt()
[INFO] [stdout] 143 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the lang item is first defined in crate `std` (which `test` depends on)
[INFO] [stdout]     = note: first definition in `std` loaded from /opt/rustwide/rustup-home/toolchains/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6ee2a0f0126c8a50.rmeta
[INFO] [stdout]     = note: second definition in the local crate (`neonos`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `neonos` (bin "neonos" test) due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/memory.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     unsafe {
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/memory.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     unsafe { addr_of!(_start) as usize }
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/process.rs:65:45
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let (code_start, entry, code_end) = unsafe {
[INFO] [stdout]    |                                             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/trap.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     unsafe { addr_of!(trap_trigger_label) as usize }
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 136 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/user.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 180 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/user.rs:736:9
[INFO] [stdout]     |
[INFO] [stdout] 736 |     let frame = unsafe { &mut *frame };
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `entry`, and `code_range` are never used
[INFO] [stdout]   --> src/process.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Program {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub(crate) fn name(&self) -> &'static str {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub(crate) fn entry(&self) -> usize {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub(crate) fn code_range(&self) -> AddressRange {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Faulted` is never constructed
[INFO] [stdout]    --> src/process.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub(crate) enum ProcessState {
[INFO] [stdout]     |                 ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 104 |     Faulted(FaultInfo),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProcessState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `end` are never read
[INFO] [stdout]    --> src/process.rs:115:16
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub(crate) struct AddressRange {
[INFO] [stdout]     |                   ------------ fields in this struct
[INFO] [stdout] 115 |     pub(crate) start: usize,
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 116 |     pub(crate) end: usize,
[INFO] [stdout]     |                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AddressRange` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `size`, `contains`, and `overlaps` are never used
[INFO] [stdout]    --> src/process.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl AddressRange {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 120 |     pub(crate) fn new(start: usize, end: usize) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) fn size(self) -> usize {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub(crate) fn contains(self, address: usize) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub(crate) fn overlaps(self, other: Self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `sepc`, and `sstatus` are never read
[INFO] [stdout]    --> src/process.rs:142:16
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub(crate) struct UserContext {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 142 |     pub(crate) x: [usize; 32],
[INFO] [stdout]     |                ^
[INFO] [stdout] 143 |     pub(crate) sepc: usize,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 144 |     pub(crate) sstatus: usize,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/process.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl UserContext {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 148 |     pub(crate) fn new(entry: usize, user_sp: usize, sstatus: usize) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_stack`, `trap_stack`, and `context` are never read
[INFO] [stdout]    --> src/process.rs:161:16
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub(crate) struct UserRuntime {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 161 |     pub(crate) user_stack: AddressRange,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 162 |     pub(crate) trap_stack: AddressRange,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 163 |     pub(crate) context: UserContext,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserRuntime` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user` is never read
[INFO] [stdout]    --> src/process.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub(crate) struct Process<'program> {
[INFO] [stdout]     |                   ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 170 |     user: Option<UserRuntime>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/process.rs:204:19
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'program> Process<'program> {
[INFO] [stdout]     | -------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub(crate) fn start(&mut self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub(crate) fn finish_exit(&mut self, code: u8) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub(crate) fn finish_fault(&mut self, info: FaultInfo) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub(crate) fn attach_user_runtime(&mut self, runtime: UserRuntime) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub(crate) fn user_runtime(&self) -> &UserRuntime {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub(crate) fn id(&self) -> u64 {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub(crate) fn program(&self) -> &Program {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub(crate) fn state(&self) -> ProcessState {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSCALL_PUTCHAR` is never used
[INFO] [stdout]  --> src/syscall.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const SYSCALL_PUTCHAR: usize = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSCALL_EXIT` is never used
[INFO] [stdout]  --> src/syscall.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const SYSCALL_EXIT: usize = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_UNKNOWN_SYSCALL` is never used
[INFO] [stdout]  --> src/syscall.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_UNKNOWN_SYSCALL: isize = -1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_INVALID_ARGUMENT` is never used
[INFO] [stdout]   --> src/syscall.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_INVALID_ARGUMENT: isize = -2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SyscallOutcome` is never used
[INFO] [stdout]   --> src/syscall.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum SyscallOutcome {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch` is never used
[INFO] [stdout]   --> src/syscall.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn dispatch(number: usize, arg0: usize) -> SyscallOutcome {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trigger_illegal_instruction` is never used
[INFO] [stdout]    --> src/trap.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn trigger_illegal_instruction();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSTATUS_SIE` is never used
[INFO] [stdout]   --> src/user.rs:92:7
[INFO] [stdout]    |
[INFO] [stdout] 92 | const SSTATUS_SIE: usize = 1 << 1;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSTATUS_SPIE` is never used
[INFO] [stdout]   --> src/user.rs:93:7
[INFO] [stdout]    |
[INFO] [stdout] 93 | const SSTATUS_SPIE: usize = 1 << 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSTATUS_SPP` is never used
[INFO] [stdout]   --> src/user.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const SSTATUS_SPP: usize = 1 << 8;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STACK_BYTES` is never used
[INFO] [stdout]   --> src/user.rs:95:7
[INFO] [stdout]    |
[INFO] [stdout] 95 | const STACK_BYTES: usize = 16 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTION_RESUME_USER` is never used
[INFO] [stdout]   --> src/user.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const ACTION_RESUME_USER: usize = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTION_TERMINATE_PROCESS` is never used
[INFO] [stdout]   --> src/user.rs:98:7
[INFO] [stdout]    |
[INFO] [stdout] 98 | const ACTION_TERMINATE_PROCESS: usize = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NO_EXIT_CODE` is never used
[INFO] [stdout]   --> src/user.rs:99:7
[INFO] [stdout]    |
[INFO] [stdout] 99 | const NO_EXIT_CODE: usize = usize::MAX;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAST_EXIT_CODE` is never used
[INFO] [stdout]    --> src/user.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | static LAST_EXIT_CODE: AtomicUsize = AtomicUsize::new(NO_EXIT_CODE);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `EXPECTED_TRAP_FRAME` is never used
[INFO] [stdout]    --> src/user.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | static EXPECTED_TRAP_FRAME: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `symbol_address` is never used
[INFO] [stdout]    --> src/user.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn symbol_address(symbol: *const u8) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kernel_trap_entry_address` is never used
[INFO] [stdout]    --> src/user.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn kernel_trap_entry_address() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user07_code_addresses` is never used
[INFO] [stdout]    --> src/user.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn user07_code_addresses() -> (usize, usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user08_code_addresses` is never used
[INFO] [stdout]    --> src/user.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn user08_code_addresses() -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user08_known_ecall` is never used
[INFO] [stdout]    --> src/user.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn user08_known_ecall(address: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user09_code_addresses` is never used
[INFO] [stdout]    --> src/user.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn user09_code_addresses() -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user09_stress_code_addresses` is never used
[INFO] [stdout]    --> src/user.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn user09_stress_code_addresses() -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user09_ecall_kind` is never used
[INFO] [stdout]    --> src/user.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn user09_ecall_kind(address: usize) -> Option<&'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stack_ranges` is never used
[INFO] [stdout]    --> src/user.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn stack_ranges() -> (AddressRange, AddressRange, AddressRange) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trusted_user_sstatus` is never used
[INFO] [stdout]    --> src/user.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn trusted_user_sstatus() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_sie` is never used
[INFO] [stdout]    --> src/user.rs:210:4
[INFO] [stdout]     |
[INFO] [stdout] 210 | fn read_sie() -> usize {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_stvec` is never used
[INFO] [stdout]    --> src/user.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn read_stvec() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_sp` is never used
[INFO] [stdout]    --> src/user.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn current_sp() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop` is never used
[INFO] [stdout]    --> src/user.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn stop() -> ! {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_runtime_ranges` is never used
[INFO] [stdout]    --> src/user.rs:253:4
[INFO] [stdout]     |
[INFO] [stdout] 253 | fn validate_runtime_ranges(user_stack: AddressRange, trap_stack: AddressRange) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initial_user_sp` is never used
[INFO] [stdout]    --> src/user.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn initial_user_sp(user_stack: AddressRange) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_process` is never used
[INFO] [stdout]    --> src/user.rs:275:4
[INFO] [stdout]     |
[INFO] [stdout] 275 | fn prepare_process<'program>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enter_process` is never used
[INFO] [stdout]    --> src/user.rs:316:4
[INFO] [stdout]     |
[INFO] [stdout] 316 | fn enter_process(process: &Process<'_>) -> ! {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_process` is never used
[INFO] [stdout]    --> src/user.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn run_process(process: &Process<'_>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_user_trap` is never used
[INFO] [stdout]    --> src/user.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn validate_user_trap(frame: &TrapFrame, code_start: usize, code_end: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_return` is never used
[INFO] [stdout]    --> src/user.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn apply_return(frame: &mut TrapFrame, result: isize, code_end: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_lesson07` is never used
[INFO] [stdout]    --> src/user.rs:388:15
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub(crate) fn run_lesson07(pid: u64) -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_lesson07` is never used
[INFO] [stdout]    --> src/user.rs:433:4
[INFO] [stdout]     |
[INFO] [stdout] 433 | fn handle_lesson07(frame: &TrapFrame) -> ! {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_lesson08` is never used
[INFO] [stdout]    --> src/user.rs:493:15
[INFO] [stdout]     |
[INFO] [stdout] 493 | pub(crate) fn run_lesson08(pid: u64) -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_lesson08` is never used
[INFO] [stdout]    --> src/user.rs:514:4
[INFO] [stdout]     |
[INFO] [stdout] 514 | fn handle_lesson08(frame: &mut TrapFrame) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_exit_mailbox` is never used
[INFO] [stdout]    --> src/user.rs:548:4
[INFO] [stdout]     |
[INFO] [stdout] 548 | fn reset_exit_mailbox() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_exit_code` is never used
[INFO] [stdout]    --> src/user.rs:552:4
[INFO] [stdout]     |
[INFO] [stdout] 552 | fn take_exit_code() -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_trap_frame` is never used
[INFO] [stdout]    --> src/user.rs:560:4
[INFO] [stdout]     |
[INFO] [stdout] 560 | fn record_trap_frame(address: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_runtime_stacks` is never used
[INFO] [stdout]    --> src/user.rs:572:4
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn clear_runtime_stacks(user_stack: AddressRange, trap_stack: AddressRange) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_lesson09` is never used
[INFO] [stdout]    --> src/user.rs:584:15
[INFO] [stdout]     |
[INFO] [stdout] 584 | pub(crate) fn run_lesson09(first_pid: u64) -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_lesson09` is never used
[INFO] [stdout]    --> src/user.rs:680:4
[INFO] [stdout]     |
[INFO] [stdout] 680 | fn handle_lesson09(frame: &mut TrapFrame) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enter_user_mode` is never used
[INFO] [stdout]   --> src/user.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn enter_user_mode(user_sp: usize, entry: usize, sstatus: usize, trap_stack_top: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_user` is never used
[INFO] [stdout]   --> src/user.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn run_user(user_sp: usize, entry: usize, sstatus: usize, trap_stack_top: usize) -> usize;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trap_entry` is never used
[INFO] [stdout]   --> src/user.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn trap_entry();
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_start` is never used
[INFO] [stdout]   --> src/user.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     static user_start: u8;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_entry` is never used
[INFO] [stdout]   --> src/user.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 |     static user_entry: u8;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_ecall` is never used
[INFO] [stdout]   --> src/user.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |     static user_ecall: u8;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_end` is never used
[INFO] [stdout]   --> src/user.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |     static user_end: u8;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_start` is never used
[INFO] [stdout]   --> src/user.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 |     static user08_start: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_entry` is never used
[INFO] [stdout]   --> src/user.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 |     static user08_entry: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_ecall_unknown` is never used
[INFO] [stdout]   --> src/user.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     static user08_ecall_unknown: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_ecall_invalid` is never used
[INFO] [stdout]   --> src/user.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     static user08_ecall_invalid: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_ecall_o` is never used
[INFO] [stdout]   --> src/user.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 |     static user08_ecall_o: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_ecall_k` is never used
[INFO] [stdout]   --> src/user.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |     static user08_ecall_k: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_ecall_newline` is never used
[INFO] [stdout]   --> src/user.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 |     static user08_ecall_newline: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user08_end` is never used
[INFO] [stdout]   --> src/user.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 |     static user08_end: u8;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_start` is never used
[INFO] [stdout]   --> src/user.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 |     static user09_start: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_entry` is never used
[INFO] [stdout]   --> src/user.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 |     static user09_entry: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_ecall_invalid_exit` is never used
[INFO] [stdout]   --> src/user.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     static user09_ecall_invalid_exit: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_ecall_exit7` is never used
[INFO] [stdout]   --> src/user.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 |     static user09_ecall_exit7: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_end` is never used
[INFO] [stdout]   --> src/user.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 |     static user09_end: u8;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_stress_start` is never used
[INFO] [stdout]   --> src/user.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |     static user09_stress_start: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_stress_entry` is never used
[INFO] [stdout]   --> src/user.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 |     static user09_stress_entry: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_stress_ecall` is never used
[INFO] [stdout]   --> src/user.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 |     static user09_stress_ecall: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user09_stress_end` is never used
[INFO] [stdout]   --> src/user.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     static user09_stress_end: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_stack_start` is never used
[INFO] [stdout]   --> src/user.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 |     static user_stack_start: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_stack_end` is never used
[INFO] [stdout]   --> src/user.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 |     static user_stack_end: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_trap_stack_start` is never used
[INFO] [stdout]   --> src/user.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     static user_trap_stack_start: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `user_trap_stack_end` is never used
[INFO] [stdout]   --> src/user.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 |     static user_trap_stack_end: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `sboot_stack` is never used
[INFO] [stdout]   --> src/user.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 |     static sboot_stack: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `eboot_stack` is never used
[INFO] [stdout]   --> src/user.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     static eboot_stack: u8;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5", kill_on_drop: false }`
[INFO] [stdout] 2acc2f1e31c013c8675bc2d2c0fc21e23a944b84d945ab80536bef70bc1e56f5
