[INFO] cloning repository https://github.com/kranks-uga/Tomorrow
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kranks-uga/Tomorrow" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkranks-uga%2FTomorrow", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkranks-uga%2FTomorrow'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3f96120f68c37f076771f117b1b182ae47b23ac2
[INFO] checking kranks-uga/Tomorrow against try#b152f5575a2ac7126ae0019e4e679abe9399213e for pr-157841
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkranks-uga%2FTomorrow" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/kranks-uga/Tomorrow
[INFO] finished tweaking git repo https://github.com/kranks-uga/Tomorrow
[INFO] tweaked toml for git repo https://github.com/kranks-uga/Tomorrow written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kranks-uga/Tomorrow on toolchain b152f5575a2ac7126ae0019e4e679abe9399213e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kranks-uga/Tomorrow 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" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pc-keyboard v0.7.0
[INFO] [stderr]   Downloaded cc v1.2.59
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2
[INFO] running `Command { std: "docker" "start" "9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2", 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" "9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2", 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" "9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking pc-keyboard v0.7.0
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling tomorrow v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: tomorrow@0.0.1: src/keyboard.s: Assembler messages:
[INFO] [stderr] warning: tomorrow@0.0.1: src/keyboard.s: Warning: end of file not at end of a line; newline inserted
[INFO] [stdout] warning: avoid using `.intel_syntax`, Intel syntax is the default
[INFO] [stdout]   --> src/idt.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 64 |     ".intel_syntax noprefix",
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bad_asm_style)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pml4`
[INFO] [stdout]  --> src/process.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{pml4, pmm};
[INFO] [stdout]   |             ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/scheduler.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::process::{self, Process, ProcessState};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::CONSOLE`
[INFO] [stdout]  --> src/scheduler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::CONSOLE;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.intel_syntax`, Intel syntax is the default
[INFO] [stdout]    --> src/main.rs:278:10
[INFO] [stdout]     |
[INFO] [stdout] 278 |         ".intel_syntax noprefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.att_syntax`, prefer using `options(att_syntax)` instead
[INFO] [stdout]    --> src/main.rs:286:10
[INFO] [stdout]     |
[INFO] [stdout] 286 |         ".att_syntax prefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.intel_syntax`, Intel syntax is the default
[INFO] [stdout]    --> src/main.rs:293:10
[INFO] [stdout]     |
[INFO] [stdout] 293 |         ".intel_syntax noprefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.att_syntax`, prefer using `options(att_syntax)` instead
[INFO] [stdout]    --> src/main.rs:301:10
[INFO] [stdout]     |
[INFO] [stdout] 301 |         ".att_syntax prefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main.rs:390:23
[INFO] [stdout]     |
[INFO] [stdout] 390 |     crate::write_hex!((mod_end - mod_start)); // или write_dec, если есть макрос
[INFO] [stdout]     |                       ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 390 -     crate::write_hex!((mod_end - mod_start)); // или write_dec, если есть макрос
[INFO] [stdout] 390 +     crate::write_hex!(mod_end - mod_start); // или write_dec, если есть макрос
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.intel_syntax`, Intel syntax is the default
[INFO] [stdout]   --> src/idt.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 64 |     ".intel_syntax noprefix",
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bad_asm_style)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pml4`
[INFO] [stdout]  --> src/process.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{pml4, pmm};
[INFO] [stdout]   |             ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/scheduler.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::process::{self, Process, ProcessState};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::CONSOLE`
[INFO] [stdout]  --> src/scheduler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::CONSOLE;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.intel_syntax`, Intel syntax is the default
[INFO] [stdout]    --> src/main.rs:278:10
[INFO] [stdout]     |
[INFO] [stdout] 278 |         ".intel_syntax noprefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.att_syntax`, prefer using `options(att_syntax)` instead
[INFO] [stdout]    --> src/main.rs:286:10
[INFO] [stdout]     |
[INFO] [stdout] 286 |         ".att_syntax prefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.intel_syntax`, Intel syntax is the default
[INFO] [stdout]    --> src/main.rs:293:10
[INFO] [stdout]     |
[INFO] [stdout] 293 |         ".intel_syntax noprefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: avoid using `.att_syntax`, prefer using `options(att_syntax)` instead
[INFO] [stdout]    --> src/main.rs:301:10
[INFO] [stdout]     |
[INFO] [stdout] 301 |         ".att_syntax prefix",
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main.rs:390:23
[INFO] [stdout]     |
[INFO] [stdout] 390 |     crate::write_hex!((mod_end - mod_start)); // или write_dec, если есть макрос
[INFO] [stdout]     |                       ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 390 -     crate::write_hex!((mod_end - mod_start)); // или write_dec, если есть макрос
[INFO] [stdout] 390 +     crate::write_hex!(mod_end - mod_start); // или write_dec, если есть макрос
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]   --> src/main.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | / fn panic(info: &core::panic::PanicInfo) -> ! {
[INFO] [stdout] ...  |
[INFO] [stdout] 50 | |     loop {}
[INFO] [stdout] 51 | | }
[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/b152f5575a2ac7126ae0019e4e679abe9399213e/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-ebc3593764c44f83.rmeta
[INFO] [stdout]    = note: second definition in the local crate (`tomorrow`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] warning: tomorrow@0.0.1: src/keyboard.s: Assembler messages:
[INFO] [stderr] warning: tomorrow@0.0.1: src/keyboard.s: Warning: end of file not at end of a line; newline inserted
[INFO] [stderr] error: could not compile `tomorrow` (bin "tomorrow" test) due to 1 previous error; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:536:5
[INFO] [stdout]     |
[INFO] [stdout] 533 |         scheduler::start_first_process_ring3();
[INFO] [stdout]     |         -------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 536 |     loop {}
[INFO] [stdout]     |     ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/idt.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |         base: unsafe { core::ptr::addr_of!(IDT) as u64 },
[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/ramfs.rs:41:24
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let data_ptr = unsafe { (base + off + 512) as *const u8 };
[INFO] [stdout]    |                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg4`
[INFO] [stdout]   --> src/syscall.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     arg4: u64,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_arg4`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg5`
[INFO] [stdout]   --> src/syscall.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     arg5: u64,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_arg5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 440 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] 441 |                     let mcfg_base = core::ptr::read_unaligned((entry_addr + 44) as *const u64);
[INFO] [stdout] 442 |                     kprint!("MCFG: ");
[INFO] [stdout]     |                     ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 440 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 444 |                     kprint!("\n");
[INFO] [stdout]     |                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 455 |                     kprint!("PM1a_CNT: ");
[INFO] [stdout]     |                     --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 457 |                     kprint!("\n");
[INFO] [stdout]     |                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 468 |                         kprint!("SLP_TYPa: ");
[INFO] [stdout]     |                         --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 470 |                         kprint!("\n");
[INFO] [stdout]     |                         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 472 |                         kprint!("_S5 not found\n");
[INFO] [stdout]     |                         -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 513 |     unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 524 |         kprint!("Scheduler ok\n");
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `kprint` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 440 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 443 |                     write_hex!(mcfg_base);
[INFO] [stdout]     |                     --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `write_hex` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 456 |                     write_hex!(pm1a_cnt as u64);
[INFO] [stdout]     |                     --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `write_hex` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 450 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 469 |                         write_hex!(a as u64);
[INFO] [stdout]     |                         -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `write_hex` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:397:5
[INFO] [stdout]     |
[INFO] [stdout] 397 |     unsafe { ramfs::init(); }
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SavedRegs` is more private than the item `timer_do_switch`
[INFO] [stdout]    --> src/main.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub unsafe extern "C" fn timer_do_switch(regs: *mut SavedRegs) -> *const scheduler::Context {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `timer_do_switch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SavedRegs` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/main.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | struct SavedRegs {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KERNEL_VIRT` is never used
[INFO] [stdout]   --> src/main.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const KERNEL_VIRT: u64 = 0xFFFF800000000000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `pml4` is never used
[INFO] [stdout]    --> src/main.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 272 |     static pml4: vmm::PageTable;
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kmalloc` is never used
[INFO] [stdout]   --> src/heap.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn kmalloc(size: usize) -> *mut u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kmalloc_aligned` is never used
[INFO] [stdout]   --> src/heap.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn kmalloc_aligned(size: usize, align: usize) -> *mut u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hpet` is never constructed
[INFO] [stdout]  --> src/hpet.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Hpet {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_hpet` is never used
[INFO] [stdout]   --> src/hpet.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub unsafe fn init_hpet(hpet_base: u64) -> u64 {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_counter` is never used
[INFO] [stdout]   --> src/hpet.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub unsafe fn read_counter(hpet_base: u64) -> u64 {                                                                                 ...
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read` is never used
[INFO] [stdout]  --> src/ioapic.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn read(base: u64, reg: u32) -> u32 {                                                                                                ...
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read` is never used
[INFO] [stdout]  --> src/lapic.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn read(base: u64, reg: u32) -> u32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enumerate` is never used
[INFO] [stdout]  --> src/pci.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub unsafe fn enumerate(base: u64) {
[INFO] [stdout]   |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Blocked` is never constructed
[INFO] [stdout]  --> src/process.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum ProcessState {
[INFO] [stdout]   |          ------------ variant in this enum
[INFO] [stdout] 8 |     Running,
[INFO] [stdout] 9 |     Blocked,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `syscall_mask`, `domain`, and `token` are never read
[INFO] [stdout]   --> src/process.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Process {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 14 |     pub pid: u64,
[INFO] [stdout] 15 |     pub syscall_mask: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub domain: u8,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub token: u64,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `schedule` are never used
[INFO] [stdout]   --> src/scheduler.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Scheduler {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn schedule(&mut self) -> Option<&mut Process> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_first_process` is never used
[INFO] [stdout]    --> src/scheduler.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub unsafe fn start_first_process() -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYS_READ` is never used
[INFO] [stdout]  --> src/syscall.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const SYS_READ: u64 = 0;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYS_OPEN` is never used
[INFO] [stdout]  --> src/syscall.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const SYS_OPEN: u64 = 2;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYS_CLOSE` is never used
[INFO] [stdout]  --> src/syscall.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const SYS_CLOSE: u64 = 3;
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GdtEntry` is never constructed
[INFO] [stdout]   --> src/tss.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct GdtEntry {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TssDescriptor` is never constructed
[INFO] [stdout]   --> src/tss.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TssDescriptor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_NO_EXECUTE` is never used
[INFO] [stdout]  --> src/vmm.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const PAGE_NO_EXECUTE: u64 = 1 << 63;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/vmm.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub unsafe fn load(pml4: *mut PageTable) {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/keyboard.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 |         if let Some(kb) = KEYBOARD.as_mut() {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/ramfs.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             FILES.push(file);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/ramfs.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |         for f in FILES.iter() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/ramfs.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |         for f in FILES.iter() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/ramfs.rs:80:21
[INFO] [stdout]    |
[INFO] [stdout] 80 |         for i in 0..FILES.len() {
[INFO] [stdout]    |                     ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/ramfs.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |         for i in 0..FILES.len() {
[INFO] [stdout]    |                     ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/ramfs.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         FILES.push(file);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ramfs.rs:117:21
[INFO] [stdout]     |
[INFO] [stdout] 117 |         for i in 0..FILES.len() {
[INFO] [stdout]     |                     ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/ramfs.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 FILES.remove(i);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2", kill_on_drop: false }`
[INFO] [stdout] 9b63d76f1e36be5545d936ffdeffafed0d777f6bd63829d9142267888a4ae7a2
