[INFO] cloning repository https://github.com/AceRider75/chronos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AceRider75/chronos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAceRider75%2Fchronos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAceRider75%2Fchronos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b9e12fd54ba765e0934bdfcfe4d26df39ce0eeec
[INFO] checking AceRider75/chronos against master#021fc25b7a48f6051bee1e1f06c7a277e4de1cc9 for pr-151510
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAceRider75%2Fchronos" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AceRider75/chronos
[INFO] finished tweaking git repo https://github.com/AceRider75/chronos
[INFO] tweaked toml for git repo https://github.com/AceRider75/chronos written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AceRider75/chronos on toolchain 021fc25b7a48f6051bee1e1f06c7a277e4de1cc9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AceRider75/chronos 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" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded volatile v0.4.6
[INFO] [stderr]   Downloaded spinning_top v0.2.5
[INFO] [stderr]   Downloaded pic8259 v0.10.4
[INFO] [stderr]   Downloaded pc-keyboard v0.7.0
[INFO] [stderr]   Downloaded limine v0.5.0
[INFO] [stderr]   Downloaded volatile v0.6.1
[INFO] [stderr]   Downloaded x86_64 v0.14.13
[INFO] [stderr]   Downloaded noto-sans-mono-bitmap v0.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9abca49a40cba78e212f54ea69c4b73fbc3f1a99a87fc575d3a2e9e39b9cb404
[INFO] running `Command { std: "docker" "start" "-a" "9abca49a40cba78e212f54ea69c4b73fbc3f1a99a87fc575d3a2e9e39b9cb404", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9abca49a40cba78e212f54ea69c4b73fbc3f1a99a87fc575d3a2e9e39b9cb404", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9abca49a40cba78e212f54ea69c4b73fbc3f1a99a87fc575d3a2e9e39b9cb404", kill_on_drop: false }`
[INFO] [stdout] 9abca49a40cba78e212f54ea69c4b73fbc3f1a99a87fc575d3a2e9e39b9cb404
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fc7e07830a04e74538299f2ed5707e8ffc0b25e25505205583d98588d103eedd
[INFO] running `Command { std: "docker" "start" "-a" "fc7e07830a04e74538299f2ed5707e8ffc0b25e25505205583d98588d103eedd", kill_on_drop: false }`
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking volatile v0.4.6
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking pc-keyboard v0.7.0
[INFO] [stderr]     Checking volatile v0.6.1
[INFO] [stderr]     Checking noto-sans-mono-bitmap v0.2.0
[INFO] [stderr]     Checking limine v0.5.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking spinning_top v0.2.5
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking x86_64 v0.14.13
[INFO] [stderr]     Checking linked_list_allocator v0.10.5
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking pic8259 v0.10.4
[INFO] [stderr]     Checking chronos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `x86_64::VirtAddr`
[INFO] [stdout]  --> src/interrupts.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use x86_64::VirtAddr;
[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: `gdt`
[INFO] [stdout]  --> src/interrupts.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::{state, input, writer, gdt};
[INFO] [stdout]   |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RasterizedChar`
[INFO] [stdout]  --> src/writer.rs:1:41
[INFO] [stdout]   |
[INFO] [stdout] 1 | use noto_sans_mono_bitmap::{get_raster, RasterizedChar, FontWeight, RasterHeight};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x86_64::structures::paging::mapper::MapToError`
[INFO] [stdout]  --> src/allocator.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use x86_64::structures::paging::mapper::MapToError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x86_64::VirtAddr`
[INFO] [stdout]  --> src/allocator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use x86_64::VirtAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::format`
[INFO] [stdout]  --> src/scheduler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use alloc::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `elf`
[INFO] [stdout]  --> src/shell.rs:1:77
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{input, writer, fs, userspace, gdt, memory, state, pci, rtl8139, elf, compositor, logger, scheduler, ata}; 
[INFO] [stdout]   |                                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DS`
[INFO] [stdout]   --> src/gdt.rs:56:59
[INFO] [stdout]    |
[INFO] [stdout] 56 |     use x86_64::instructions::segmentation::{CS, Segment, DS, SS};
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> src/userspace.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gdt`
[INFO] [stdout]  --> src/userspace.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::gdt;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::writer`
[INFO] [stdout]  --> src/pci.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::writer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::format`
[INFO] [stdout]  --> src/pci.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use alloc::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]  --> src/pci.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use alloc::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::vec::Vec`
[INFO] [stdout]  --> src/net.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use alloc::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]  --> src/net.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use alloc::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stack_frame`
[INFO] [stdout]   --> src/interrupts.rs:99:43
[INFO] [stdout]    |
[INFO] [stdout] 99 | extern "x86-interrupt" fn syscall_handler(stack_frame: InterruptStackFrame) {
[INFO] [stdout]    |                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stack_frame`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `video_addr`
[INFO] [stdout]    --> src/interrupts.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let video_addr = state::VIDEO_PTR.load(Ordering::Relaxed);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/interrupts.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let width = state::SCREEN_WIDTH.load(Ordering::Relaxed);
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/interrupts.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let height = state::SCREEN_HEIGHT.load(Ordering::Relaxed);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/shell.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut win = compositor::Window::new(50, 50, 700, 400, "Terminal 1");
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/shell.rs:823:50
[INFO] [stdout]     |
[INFO] [stdout] 793 | ...   unsafe {
[INFO] [stdout]     |       ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 823 | ...       KERNEL_RSP.store(unsafe { let r: u64; core::arch::asm!("mov {}, rsp", out(reg) r); r & !0xF }, Ordering::Relaxed);
[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] error: the `#[alloc_error_handler]` in this crate conflicts with allocation error handler in: std
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chronos` (bin "chronos" test) due to 2 previous errors; 15 warnings emitted
[INFO] [stdout] warning: unused import: `x86_64::VirtAddr`
[INFO] [stdout]  --> src/interrupts.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use x86_64::VirtAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `gdt`
[INFO] [stdout]  --> src/interrupts.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::{state, input, writer, gdt};
[INFO] [stdout]   |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RasterizedChar`
[INFO] [stdout]  --> src/writer.rs:1:41
[INFO] [stdout]   |
[INFO] [stdout] 1 | use noto_sans_mono_bitmap::{get_raster, RasterizedChar, FontWeight, RasterHeight};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x86_64::structures::paging::mapper::MapToError`
[INFO] [stdout]  --> src/allocator.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use x86_64::structures::paging::mapper::MapToError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x86_64::VirtAddr`
[INFO] [stdout]  --> src/allocator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use x86_64::VirtAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::format`
[INFO] [stdout]  --> src/scheduler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use alloc::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/shell.rs:625:21
[INFO] [stdout]     |
[INFO] [stdout] 625 |                 let mut win = compositor::Window::new(300, 100, 400, 500, "System Monitor");
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `elf`
[INFO] [stdout]  --> src/shell.rs:1:77
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{input, writer, fs, userspace, gdt, memory, state, pci, rtl8139, elf, compositor, logger, scheduler, ata}; 
[INFO] [stdout]   |                                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/shell.rs:667:21
[INFO] [stdout]     |
[INFO] [stdout] 667 |                 let mut win = compositor::Window::new(150, 150, 500, 400, "File Explorer");
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hhdm`
[INFO] [stdout]    --> src/shell.rs:842:13
[INFO] [stdout]     |
[INFO] [stdout] 842 |         let hhdm = state::HHDM_OFFSET.load(Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_hhdm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DS`
[INFO] [stdout]   --> src/gdt.rs:56:59
[INFO] [stdout]    |
[INFO] [stdout] 56 |     use x86_64::instructions::segmentation::{CS, Segment, DS, SS};
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> src/userspace.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gdt`
[INFO] [stdout]  --> src/userspace.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::gdt;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::writer`
[INFO] [stdout]  --> src/pci.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::writer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::format`
[INFO] [stdout]  --> src/pci.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use alloc::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]  --> src/pci.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use alloc::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::vec::Vec`
[INFO] [stdout]  --> src/net.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use alloc::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]  --> src/net.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use alloc::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]   --> src/main.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / fn panic(info: &core::panic::PanicInfo) -> ! {
[INFO] [stdout] 48 | |     writer::print("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
[INFO] [stdout] 49 | |     writer::print("[KERNEL PANIC] SYSTEM HALTED\n");
[INFO] [stdout] ...  |
[INFO] [stdout] 66 | |     loop { core::hint::spin_loop(); }
[INFO] [stdout] 67 | | }
[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/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-c5abb1a111f38647.rmeta
[INFO] [stdout]    = note: second definition in the local crate (`chronos`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `video_ptr`
[INFO] [stdout]    --> src/shell.rs:968:9
[INFO] [stdout]     |
[INFO] [stdout] 968 |     let video_ptr = state::VIDEO_PTR.load(Ordering::Relaxed) as *mut u32;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_ptr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/shell.rs:971:9
[INFO] [stdout]     |
[INFO] [stdout] 971 |     let pitch = width; // Approximate pitch
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `i` is never read
[INFO] [stdout]    --> src/rtl8139.rs:133:75
[INFO] [stdout]     |
[INFO] [stdout] 133 |         pkt[i] = 0x39; pkt[i+1] = 0x03; pkt[i+2] = 0xF3; pkt[i+3] = 0x26; i += 4; // XID
[INFO] [stdout]     |                                                                           ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/net.rs:128:15
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn handle_udp(data: &[u8], ip_header_ptr: *const u8) {
[INFO] [stdout]     |               ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compositor.rs:553:21
[INFO] [stdout]     |
[INFO] [stdout] 553 |         if let Some(mut w) = writer::WRITER.lock().as_mut() {
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CYCLE_BUDGET` is never used
[INFO] [stdout]  --> src/state.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub static CYCLE_BUDGET: AtomicU64 = AtomicU64::new(2_500_000);
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjust_budget` is never used
[INFO] [stdout]   --> src/state.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn adjust_budget(amount: i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_string` is never used
[INFO] [stdout]   --> src/writer.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Writer {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn write_string(&mut self, s: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/shell.rs:845:22
[INFO] [stdout]     |
[INFO] [stdout] 845 |         struct Stack([u8; 4096]);
[INFO] [stdout]     |                ----- ^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_kernel_selectors` is never used
[INFO] [stdout]   --> src/gdt.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn get_kernel_selectors() -> (u16, u16) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `syscall_print` is never used
[INFO] [stdout]   --> src/userspace.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn syscall_print() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup_vendor` is never used
[INFO] [stdout]   --> src/pci.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn lookup_vendor(id: u16) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REG_MAC` is never used
[INFO] [stdout]  --> src/rtl8139.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const REG_MAC: u16 = 0x00;      // MAC Address
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REG_ISR` is never used
[INFO] [stdout]   --> src/rtl8139.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const REG_ISR: u16 = 0x3E;      // Interrupt Status Register
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REG_TCR` is never used
[INFO] [stdout]   --> src/rtl8139.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const REG_TCR: u16 = 0x40;      // Transmit Configuration Register
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `log_mac` and `get_hardware_status` are never used
[INFO] [stdout]    --> src/rtl8139.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Rtl8139 {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn log_mac(&self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn get_hardware_status(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElfHeader` is never constructed
[INFO] [stdout]  --> src/elf.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct ElfHeader {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_elf` is never used
[INFO] [stdout]   --> src/elf.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn run_elf(data: &[u8]) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `saved_background` and `first_draw` are never read
[INFO] [stdout]   --> src/mouse.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Mouse {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     saved_background: [u32; 100], 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     first_draw: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_position` is never used
[INFO] [stdout]   --> src/mouse.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_position() -> (usize, usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cursor_visible` is never read
[INFO] [stdout]   --> src/compositor.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Window {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub cursor_visible: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_cursor`, `print_at`, and `draw_cursor` are never used
[INFO] [stdout]    --> src/compositor.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Window {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn set_cursor(&mut self, x: usize, y: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn print_at(&mut self, x: usize, y: usize, text: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn draw_cursor(&mut self, color: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SerialPort` is never constructed
[INFO] [stdout]  --> src/serial.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SerialPort {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `init`, `is_transmit_empty`, and `send` are never used
[INFO] [stdout]   --> src/serial.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl SerialPort {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(base: u16) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn init(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn is_transmit_empty(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn send(&mut self, data: u8) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERROR_PORT` is never used
[INFO] [stdout]  --> src/ata.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const ERROR_PORT: u16 = 0x1F1;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/allocator.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let heap_start = HEAP_MEM.as_ptr() as usize;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/shell.rs:848:32
[INFO] [stdout]     |
[INFO] [stdout] 848 |         let s_phys = (unsafe { &S as *const _ as u64 }) - k_delta;
[INFO] [stdout]     |                                ^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 848 |         let s_phys = (unsafe { &raw const S as *const _ as u64 }) - k_delta;
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/shell.rs:1102:12
[INFO] [stdout]      |
[INFO] [stdout] 1102 |         if SHELL.is_none() {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/shell.rs:1112:14
[INFO] [stdout]      |
[INFO] [stdout] 1112 |     unsafe { SHELL.as_mut() }
[INFO] [stdout]      |              ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/gdt.rs:16:55
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let stack_start = VirtAddr::from_ptr(unsafe { &KERNEL_STACK });
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let stack_start = VirtAddr::from_ptr(unsafe { &raw const KERNEL_STACK });
[INFO] [stdout]    |                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/gdt.rs:25:57
[INFO] [stdout]    |
[INFO] [stdout] 25 |              let df_start = VirtAddr::from_ptr(unsafe { &DF_STACK });
[INFO] [stdout]    |                                                         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 25 |              let df_start = VirtAddr::from_ptr(unsafe { &raw const DF_STACK });
[INFO] [stdout]    |                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/memory.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let allocator = FRAME_ALLOCATOR.as_mut().expect("PMM not init");
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fc7e07830a04e74538299f2ed5707e8ffc0b25e25505205583d98588d103eedd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc7e07830a04e74538299f2ed5707e8ffc0b25e25505205583d98588d103eedd", kill_on_drop: false }`
[INFO] [stdout] fc7e07830a04e74538299f2ed5707e8ffc0b25e25505205583d98588d103eedd
