[INFO] fetching crate preemptive-threads 0.5.0-beta...
[INFO] testing preemptive-threads-0.5.0-beta against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-8
[INFO] extracting crate preemptive-threads 0.5.0-beta into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate preemptive-threads 0.5.0-beta
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate preemptive-threads 0.5.0-beta
[INFO] tweaked toml for crates.io crate preemptive-threads 0.5.0-beta written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate preemptive-threads 0.5.0-beta on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate preemptive-threads 0.5.0-beta 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4a0dd7738d8722fe9a668d32664a649db0fc8031867194cad75090404672943d
[INFO] running `Command { std: "docker" "start" "-a" "4a0dd7738d8722fe9a668d32664a649db0fc8031867194cad75090404672943d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a0dd7738d8722fe9a668d32664a649db0fc8031867194cad75090404672943d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a0dd7738d8722fe9a668d32664a649db0fc8031867194cad75090404672943d", kill_on_drop: false }`
[INFO] [stdout] 4a0dd7738d8722fe9a668d32664a649db0fc8031867194cad75090404672943d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 53dca8b1e5bba39d5ad6db72b321e33e35e7bc0a521ab21dc9bff4a7461ced91
[INFO] running `Command { std: "docker" "start" "-a" "53dca8b1e5bba39d5ad6db72b321e33e35e7bc0a521ab21dc9bff4a7461ced91", kill_on_drop: false }`
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling preemptive-threads v0.5.0-beta (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/mem/arc_lite.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use core::ptr::{self, NonNull};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> src/security/cfi.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> src/security/crypto_rng.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec`
[INFO] [stdout]  --> src/security/aslr.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::{vec, vec::Vec};
[INFO] [stdout]   |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/security/mod.rs:297:13
[INFO] [stdout]     |
[INFO] [stdout] 296 |             crate::exit_thread();
[INFO] [stdout]     |             -------------------- any code following this expression is unreachable
[INFO] [stdout] 297 |             unreachable!("Thread should have been terminated");
[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: unnecessary `unsafe` block
[INFO] [stdout]   --> src/kernel.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             unsafe {
[INFO] [stdout]    |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/kernel.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             unsafe {
[INFO] [stdout]    |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry_wrapper`
[INFO] [stdout]    --> src/kernel.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let entry_wrapper = move || {
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entry_wrapper`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/kernel.rs:198:33
[INFO] [stdout]     |
[INFO] [stdout] 198 |                     if let Some(current) = current_guard.take() {
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_size`
[INFO] [stdout]    --> src/mem/stack_pool.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let total_size = if has_guard_pages {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mem/arc_lite.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(data: T) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]   --> src/mem/arc_lite.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let layout = Layout::new::<ArcLiteInner<T>>();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_depth`
[INFO] [stdout]    --> src/observability/profiler.rs:165:20
[INFO] [stdout]     |
[INFO] [stdout] 165 |     pub fn capture(max_depth: usize) -> Self {
[INFO] [stdout]     |                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/perf/cache_aware.rs:187:48
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn schedule_next(&self, cpu_id: CpuId, current: Option<Arc<Thread>>) -> Option<Arc<Thread>> {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu_data`
[INFO] [stdout]    --> src/perf/cache_aware.rs:223:37
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn pick_from_local_queue(&self, cpu_data: &CacheOptimizedCpuData) -> Option<Arc<Thread>> {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cpu_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_cpu_data`
[INFO] [stdout]    --> src/perf/cache_aware.rs:257:30
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn steal_from_cpu(&self, target_cpu_data: &CacheOptimizedCpuData) -> Option<Arc<Thread>> {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_cpu_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu_id`
[INFO] [stdout]    --> src/perf/cache_aware.rs:264:38
[INFO] [stdout]     |
[INFO] [stdout] 264 |     fn pick_from_global_queue(&self, cpu_id: CpuId) -> Option<Arc<Thread>> {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cpu_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `topology`
[INFO] [stdout]    --> src/perf/numa.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 441 |     let topology = if config.numa_nodes > 1 {
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_topology`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `features`
[INFO] [stdout]    --> src/perf/cpu_dispatch.rs:232:33
[INFO] [stdout]     |
[INFO] [stdout] 232 | unsafe fn init_string_functions(features: &CpuFeatures) {
[INFO] [stdout]     |                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_features`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `features`
[INFO] [stdout]    --> src/perf/cpu_dispatch.rs:240:38
[INFO] [stdout]     |
[INFO] [stdout] 240 | unsafe fn init_compression_functions(features: &CpuFeatures) {
[INFO] [stdout]     |                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_features`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size_class`
[INFO] [stdout]    --> src/perf/memory_pools.rs:281:38
[INFO] [stdout]     |
[INFO] [stdout] 281 |     fn allocate_from_fallback(&self, size_class: StackSizeClass) -> Option<Stack> {
[INFO] [stdout]     |                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_size_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/perf/context_switch_opt.rs:127:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |         unsafe {
[INFO] [stdout]     |         ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 127 |                 unsafe { A::context_switch(prev_context, next_context); }
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/perf/context_switch_opt.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/perf/context_switch_opt.rs:237:21
[INFO] [stdout]     |
[INFO] [stdout] 235 |                 unsafe {
[INFO] [stdout]     |                 ------ because it's nested under this `unsafe` block
[INFO] [stdout] 236 |                     let prefetch_addr = stack_ptr.offset(i * 64); // 64-byte cache lines
[INFO] [stdout] 237 |                     unsafe { core::arch::asm!(
[INFO] [stdout]     |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `preemption::Preemption::enable::signal` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/preemption.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let result = signal(SIGALRM, timer_handler);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/preemption.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub unsafe fn enable(&mut self, interval_us: u64) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:2:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | #![deny(unsafe_op_in_unsafe_fn)]
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `preemption::Preemption::enable::setitimer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/preemption.rs:69:22
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let result = setitimer(ITIMER_REAL, &timer, core::ptr::null_mut());
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `preemption::Preemption::disable::setitimer` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/preemption.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         setitimer(ITIMER_REAL, &timer, core::ptr::null_mut());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/preemption.rs:78:5
[INFO] [stdout]     |
[INFO] [stdout]  78 |     pub unsafe fn disable(&mut self) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next`
[INFO] [stdout]    --> src/sched/rr.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |                         if let Some(next) = queue.low_priority.peek()
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_next`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next`
[INFO] [stdout]    --> src/sched/rr.rs:217:37
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         if let Some(next) = queue.normal_priority.peek()
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_next`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_canary`
[INFO] [stdout]    --> src/security/stack_protection.rs:189:21
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Some(expected_canary) = &self.canary_bottom {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_canary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_canary`
[INFO] [stdout]    --> src/security/stack_protection.rs:199:21
[INFO] [stdout]     |
[INFO] [stdout] 199 |         if let Some(expected_canary) = &self.canary_top {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_canary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/security/stack_protection.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn init_stack_protection(config: SecurityConfig) -> Result<(), ThreadError> {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]    --> src/security/isolation.rs:433:27
[INFO] [stdout]     |
[INFO] [stdout] 433 |     pub fn send<T>(&self, message: T) -> Result<(), ThreadError> {
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/security/crypto_rng.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let mut entropy_count = 0;
[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: unused variable: `max_gap`
[INFO] [stdout]   --> src/security/aslr.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let max_gap = min_gap * 16; // Up to 16 pages
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_gap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stats`
[INFO] [stdout]    --> src/security/aslr.rs:405:9
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let stats = get_aslr_stats();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/security/audit.rs:587:27
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub fn init_audit_logging(config: SecurityConfig) -> Result<(), ThreadError> {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_arm64_cache_line_size` is never used
[INFO] [stdout]    --> src/arch/detection.rs:270:4
[INFO] [stdout]     |
[INFO] [stdout] 270 | fn detect_arm64_cache_line_size() -> u32 {
[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 `detect_riscv_cache_line_size` is never used
[INFO] [stdout]    --> src/arch/detection.rs:301:4
[INFO] [stdout]     |
[INFO] [stdout] 301 | fn detect_riscv_cache_line_size() -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_riscv_f_extension` is never used
[INFO] [stdout]    --> src/arch/detection.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn detect_riscv_f_extension() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_size` is never read
[INFO] [stdout]   --> src/mem/stack_pool.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct Stack {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     total_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stack` 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 `config` is never read
[INFO] [stdout]    --> src/perf/cache_aware.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct CacheAwareScheduler {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 153 |     config: PerfConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/perf/numa.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct NumaAwareScheduler {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     config: PerfConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_physical` is never used
[INFO] [stdout]    --> src/perf/numa.rs:454:8
[INFO] [stdout]     |
[INFO] [stdout] 454 |     fn get_physical() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CrcFn` is never used
[INFO] [stdout]   --> src/perf/cpu_dispatch.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type CrcFn = fn(&[u8]) -> u32;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashFn` is never used
[INFO] [stdout]   --> src/perf/cpu_dispatch.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type HashFn = fn(&[u8]) -> u64;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CompressFn` is never used
[INFO] [stdout]   --> src/perf/cpu_dispatch.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type CompressFn = fn(&[u8], &mut [u8]) -> usize;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_optimizations` is never used
[INFO] [stdout]    --> src/perf/cpu_dispatch.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn count_optimizations(features: &CpuFeatures) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `weak_count` and `data_ptr` are never read
[INFO] [stdout]   --> src/perf/fast_paths.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct OptimizedArcCounter {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 84 |     strong_count: AtomicUsize,
[INFO] [stdout] 85 |     weak_count: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 86 |     data_ptr: AtomicPtr<u8>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_allocated` is never read
[INFO] [stdout]   --> src/perf/memory_pools.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct LockFreePool<T> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 71 |     total_allocated: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generation` is never read
[INFO] [stdout]   --> src/perf/memory_pools.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | struct PoolNode<T> {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     generation: AtomicU64, // ABA prevention
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/perf/memory_pools.rs:400:5
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub struct MemoryPoolManager {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 400 |     config: PerfConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `arch_optimizations` is never read
[INFO] [stdout]   --> src/perf/context_switch_opt.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ContextSwitchOptimizer<A: Arch> {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 10 |     /// Architecture-specific optimizations
[INFO] [stdout] 11 |     arch_optimizations: A,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_pos` is never read
[INFO] [stdout]   --> src/sched/rr.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct CpuRunQueue {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     current_pos: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_enabled_features` is never used
[INFO] [stdout]    --> src/security/mod.rs:273:4
[INFO] [stdout]     |
[INFO] [stdout] 273 | fn count_enabled_features(config: &SecurityConfig) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `allocate_guard_pages` is never used
[INFO] [stdout]    --> src/security/stack_protection.rs:344:19
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub(super) fn allocate_guard_pages(size: usize) -> Result<*mut u8, ThreadError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deallocate_guard_pages` is never used
[INFO] [stdout]    --> src/security/stack_protection.rs:356:19
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub(super) fn deallocate_guard_pages(ptr: *mut u8, size: usize) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_x86_64_call_target` is never used
[INFO] [stdout]    --> src/security/cfi.rs:360:19
[INFO] [stdout]     |
[INFO] [stdout] 360 |     pub(super) fn verify_x86_64_call_target(_target: *const ()) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_arm64_call_target` is never used
[INFO] [stdout]    --> src/security/cfi.rs:364:19
[INFO] [stdout]     |
[INFO] [stdout] 364 |     pub(super) fn verify_arm64_call_target(_target: *const ()) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sender_domain` and `receiver_domain` are never read
[INFO] [stdout]    --> src/security/isolation.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub struct CrossDomainChannel {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] 411 |     sender_domain: ThreadId,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 412 |     receiver_domain: ThreadId,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pool_position` is never read
[INFO] [stdout]   --> src/security/crypto_rng.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SecureRng {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pool_position: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quarter_round` is never used
[INFO] [stdout]    --> src/security/crypto_rng.rs:314:4
[INFO] [stdout]     |
[INFO] [stdout] 314 | fn quarter_round(a: &mut u32, b: &mut u32, c: &mut u32, d: &mut u32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `MemoryError` should have a snake case name
[INFO] [stdout]    --> src/errors.rs:453:12
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn MemoryError() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^ help: convert the identifier to snake case: `memory_error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ResourceExhaustion` should have a snake case name
[INFO] [stdout]    --> src/errors.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 |     pub fn ResourceExhaustion() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `resource_exhaustion`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `InvalidState` should have a snake case name
[INFO] [stdout]    --> src/errors.rs:463:12
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn InvalidState() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `invalid_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `PermissionDenied` should have a snake case name
[INFO] [stdout]    --> src/errors.rs:468:12
[INFO] [stdout]     |
[INFO] [stdout] 468 |     pub fn PermissionDenied() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `permission_denied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `UnsupportedOperation` should have a snake case name
[INFO] [stdout]    --> src/errors.rs:473:12
[INFO] [stdout]     |
[INFO] [stdout] 473 |     pub fn UnsupportedOperation(msg: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `unsupported_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Other` should have a snake case name
[INFO] [stdout]    --> src/errors.rs:478:12
[INFO] [stdout]     |
[INFO] [stdout] 478 |     pub fn Other(msg: String) -> Self {
[INFO] [stdout]     |            ^^^^^ help: convert the identifier to snake case (notice the capitalization): `other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/perf/context_switch_opt.rs:429:34
[INFO] [stdout]     |
[INFO] [stdout] 429 |         if let Some(optimizer) = &mut CONTEXT_SWITCH_OPTIMIZER {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = 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] 429 |         if let Some(optimizer) = &raw mut CONTEXT_SWITCH_OPTIMIZER {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/perf/context_switch_opt.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 441 |         CONTEXT_SWITCH_OPTIMIZER.as_ref().map(|opt| opt.get_switch_stats())
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/safe_api.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn lock(&self) -> MutexGuard<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn lock(&self) -> MutexGuard<'_, T> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/safe_api.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn try_lock(&self) -> Option<MutexGuard<T>> {
[INFO] [stdout]     |                     ^^^^^            ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn try_lock(&self) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/isolation.rs:462:34
[INFO] [stdout]     |
[INFO] [stdout] 462 |         if let Some(isolation) = &mut THREAD_ISOLATION {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 462 |         if let Some(isolation) = &raw mut THREAD_ISOLATION {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/isolation.rs:477:34
[INFO] [stdout]     |
[INFO] [stdout] 477 |         if let Some(isolation) = &THREAD_ISOLATION {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 477 |         if let Some(isolation) = &raw const THREAD_ISOLATION {
[INFO] [stdout]     |                                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/isolation.rs:493:34
[INFO] [stdout]     |
[INFO] [stdout] 493 |         if let Some(isolation) = &THREAD_ISOLATION {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 493 |         if let Some(isolation) = &raw const THREAD_ISOLATION {
[INFO] [stdout]     |                                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/isolation.rs:508:34
[INFO] [stdout]     |
[INFO] [stdout] 508 |         if let Some(isolation) = &mut THREAD_ISOLATION {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 508 |         if let Some(isolation) = &raw mut THREAD_ISOLATION {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/isolation.rs:526:34
[INFO] [stdout]     |
[INFO] [stdout] 526 |         if let Some(isolation) = &THREAD_ISOLATION {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 526 |         if let Some(isolation) = &raw const THREAD_ISOLATION {
[INFO] [stdout]     |                                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:518:9
[INFO] [stdout]     |
[INFO] [stdout] 518 |         SECURE_RNG.init()?;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:528:9
[INFO] [stdout]     |
[INFO] [stdout] 528 |         SECURE_RNG.fill_bytes(dest)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:535:9
[INFO] [stdout]     |
[INFO] [stdout] 535 |         SECURE_RNG.next_u64()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:542:9
[INFO] [stdout]     |
[INFO] [stdout] 542 |         SECURE_RNG.next_u32()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:549:9
[INFO] [stdout]     |
[INFO] [stdout] 549 |         SECURE_RNG.gen_range(max)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:557:30
[INFO] [stdout]     |
[INFO] [stdout] 557 |             bytes_generated: SECURE_RNG.bytes_generated.load(Ordering::Relaxed),
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/crypto_rng.rs:558:32
[INFO] [stdout]     |
[INFO] [stdout] 558 |             entropy_collected: SECURE_RNG.entropy_collected.load(Ordering::Relaxed),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/aslr.rs:414:15
[INFO] [stdout]     |
[INFO] [stdout] 414 |         match &ASLR_MANAGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 414 |         match &raw const ASLR_MANAGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/aslr.rs:424:15
[INFO] [stdout]     |
[INFO] [stdout] 424 |         match &ASLR_MANAGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 424 |         match &raw const ASLR_MANAGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/aslr.rs:434:15
[INFO] [stdout]     |
[INFO] [stdout] 434 |         match &ASLR_MANAGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 434 |         match &raw const ASLR_MANAGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:615:31
[INFO] [stdout]     |
[INFO] [stdout] 615 |         if let Some(logger) = &mut AUDIT_LOGGER {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 615 |         if let Some(logger) = &raw mut AUDIT_LOGGER {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:624:31
[INFO] [stdout]     |
[INFO] [stdout] 624 |         if let Some(logger) = &mut AUDIT_LOGGER {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 624 |         if let Some(logger) = &raw mut AUDIT_LOGGER {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:635:31
[INFO] [stdout]     |
[INFO] [stdout] 635 |         if let Some(logger) = &mut AUDIT_LOGGER {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 635 |         if let Some(logger) = &raw mut AUDIT_LOGGER {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:644:31
[INFO] [stdout]     |
[INFO] [stdout] 644 |         if let Some(logger) = &mut AUDIT_LOGGER {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 644 |         if let Some(logger) = &raw mut AUDIT_LOGGER {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:653:31
[INFO] [stdout]     |
[INFO] [stdout] 653 |         if let Some(logger) = &mut AUDIT_LOGGER {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 653 |         if let Some(logger) = &raw mut AUDIT_LOGGER {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:662:31
[INFO] [stdout]     |
[INFO] [stdout] 662 |         if let Some(logger) = &mut AUDIT_LOGGER {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 662 |         if let Some(logger) = &raw mut AUDIT_LOGGER {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:671:15
[INFO] [stdout]     |
[INFO] [stdout] 671 |         match &AUDIT_LOGGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 671 |         match &raw const AUDIT_LOGGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:681:15
[INFO] [stdout]     |
[INFO] [stdout] 681 |         match &AUDIT_LOGGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 681 |         match &raw const AUDIT_LOGGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:691:15
[INFO] [stdout]     |
[INFO] [stdout] 691 |         match &AUDIT_LOGGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 691 |         match &raw const AUDIT_LOGGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/security/audit.rs:701:15
[INFO] [stdout]     |
[INFO] [stdout] 701 |         match &AUDIT_LOGGER {
[INFO] [stdout]     |               ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 701 |         match &raw const AUDIT_LOGGER {
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `preemptive-threads` (lib) due to 3 previous errors; 94 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "53dca8b1e5bba39d5ad6db72b321e33e35e7bc0a521ab21dc9bff4a7461ced91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53dca8b1e5bba39d5ad6db72b321e33e35e7bc0a521ab21dc9bff4a7461ced91", kill_on_drop: false }`
[INFO] [stdout] 53dca8b1e5bba39d5ad6db72b321e33e35e7bc0a521ab21dc9bff4a7461ced91
