[INFO] fetching crate preemptive-threads 0.5.0-beta... [INFO] testing preemptive-threads-0.5.0-beta against try#2440211fe03bc45c89b6dc1a3df18382ce91e32b for pr-146098-1 [INFO] extracting crate preemptive-threads 0.5.0-beta into /workspace/builds/worker-1-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-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate preemptive-threads 0.5.0-beta on toolchain 2440211fe03bc45c89b6dc1a3df18382ce91e32b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "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" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 37c229baa67c239dd46cfea6df880991aec1214716a80464adff19b28b9e2674 [INFO] running `Command { std: "docker" "start" "-a" "37c229baa67c239dd46cfea6df880991aec1214716a80464adff19b28b9e2674", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "37c229baa67c239dd46cfea6df880991aec1214716a80464adff19b28b9e2674", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "37c229baa67c239dd46cfea6df880991aec1214716a80464adff19b28b9e2674", kill_on_drop: false }` [INFO] [stdout] 37c229baa67c239dd46cfea6df880991aec1214716a80464adff19b28b9e2674 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f41a3213f87b6512c93c6c5a43315659fa9a21449ad854aaa2141801ecbb6e44 [INFO] running `Command { std: "docker" "start" "-a" "f41a3213f87b6512c93c6c5a43315659fa9a21449ad854aaa2141801ecbb6e44", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling portable-atomic v1.11.1 [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] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 292 | let _total_size = if has_guard_pages { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_THREADS` [INFO] [stdout] | [INFO] [stdout] 292 - let total_size = if has_guard_pages { [INFO] [stdout] 292 + let scheduler::MAX_THREADS = if has_guard_pages { [INFO] [stdout] | [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::>(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout` [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: `max_depth` [INFO] [stdout] --> src/observability/profiler.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 165 | pub fn capture(max_depth: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 165 | pub fn capture(_max_depth: usize) -> Self { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_THREADS` [INFO] [stdout] | [INFO] [stdout] 165 - pub fn capture(max_depth: usize) -> Self { [INFO] [stdout] 165 + pub fn capture(scheduler::MAX_THREADS: usize) -> Self { [INFO] [stdout] | [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>) -> Option> { [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> { [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> { [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> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 264 | fn pick_from_global_queue(&self, _cpu_id: CpuId) -> Option> { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_THREADS` [INFO] [stdout] | [INFO] [stdout] 264 - fn pick_from_global_queue(&self, cpu_id: CpuId) -> Option> { [INFO] [stdout] 264 + fn pick_from_global_queue(&self, scheduler::MAX_THREADS: CpuId) -> Option> { [INFO] [stdout] | [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 { [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 [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 [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 [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(&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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 83 | let _max_gap = min_gap * 16; // Up to 16 pages [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_THREADS` [INFO] [stdout] | [INFO] [stdout] 83 - let max_gap = min_gap * 16; // Up to 16 pages [INFO] [stdout] 83 + let scheduler::MAX_THREADS = min_gap * 16; // Up to 16 pages [INFO] [stdout] | [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, [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 { [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 { [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 { [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 [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 [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 { [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> { [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> { [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [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" "f41a3213f87b6512c93c6c5a43315659fa9a21449ad854aaa2141801ecbb6e44", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f41a3213f87b6512c93c6c5a43315659fa9a21449ad854aaa2141801ecbb6e44", kill_on_drop: false }` [INFO] [stdout] f41a3213f87b6512c93c6c5a43315659fa9a21449ad854aaa2141801ecbb6e44