[INFO] cloning repository https://github.com/timgihangir-rgb/VitaminOs26_REP
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/timgihangir-rgb/VitaminOs26_REP" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftimgihangir-rgb%2FVitaminOs26_REP", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftimgihangir-rgb%2FVitaminOs26_REP'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d06879b7c840b6dceb4a59d5950f747b5c5d036b
[INFO] checking timgihangir-rgb/VitaminOs26_REP against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftimgihangir-rgb%2FVitaminOs26_REP" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-7-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/timgihangir-rgb/VitaminOs26_REP
[INFO] finished tweaking git repo https://github.com/timgihangir-rgb/VitaminOs26_REP
[INFO] tweaked toml for git repo https://github.com/timgihangir-rgb/VitaminOs26_REP written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/timgihangir-rgb/VitaminOs26_REP on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/timgihangir-rgb/VitaminOs26_REP already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d
[INFO] running `Command { std: "docker" "start" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d", 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" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d", 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" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling x86_64 v0.14.7
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking volatile v0.4.6
[INFO] [stderr]     Checking spinning_top v0.2.5
[INFO] [stderr]     Checking linked_list_allocator v0.10.6
[INFO] [stderr]    Compiling vitamin_os26 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]    --> src/main.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | / fn panic(info: &PanicInfo) -> ! {
[INFO] [stdout] 268 | |     let mut writer = vga::Writer::new();
[INFO] [stdout] 269 | |     writer.write_string("KERNEL PANIC: ");
[INFO] [stdout] ...   |
[INFO] [stdout] 306 | |     halt_loop()
[INFO] [stdout] 307 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the lang item is first defined in crate `std` (which `test` depends on)
[INFO] [stdout]     = note: first definition in `std` loaded from /opt/rustwide/rustup-home/toolchains/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6ee2a0f0126c8a50.rmeta
[INFO] [stdout]     = note: second definition in the local crate (`vitamin_os26`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `vitamin_os26` (bin "vitamin_os26" test) due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: the feature `default_alloc_error_handler` has been stable since 1.68.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(default_alloc_error_handler)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:175:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     shell::run_shell(&mut writer, mem, &mut vfs, 0);
[INFO] [stdout]     |     ----------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 175 |     crate::vga::serial_write_atomic("[M] shell-exit\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::panic::PanicInfo::<'a>::payload`: this never returns anything useful
[INFO] [stdout]    --> src/main.rs:286:24
[INFO] [stdout]     |
[INFO] [stdout] 286 |     let payload = info.payload();
[INFO] [stdout]     |                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `e0` is never read
[INFO] [stdout]    --> src/keyboard.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |             e0 = false;
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/power.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let ecx = unsafe { core::arch::x86_64::__cpuid(1) }.ecx;
[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/scheduler.rs:920:17
[INFO] [stdout]     |
[INFO] [stdout] 859 |     unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 920 |                 unsafe {
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t0`
[INFO] [stdout]    --> src/scheduler.rs:847:9
[INFO] [stdout]     |
[INFO] [stdout] 847 |     let t0 = TICKS.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_t0`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/sysinfo.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let cpuid = unsafe { core::arch::x86_64::__cpuid(0) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/sysinfo.rs:112:28
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let max_extended = unsafe { core::arch::x86_64::__cpuid(0x80000000).eax };
[INFO] [stdout]     |                            ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/sysinfo.rs:114:25
[INFO] [stdout]     |
[INFO] [stdout] 114 |             let mut c = unsafe { core::arch::x86_64::__cpuid(0x80000002) };
[INFO] [stdout]     |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/sysinfo.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |             c = unsafe { core::arch::x86_64::__cpuid(0x80000003) };
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/sysinfo.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |             c = unsafe { core::arch::x86_64::__cpuid(0x80000004) };
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/sysinfo.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let cpuid = unsafe { core::arch::x86_64::__cpuid(0x1) };
[INFO] [stdout]     |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/vitafs.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 492 |     let mut fresh_bb = [0u8; BLOCK_SIZE];
[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: function `identify_sectors` is never used
[INFO] [stdout]    --> src/ahci.rs:496:11
[INFO] [stdout]     |
[INFO] [stdout] 496 | unsafe fn identify_sectors() -> Option<u64> {
[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 `active_name` is never used
[INFO] [stdout]    --> src/blockdev.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn active_name() -> alloc::string::String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serial_write_bytes` is never used
[INFO] [stdout]    --> src/interrupts.rs:239:4
[INFO] [stdout]     |
[INFO] [stdout] 239 | fn serial_write_bytes(b: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USER_STACK_ENTRY_RSP` is never used
[INFO] [stdout]   --> src/paging.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const USER_STACK_ENTRY_RSP: u64 = USER_STACK_TOP - 8;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_table` is never used
[INFO] [stdout]    --> src/part.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn write_table(entries: &[Entry; ENTRY_COUNT]) -> Result<(), ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vendor`, `device`, `class`, and `subclass` are never read
[INFO] [stdout]   --> src/pci.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct PciDev {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub vendor: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 62 |     pub device: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 63 |     pub class: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 64 |     pub subclass: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PciDev` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usable_regions` is never read
[INFO] [stdout]    --> src/sysinfo.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct MemInfo {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 156 |     pub total_usable: u64,
[INFO] [stdout] 157 |     pub usable_regions: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mknod` is never used
[INFO] [stdout]    --> src/vfs.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl Vfs {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn mknod(&mut self, path: &str) -> Result<(), ()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ensure_lines_available` is never used
[INFO] [stdout]    --> src/vga.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl Writer {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn ensure_lines_available(&mut self, needed: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serial_write` is never used
[INFO] [stdout]    --> src/vga.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub fn serial_write(s: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_free_data_blocks` is never used
[INFO] [stdout]    --> src/vitafs.rs:410:8
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub fn count_free_data_blocks(sb: &Superblock) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_free_inodes` is never used
[INFO] [stdout]    --> src/vitafs.rs:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn count_free_inodes(sb: &Superblock) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bitmap_selftest_disk` is never used
[INFO] [stdout]    --> src/vitafs.rs:478:8
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub fn bitmap_selftest_disk() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_FILE_BLOCKS` is never used
[INFO] [stdout]    --> src/vitafs.rs:578:11
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub const MAX_FILE_BLOCKS: u32 = (DIRECT_BLOCKS + PTRS_PER_BLOCK) as u32; // 1036
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inode_selftest_disk` is never used
[INFO] [stdout]    --> src/vitafs.rs:784:8
[INFO] [stdout]     |
[INFO] [stdout] 784 | pub fn inode_selftest_disk() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inode_selftest_pure` is never used
[INFO] [stdout]    --> src/vitafs.rs:823:4
[INFO] [stdout]     |
[INFO] [stdout] 823 | fn inode_selftest_pure() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icache_selftest_disk` is never used
[INFO] [stdout]     --> src/vitafs.rs:1171:8
[INFO] [stdout]      |
[INFO] [stdout] 1171 | pub fn icache_selftest_disk() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_selftest_disk` is never used
[INFO] [stdout]     --> src/vitafs.rs:1458:8
[INFO] [stdout]      |
[INFO] [stdout] 1458 | pub fn dir_selftest_disk() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fileops_selftest_disk` is never used
[INFO] [stdout]     --> src/vitafs.rs:1923:8
[INFO] [stdout]      |
[INFO] [stdout] 1923 | pub fn fileops_selftest_disk() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/main.rs:76:51
[INFO] [stdout]    |
[INFO] [stdout] 76 |     match memory::init_heap(&mut mapper, unsafe { &mut memory::FRAME_ALLOC }) {
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 76 |     match memory::init_heap(&mut mapper, unsafe { &raw mut memory::FRAME_ALLOC }) {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ahci.rs:229:27
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let (clb, fb) = (phys(CMD_LIST.0.as_ptr()), phys(FIS_AREA.0.as_ptr()));
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/ahci.rs:229:54
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let (clb, fb) = (phys(CMD_LIST.0.as_ptr()), phys(FIS_AREA.0.as_ptr()));
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/ahci.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     CMD_TABLE.0.fill(0);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/ahci.rs:314:22
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let p = phys(DMA.0.as_ptr());
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/ahci.rs:326:19
[INFO] [stdout]     |
[INFO] [stdout] 326 |     let ct = phys(CMD_TABLE.0.as_ptr());
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/ahci.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 331 |     CMD_LIST.0.fill(0);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/ahci.rs:338:5
[INFO] [stdout]     |
[INFO] [stdout] 338 |     FIS_AREA.0.fill(0);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/bcache.rs:56:39
[INFO] [stdout]    |
[INFO] [stdout] 56 |     unsafe { core::ptr::read_volatile(&CSTATS) }
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |     unsafe { core::ptr::read_volatile(&raw const CSTATS) }
[INFO] [stdout]    |                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/bcache.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let p = &mut CLOCK as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let p = &raw mut CLOCK as *mut u64;
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/bcache.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let p = &mut CSTATS.dirty_evictions as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let p = &raw mut CSTATS.dirty_evictions as *mut u64;
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/bcache.rs:120:26
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 let hp = &mut CSTATS.hits as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 let hp = &raw mut CSTATS.hits as *mut u64;
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/bcache.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mp = &mut CSTATS.misses as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mp = &raw mut CSTATS.misses as *mut u64;
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/bcache.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout] 187 |         for e in ENTRIES.iter_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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/bcache.rs:210:50
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 let buf: &mut [u8; BLOCK_SIZE] = &mut CAP_BUF;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 let buf: &mut [u8; BLOCK_SIZE] = &raw mut CAP_BUF;
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:101:45
[INFO] [stdout]     |
[INFO] [stdout] 101 |             reads: core::ptr::read_volatile(&STATS.reads),
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 101 |             reads: core::ptr::read_volatile(&raw const STATS.reads),
[INFO] [stdout]     |                                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:102:46
[INFO] [stdout]     |
[INFO] [stdout] 102 |             writes: core::ptr::read_volatile(&STATS.writes),
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 102 |             writes: core::ptr::read_volatile(&raw const STATS.writes),
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:103:46
[INFO] [stdout]     |
[INFO] [stdout] 103 |             errors: core::ptr::read_volatile(&STATS.errors),
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 103 |             errors: core::ptr::read_volatile(&raw const STATS.errors),
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let p = &mut STATS.errors as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let p = &raw mut STATS.errors as *mut u64;
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:596:17
[INFO] [stdout]     |
[INFO] [stdout] 596 |         let p = &mut STATS.reads as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 596 |         let p = &raw mut STATS.reads as *mut u64;
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:614:17
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let p = &mut STATS.reads as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let p = &raw mut STATS.reads as *mut u64;
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:632:17
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let p = &mut STATS.writes as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let p = &raw mut STATS.writes as *mut u64;
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/blockdev.rs:661:17
[INFO] [stdout]     |
[INFO] [stdout] 661 |         let p = &mut STATS.writes as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 661 |         let p = &raw mut STATS.writes as *mut u64;
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/desk.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |     unsafe { &mut DESKS }
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 53 |     unsafe { &raw mut DESKS }
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/desk.rs:60:14
[INFO] [stdout]    |
[INFO] [stdout] 60 |     unsafe { DESKS.as_mut().get_unchecked_mut(i).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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/elf.rs:168:26
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let frame = unsafe { FRAME_ALLOC.allocate_frame() }.ok_or(ElfError::OutOfMemory)?;
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/fb.rs:262:14
[INFO] [stdout]     |
[INFO] [stdout] 262 |     unsafe { FB.is_some() }
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/interrupts.rs:34:54
[INFO] [stdout]    |
[INFO] [stdout] 34 |         TSS.interrupt_stack_table[0] = VirtAddr::new(DOUBLE_FAULT_STACK.as_ptr() as u64 + 16384);
[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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/interrupts.rs:40:57
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let tss = gdt.add_entry(Descriptor::tss_segment(&TSS));
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let tss = gdt.add_entry(Descriptor::tss_segment(&raw const TSS));
[INFO] [stdout]    |                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/interrupts.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 235 |     core::str::from_utf8(&buf).map(|s| crate::vga::serial_write_atomic(s));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 235 |     let _ = core::str::from_utf8(&buf).map(|s| crate::vga::serial_write_atomic(s));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/memory.rs:120:33
[INFO] [stdout]     |
[INFO] [stdout] 120 |         while self.region_idx < REGIONS.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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/memory.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         FRAME_ALLOC.init(regions);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/memory.rs:258:15
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let buf = &mut REGION_STORAGE.0;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let buf = &raw mut REGION_STORAGE.0;
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/net.rs:288:20
[INFO] [stdout]     |
[INFO] [stdout] 288 |     let rx_phys = (RX_RING.0.as_ptr() as u64 - PHYS_MEM_OFFSET) as u32;
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/net.rs:317:35
[INFO] [stdout]     |
[INFO] [stdout] 317 |     TX_BUF[6..12].copy_from_slice(&MAC);
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 317 |     TX_BUF[6..12].copy_from_slice(&raw const MAC);
[INFO] [stdout]     |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/net.rs:329:15
[INFO] [stdout]     |
[INFO] [stdout] 329 |     let buf = TX_BUF.as_ptr();
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/net.rs:362:36
[INFO] [stdout]     |
[INFO] [stdout] 362 |         pkt[8..14].copy_from_slice(&MAC);
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 362 |         pkt[8..14].copy_from_slice(&raw const MAC);
[INFO] [stdout]     |                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/net.rs:419:27
[INFO] [stdout]     |
[INFO] [stdout] 419 |             clflush_range(RX_RING.0.as_ptr() as usize, RX_RING_SIZE + 16);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/net.rs:449:35
[INFO] [stdout]     |
[INFO] [stdout] 449 |                 if payload_len <= RX_FRAME.len() && tail <= RX_RING_SIZE {
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/net.rs:543:13
[INFO] [stdout]     |
[INFO] [stdout] 543 |             ICMP_SRC.copy_from_slice(&pkt[12..16]);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/net.rs:603:29
[INFO] [stdout]     |
[INFO] [stdout] 603 |     c[4..8].copy_from_slice(&TCP_DST_IP);
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 603 |     c[4..8].copy_from_slice(&raw const TCP_DST_IP);
[INFO] [stdout]     |                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/net.rs:619:32
[INFO] [stdout]     |
[INFO] [stdout] 619 |     ip[16..20].copy_from_slice(&TCP_DST_IP);
[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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 619 |     ip[16..20].copy_from_slice(&raw const TCP_DST_IP);
[INFO] [stdout]     |                                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/net.rs:626:25
[INFO] [stdout]     |
[INFO] [stdout] 626 |     let len = build_eth(&TCP_DST_MAC, 0x0800, &frame[..20 + tcp_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] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 626 |     let len = build_eth(&raw const TCP_DST_MAC, 0x0800, &frame[..20 + tcp_len]);
[INFO] [stdout]     |                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/paging.rs:60:21
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let alloc = &mut FRAME_ALLOC;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let alloc = &raw mut FRAME_ALLOC;
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/paging.rs:157:21
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let alloc = &mut FRAME_ALLOC;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let alloc = &raw mut FRAME_ALLOC;
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/paging.rs:224:21
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let alloc = &mut FRAME_ALLOC;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let alloc = &raw mut FRAME_ALLOC;
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/paging.rs:276:21
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let alloc = &mut FRAME_ALLOC;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let alloc = &raw mut FRAME_ALLOC;
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/paging.rs:377:78
[INFO] [stdout]     |
[INFO] [stdout] 377 |         if let Err(e) = OffsetPageTable::map_to(&mut pt, page, frame, flags, &mut FRAME_ALLOC) {
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 377 |         if let Err(e) = OffsetPageTable::map_to(&mut pt, page, frame, flags, &raw mut FRAME_ALLOC) {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/paging.rs:381:17
[INFO] [stdout]     |
[INFO] [stdout] 381 |                 FRAME_ALLOC.free_count(),
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:413:38
[INFO] [stdout]     |
[INFO] [stdout] 413 |         m.map_to(page, frame, flags, &mut FRAME_ALLOC)
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 413 |         m.map_to(page, frame, flags, &raw mut FRAME_ALLOC)
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/paging.rs:430:13
[INFO] [stdout]     |
[INFO] [stdout] 430 |             FRAME_ALLOC.deallocate_frame(frame);
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:448:25
[INFO] [stdout]     |
[INFO] [stdout] 448 |             let frame = FRAME_ALLOC.allocate_frame().ok_or(SpaceError::MapError)?;
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:514:25
[INFO] [stdout]     |
[INFO] [stdout] 514 |             let frame = FRAME_ALLOC.allocate_frame().ok_or(SpaceError::MapError)?;
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:613:22
[INFO] [stdout]     |
[INFO] [stdout] 613 |             let f1 = FRAME_ALLOC.allocate_frame().ok_or(())?;
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:614:22
[INFO] [stdout]     |
[INFO] [stdout] 614 |             let f2 = FRAME_ALLOC.allocate_frame().ok_or(())?;
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:652:32
[INFO] [stdout]     |
[INFO] [stdout] 652 |             let freed_before = FRAME_ALLOC.free_count();
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/paging.rs:655:31
[INFO] [stdout]     |
[INFO] [stdout] 655 |             let freed_after = FRAME_ALLOC.free_count();
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/scheduler.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 |     unsafe { TASKS.iter().filter(|s| s.is_some()).count() }
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/scheduler.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 308 |         TASKS.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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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: direct cast of function item into an integer
[INFO] [stdout]    --> src/scheduler.rs:403:40
[INFO] [stdout]     |
[INFO] [stdout] 403 |             p.add(15).write(task_start as usize as u64); // rip
[INFO] [stdout]     |                                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 403 |             p.add(15).write(task_start as *const () as usize as u64); // rip
[INFO] [stdout]     |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:632:19
[INFO] [stdout]     |
[INFO] [stdout] 632 |             match TASKS.get(pid).and_then(|t| t.as_ref()) {
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/scheduler.rs:671:15
[INFO] [stdout]     |
[INFO] [stdout] 671 |         match TASKS.get_mut(pid).and_then(|t| t.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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/scheduler.rs:691:15
[INFO] [stdout]     |
[INFO] [stdout] 691 |         match TASKS.get_mut(pid).and_then(|t| t.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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/scheduler.rs:820:9
[INFO] [stdout]     |
[INFO] [stdout] 820 |         TASKS.get(pid).and_then(|t| t.as_ref()).map(|t| t.state)
[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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/vitafs.rs:306:50
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 let raw: &mut [u8; INODE_SIZE] = &mut RAW;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 let raw: &mut [u8; INODE_SIZE] = &raw mut RAW;
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/vitafs.rs:312:46
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let buf: &mut [u8; BLOCK_SIZE] = &mut BUF;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let buf: &mut [u8; BLOCK_SIZE] = &raw mut BUF;
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1026:13
[INFO] [stdout]      |
[INFO] [stdout] 1026 |     let p = &mut ICLOCK as *mut u64;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1026 |     let p = &raw mut ICLOCK as *mut u64;
[INFO] [stdout]      |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1074:31
[INFO] [stdout]      |
[INFO] [stdout] 1074 |                 let (hp, _) = &mut ICACHE_STATS;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1074 |                 let (hp, _) = &raw mut ICACHE_STATS;
[INFO] [stdout]      |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1079:23
[INFO] [stdout]      |
[INFO] [stdout] 1079 |         let (_, mp) = &mut ICACHE_STATS;
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1079 |         let (_, mp) = &raw mut ICACHE_STATS;
[INFO] [stdout]      |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1137:18
[INFO] [stdout]      |
[INFO] [stdout] 1137 |         for e in ITABLE.iter_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]      = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/vitafs.rs:1469:51
[INFO] [stdout]      |
[INFO] [stdout] 1469 |     let orig_bb: &mut [u8; BLOCK_SIZE] = unsafe { &mut ORIG_BB };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1469 |     let orig_bb: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut ORIG_BB };
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1470:51
[INFO] [stdout]      |
[INFO] [stdout] 1470 |     let orig_ib: &mut [u8; BLOCK_SIZE] = unsafe { &mut ORIG_IB };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1470 |     let orig_ib: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut ORIG_IB };
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1471:51
[INFO] [stdout]      |
[INFO] [stdout] 1471 |     let orig_tb: &mut [u8; BLOCK_SIZE] = unsafe { &mut ORIG_TB };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1471 |     let orig_tb: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut ORIG_TB };
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1564:9
[INFO] [stdout]      |
[INFO] [stdout] 1564 |         MOUNT_SB.as_ref()
[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]      = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/vitafs.rs:1933:51
[INFO] [stdout]      |
[INFO] [stdout] 1933 |     let orig_bb: &mut [u8; BLOCK_SIZE] = unsafe { &mut ORIG_BB };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1933 |     let orig_bb: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut ORIG_BB };
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1934:51
[INFO] [stdout]      |
[INFO] [stdout] 1934 |     let orig_ib: &mut [u8; BLOCK_SIZE] = unsafe { &mut ORIG_IB };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1934 |     let orig_ib: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut ORIG_IB };
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]     --> src/vitafs.rs:1935:51
[INFO] [stdout]      |
[INFO] [stdout] 1935 |     let orig_tb: &mut [u8; BLOCK_SIZE] = unsafe { &mut ORIG_TB };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1935 |     let orig_tb: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut ORIG_TB };
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/wal.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let w = WAL.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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[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/wal.rs:157:47
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let buf: &mut [u8; BLOCK_SIZE] = unsafe { &mut JSUPER_BUF };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let buf: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut JSUPER_BUF };
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/wal.rs:277:55
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let payload: &mut [u8; BLOCK_SIZE] = unsafe { &mut PAYLOAD };
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let payload: &mut [u8; BLOCK_SIZE] = unsafe { &raw mut PAYLOAD };
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `cc`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | cc = "1"
[INFO] [stderr]   | ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `cc`
[INFO] [stderr] warning: `vitamin_os26` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d", kill_on_drop: false }`
[INFO] [stdout] e6506a1efa82b0f7fbbfc4999fb12e1ef704b025d59be1999992a6524f0c011d
