[INFO] cloning repository https://github.com/f0rtis-net/Anvil [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/f0rtis-net/Anvil" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ff0rtis-net%2FAnvil", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ff0rtis-net%2FAnvil'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5e9dcbe584b75ea3bc745716f271f8d419f21a83 [INFO] checking f0rtis-net/Anvil against try#d83b14207998f47b18a34e930157ac0d7c18b16e for pr-149137 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ff0rtis-net%2FAnvil" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/f0rtis-net/Anvil [INFO] finished tweaking git repo https://github.com/f0rtis-net/Anvil [INFO] tweaked toml for git repo https://github.com/f0rtis-net/Anvil written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/f0rtis-net/Anvil on toolchain d83b14207998f47b18a34e930157ac0d7c18b16e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d83b14207998f47b18a34e930157ac0d7c18b16e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/f0rtis-net/Anvil 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" "+d83b14207998f47b18a34e930157ac0d7c18b16e" "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 [ERROR] error running command: no output for 300 seconds [INFO] checking f0rtis-net/Anvil against try#d83b14207998f47b18a34e930157ac0d7c18b16e for pr-149137 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ff0rtis-net%2FAnvil" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/f0rtis-net/Anvil [INFO] finished tweaking git repo https://github.com/f0rtis-net/Anvil [INFO] tweaked toml for git repo https://github.com/f0rtis-net/Anvil written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/f0rtis-net/Anvil on toolchain d83b14207998f47b18a34e930157ac0d7c18b16e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d83b14207998f47b18a34e930157ac0d7c18b16e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/f0rtis-net/Anvil 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" "+d83b14207998f47b18a34e930157ac0d7c18b16e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bootloader v0.9.33 [INFO] [stderr] Downloaded linked_list_allocator v0.9.1 [INFO] [stderr] Downloaded acpi v5.2.0 [INFO] [stderr] Downloaded pc-keyboard v0.3.1 [INFO] [stderr] Downloaded pic8259 v0.10.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+d83b14207998f47b18a34e930157ac0d7c18b16e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 648a9627723624cfec4e1b1f5ea57bdba3f41d97b14ddb62d382a6fb64a30f02 [INFO] running `Command { std: "docker" "start" "-a" "648a9627723624cfec4e1b1f5ea57bdba3f41d97b14ddb62d382a6fb64a30f02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "648a9627723624cfec4e1b1f5ea57bdba3f41d97b14ddb62d382a6fb64a30f02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "648a9627723624cfec4e1b1f5ea57bdba3f41d97b14ddb62d382a6fb64a30f02", kill_on_drop: false }` [INFO] [stdout] 648a9627723624cfec4e1b1f5ea57bdba3f41d97b14ddb62d382a6fb64a30f02 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+d83b14207998f47b18a34e930157ac0d7c18b16e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ed86df6a1434e03e4d393ae4a66bff8267e569c0fc27fc8d32f2136f270c1cf2 [INFO] running `Command { std: "docker" "start" "-a" "ed86df6a1434e03e4d393ae4a66bff8267e569c0fc27fc8d32f2136f270c1cf2", kill_on_drop: false }` [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Compiling bootloader v0.9.33 [INFO] [stderr] Checking volatile v0.4.6 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking volatile v0.2.7 [INFO] [stderr] Checking pc-keyboard v0.3.1 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking spinning_top v0.2.5 [INFO] [stderr] Checking x86_64 v0.14.13 [INFO] [stderr] Checking linked_list_allocator v0.9.1 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking acpi v5.2.0 [INFO] [stderr] Checking pic8259 v0.10.4 [INFO] [stderr] Checking kernel v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library [INFO] [stdout] --> src/main.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | #![feature(core_intrinsics)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: using it is strongly discouraged [INFO] [stdout] = note: `#[warn(internal_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::time::Duration` [INFO] [stdout] --> src/port.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use core::time::Duration; [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: `active_level_4_table` [INFO] [stdout] --> src/memory/mod.rs:4:58 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{memory::{kernel_allocator::init_heap, vmem::{active_level_4_table, init_vmemory, BootInfoFrameAllocator}}, println}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Mapper`, `PageTableFlags`, and `Page` [INFO] [stdout] --> src/memory/vmem.rs:2:50 [INFO] [stdout] | [INFO] [stdout] 2 | use x86_64::structures::paging::{FrameAllocator, Mapper, OffsetPageTable, Page, PageTableFlags, PhysFrame, Size4KiB}; [INFO] [stdout] | ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lazy_static::lazy_static` [INFO] [stdout] --> src/fs/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use lazy_static::lazy_static; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileFlags` [INFO] [stdout] --> src/fs/mod.rs:4:38 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{fs::{devfs::Devfs, vfs::{FileFlags, Vfs, VfsError}}, println}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyboardLayout` [INFO] [stdout] --> src/bdrivers/input/ps2_kb.rs:2:38 [INFO] [stdout] | [INFO] [stdout] 2 | use pc_keyboard::{layouts, Keyboard, KeyboardLayout, ScancodeSet1}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0635]: unknown feature `slice_as_array` [INFO] [stdout] --> src/main.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(slice_as_array)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/interrupts.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | asm!("cli"); [INFO] [stdout] | ^^^^^^^^^^^ use of inline assembly [INFO] [stdout] ... [INFO] [stdout] 104 | / irq_fn!(kb_interrupt, 33, || { [INFO] [stdout] 105 | | handle_kb_irq(); [INFO] [stdout] 106 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/interrupts.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | unsafe extern "x86-interrupt" fn $f(_stack_frame: &mut InterruptStackFrame) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | / irq_fn!(kb_interrupt, 33, || { [INFO] [stdout] 105 | | handle_kb_irq(); [INFO] [stdout] 106 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] = note: this warning originates in the macro `irq_fn` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/interrupts.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | asm!("sti"); [INFO] [stdout] | ^^^^^^^^^^^ use of inline assembly [INFO] [stdout] ... [INFO] [stdout] 104 | / irq_fn!(kb_interrupt, 33, || { [INFO] [stdout] 105 | | handle_kb_irq(); [INFO] [stdout] 106 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] = note: this warning originates in the macro `irq_fn` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/task.rs:229:41 [INFO] [stdout] | [INFO] [stdout] 229 | let pml4: &mut PageTable = &mut *pml4_virt; [INFO] [stdout] | ^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/task.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 221 | / pub unsafe fn new_user>( [INFO] [stdout] 222 | | &self, [INFO] [stdout] 223 | | fa: &mut A, [INFO] [stdout] 224 | | phys_offset: VirtAddr, [INFO] [stdout] 225 | | kernel_pml4: &PageTable, [INFO] [stdout] 226 | | ) -> (&'static mut PageTable, PhysFrame, usize) { [INFO] [stdout] | |___________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `task::TaskManager::pick_free_user_slot` is unsafe and requires unsafe block [INFO] [stdout] --> src/task.rs:252:25 [INFO] [stdout] | [INFO] [stdout] 252 | let user_slot = self.pick_free_user_slot(kernel_pml4); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/task.rs:256:50 [INFO] [stdout] | [INFO] [stdout] 256 | let user_pdpt_tbl: &mut PageTable = &mut *user_pdpt_virt; [INFO] [stdout] | ^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/port.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | asm!("in al, dx", out("al") val, in("dx") port); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/port.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | unsafe fn port_in(port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/port.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | asm!("out dx, al", in("al") val, in("dx") port); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/port.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | unsafe fn port_out(port: u16, val: Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/port.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | asm!("in ax, dx", out("ax") val, in("dx") port); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/port.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | unsafe fn port_in(port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/port.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | asm!("out dx, ax", in("ax") val, in("dx") port); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/port.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe fn port_out(port: u16, val: Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/port.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | asm!("in eax, dx", out("eax") val, in("dx") port); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/port.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | unsafe fn port_in(port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block [INFO] [stdout] --> src/port.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | asm!("out dx, eax", in("eax") val, in("dx") port); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: inline assembly is entirely unchecked and can cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/port.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | unsafe fn port_out(port: u16, val: Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/memory/vmem.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | KERNEL_PT = Some(level_4_table_frame); [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/memory/vmem.rs:40:1 [INFO] [stdout] | [INFO] [stdout] 40 | / pub unsafe fn active_level_4_table(physical_memory_offset: VirtAddr) [INFO] [stdout] 41 | | -> &'static mut PageTable [INFO] [stdout] | |_____________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:30:14 [INFO] [stdout] | [INFO] [stdout] 30 | let fd = (*regs).rdi; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/syscall/mod.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | unsafe fn write(regs: *mut SyscallUsableRegs) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:31:15 [INFO] [stdout] | [INFO] [stdout] 31 | let buf = (*regs).rsi as *const u8; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:32:15 [INFO] [stdout] | [INFO] [stdout] 32 | let len = (*regs).rdx as usize; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:36:22 [INFO] [stdout] | [INFO] [stdout] 36 | let ch = *buf.add(i); [INFO] [stdout] | ^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:36:23 [INFO] [stdout] | [INFO] [stdout] 36 | let ch = *buf.add(i); [INFO] [stdout] | ^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | match (*regs).rax { [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/syscall/mod.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub unsafe extern "sysv64" fn syscall_handler(regs: *mut SyscallUsableRegs) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | 0x3c => exit_task((*regs).rdi as i64), [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:45:27 [INFO] [stdout] | [INFO] [stdout] 45 | 0x3e => kill_task((*regs).rdi, (*regs).rsi as i64), [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:45:40 [INFO] [stdout] | [INFO] [stdout] 45 | 0x3e => kill_task((*regs).rdi, (*regs).rsi as i64), [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `syscall::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | 0x01 => write(regs), [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/syscall/mod.rs:47:64 [INFO] [stdout] | [INFO] [stdout] 47 | _ => panic!("Invalid syscall function number: 0x{:x}", (*regs).rax) [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `flags` [INFO] [stdout] --> src/fs/devfs.rs:58:32 [INFO] [stdout] | [INFO] [stdout] 58 | fn open(&self, path: &str, flags: FileFlags) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_flags` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fd` [INFO] [stdout] --> src/fs/devfs.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | fn close(&self, fd: FileDescriptor) -> Result<(), VfsError> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fd` [INFO] [stdout] --> src/fs/devfs.rs:85:21 [INFO] [stdout] | [INFO] [stdout] 85 | fn write(&self, fd: FileDescriptor, buffer: &[u8]) -> Result { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/fs/devfs.rs:85:41 [INFO] [stdout] | [INFO] [stdout] 85 | fn write(&self, fd: FileDescriptor, buffer: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/fs/devfs.rs:89:21 [INFO] [stdout] | [INFO] [stdout] 89 | fn mkdir(&self, path: &str) -> Result<(), VfsError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/fs/devfs.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | fn rmdir(&self, path: &str) -> Result<(), VfsError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/fs/devfs.rs:97:22 [INFO] [stdout] | [INFO] [stdout] 97 | fn remove(&self, path: &str) -> Result<(), VfsError> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file` [INFO] [stdout] --> src/fs/mod.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | let file = devfs1.open("/dev/zero", vfs::FileFlags::Read).unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bdrivers/input/ps2_kb.rs:13:57 [INFO] [stdout] | [INFO] [stdout] 13 | static ref KBD_PORT: RwLock> = RwLock::new(unsafe { Port::new(0x60) }); [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] Some errors have detailed explanations: E0133, E0635. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `kernel` (bin "kernel") due to 1 previous error; 39 warnings emitted [INFO] running `Command { std: "docker" "inspect" "ed86df6a1434e03e4d393ae4a66bff8267e569c0fc27fc8d32f2136f270c1cf2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ed86df6a1434e03e4d393ae4a66bff8267e569c0fc27fc8d32f2136f270c1cf2", kill_on_drop: false }` [INFO] [stdout] ed86df6a1434e03e4d393ae4a66bff8267e569c0fc27fc8d32f2136f270c1cf2