[INFO] fetching crate ferric-tensor 0.3.1...
[INFO] checking ferric-tensor-0.3.1 against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] extracting crate ferric-tensor 0.3.1 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate ferric-tensor 0.3.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate ferric-tensor 0.3.1
[INFO] tweaked toml for crates.io crate ferric-tensor 0.3.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate ferric-tensor 0.3.1 on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ferric-tensor 0.3.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1
[INFO] running `Command { std: "docker" "start" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling unicode-ident v1.0.26
[INFO] [stderr]     Checking cfg-if v1.0.5
[INFO] [stderr]    Compiling cfg_aliases v0.2.2
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]     Checking foldhash v0.2.0
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking bitflags v2.13.2
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]    Compiling naga v30.0.1
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]    Compiling ash v0.38.0+1.3.281
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]     Checking bit-vec v0.9.1
[INFO] [stderr]     Checking spirv v0.4.0+sdk-1.4.341.0
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]     Checking smallvec v1.16.1
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking bit-set v0.10.0
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]     Checking codespan-reporting v0.13.1
[INFO] [stderr]    Compiling wgpu-hal v30.0.1
[INFO] [stderr]     Checking presser v0.3.1
[INFO] [stderr]     Checking glow v0.17.0
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]    Compiling wgpu-core v30.0.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling wgpu v30.0.1
[INFO] [stderr]     Checking spin v0.9.9
[INFO] [stderr]     Checking fastrand v2.5.0
[INFO] [stderr]     Checking futures-core v0.3.34
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]     Checking futures-sink v0.3.34
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking pollster v1.0.1
[INFO] [stderr]     Checking ferric-tier v0.3.0
[INFO] [stderr]     Checking ferric-certify v0.3.0
[INFO] [stderr]     Checking ferric-joule v0.3.0
[INFO] [stderr]     Checking flume v0.12.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking indexmap v2.14.2
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ordered-float v5.5.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling bytemuck_derive v1.12.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.57
[INFO] [stderr]     Checking naga-types v30.0.1
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]     Checking wgpu-types v30.0.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ferric-gguf v0.3.0
[INFO] [stderr]     Checking gpu-allocator v0.28.0
[INFO] [stderr]     Checking wgpu-naga-bridge v30.0.1
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v30.0.1
[INFO] [stderr]     Checking ferric-core v0.3.0
[INFO] [stderr]     Checking ferric-tensor v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `Q2_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1036:5
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     Q2_K(Q2_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q2K`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q3_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1037:5
[INFO] [stdout]      |
[INFO] [stdout] 1037 |     Q3_K(Q3_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q3K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q4_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1038:5
[INFO] [stdout]      |
[INFO] [stdout] 1038 |     Q4_K(Q4_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q4K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q5_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1039:5
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     Q5_K(Q5_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q5K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q6_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1040:5
[INFO] [stdout]      |
[INFO] [stdout] 1040 |     Q6_K(Q6_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q6K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q5_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1302:12
[INFO] [stdout]      |
[INFO] [stdout] 1302 | pub struct Q5_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q5Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q2_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1463:12
[INFO] [stdout]      |
[INFO] [stdout] 1463 | pub struct Q2_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q2Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q3_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1505:12
[INFO] [stdout]      |
[INFO] [stdout] 1505 | pub struct Q3_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q3Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q6_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1597:12
[INFO] [stdout]      |
[INFO] [stdout] 1597 | pub struct Q6_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q6Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q4_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1925:12
[INFO] [stdout]      |
[INFO] [stdout] 1925 | pub struct Q4_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q4Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `ferric_gguf::quantize`
[INFO] [stdout]     --> src/dtype.rs:6036:22
[INFO] [stdout]      |
[INFO] [stdout] 6036 |     use ferric_gguf::quantize::quantize_stq1_0;
[INFO] [stdout]      |                      ^^^^^^^^ could not find `quantize` in `ferric_gguf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `IQ2XXS_GRID` in crate `ferric_gguf`
[INFO] [stdout]     --> src/dtype.rs:6349:37
[INFO] [stdout]      |
[INFO] [stdout] 6349 |         for (i, &v) in ferric_gguf::IQ2XXS_GRID.iter().enumerate() {
[INFO] [stdout]      |                                     ^^^^^^^^^^^ not found in `ferric_gguf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `IQ3XXS_GRID` in crate `ferric_gguf`
[INFO] [stdout]     --> src/dtype.rs:6354:37
[INFO] [stdout]      |
[INFO] [stdout] 6354 |         for (i, &v) in ferric_gguf::IQ3XXS_GRID.iter().enumerate() {
[INFO] [stdout]      |                                     ^^^^^^^^^^^ not found in `ferric_gguf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q2_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1036:5
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     Q2_K(Q2_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q2K`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q3_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1037:5
[INFO] [stdout]      |
[INFO] [stdout] 1037 |     Q3_K(Q3_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q3K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q4_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1038:5
[INFO] [stdout]      |
[INFO] [stdout] 1038 |     Q4_K(Q4_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q4K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q5_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1039:5
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     Q5_K(Q5_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q5K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Q6_K` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1040:5
[INFO] [stdout]      |
[INFO] [stdout] 1040 |     Q6_K(Q6_KWeights),
[INFO] [stdout]      |     ^^^^ help: convert the identifier to upper camel case: `Q6K`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q5_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1302:12
[INFO] [stdout]      |
[INFO] [stdout] 1302 | pub struct Q5_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q5Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q2_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1463:12
[INFO] [stdout]      |
[INFO] [stdout] 1463 | pub struct Q2_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q2Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q3_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1505:12
[INFO] [stdout]      |
[INFO] [stdout] 1505 | pub struct Q3_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q3Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q6_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1597:12
[INFO] [stdout]      |
[INFO] [stdout] 1597 | pub struct Q6_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q6Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Q4_KWeights` should have an upper camel case name
[INFO] [stdout]     --> src/dtype.rs:1925:12
[INFO] [stdout]      |
[INFO] [stdout] 1925 | pub struct Q4_KWeights {
[INFO] [stdout]      |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Q4Kweights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/cuda.rs:834:70
[INFO] [stdout]     |
[INFO] [stdout] 834 | ...64| -> Vec<f32> { (0..n).map(|i| (((i as u64 * 2654435761 + seed) % 1000) as f32 / 500.0 - 1.0)).collect() };
[INFO] [stdout]     |                                     ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 834 -         let rnd = |n: usize, seed: u64| -> Vec<f32> { (0..n).map(|i| (((i as u64 * 2654435761 + seed) % 1000) as f32 / 500.0 - 1.0)).collect() };
[INFO] [stdout] 834 +         let rnd = |n: usize, seed: u64| -> Vec<f32> { (0..n).map(|i| ((i as u64 * 2654435761 + seed) % 1000) as f32 / 500.0 - 1.0).collect() };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@src/sched.rs:224:51: 224:58}: Send`
[INFO] [stdout]    --> src/sched.rs:224:45
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 handles.push((di, lo, hi, s.spawn(move || dev.bmm(aslice, b, hi - lo, m, k, n))));
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `(&sched::Device, &[f32], &[f32], usize, usize, usize, usize, usize): Send`
[INFO] [stdout]     = note: which requires `&sched::Device: Send`
[INFO] [stdout]     = note: which requires `sched::Device: Sync`
[INFO] [stdout]     = note: which requires `Arc<ferric_core::Context>: Sync`
[INFO] [stdout]     = note: which requires `ferric_core::Context: Send`
[INFO] [stdout]     = note: which requires `wgpu::Queue: Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchQueue: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreQueue: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]     = note: which requires `wgpu::wgpu_core::global::Global: Send`
[INFO] [stdout]     = note: which requires `Hub: Send`
[INFO] [stdout]     = note: which requires `registry::Registry<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>: Send`
[INFO] [stdout]     = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`ferric_tensor`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/cuda.rs:37:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! sym {
[INFO] [stdout]  36 |     ($lib:expr, $name:literal, $ty:ty) => {{
[INFO] [stdout]  37 |         let s: Symbol<$ty> = unsafe { $lib.get(concat!($name, "\0").as_bytes()) }.ok()?;
[INFO] [stdout]     |                              ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 111 |         unsafe {
[INFO] [stdout]     |         ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 120 |             let get_name = sym!(d._lib, "cuDeviceGetName", unsafe extern "C" fn(*mut c_char, i32, CUdevice) -> CUresult);
[INFO] [stdout]     |                            --------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:221:17
[INFO] [stdout]     |
[INFO] [stdout] 221 |           let r = (self.cu_launch_kernel)(f, grid, 1, 1, block, 1, 1, 0, std::ptr::null_mut(),
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 222 | |                                         params.as_mut_ptr(), std::ptr::null_mut());
[INFO] [stdout]     | |__________________________________________________________________________________^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     unsafe fn launch(&self, f: CUfunction, grid: u32, block: u32, params: &mut [*mut c_void]) -> bool {
[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: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::DecodeGraph::quant_x_static` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:482:9
[INFO] [stdout]     |
[INFO] [stdout] 482 |         DecodeGraph::quant_x_static(&self.drv, k, x, xq, xs, n)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 |     unsafe fn quant_x(&self, k: &[CUfunction; 11], x: CUdeviceptr, xq: CUdeviceptr, xs: CUdeviceptr, n: usize) -> bool {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::DecodeGraph::quant_x` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:488:17
[INFO] [stdout]     |
[INFO] [stdout] 488 |             if !self.quant_x(k, x, self.xq, self.xs, cols) { return false; }
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:484:5
[INFO] [stdout]     |
[INFO] [stdout] 484 |     unsafe fn gemv(&self, x: CUdeviceptr, w: (CUdeviceptr, CUdeviceptr, bool, usize), cols: usize, out: CUdeviceptr) -> bool {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::Driver::launch` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:493:20
[INFO] [stdout]     |
[INFO] [stdout] 493 |             return self.drv.launch(k[9], (rows as u32).div_ceil(4), 128, &mut pr);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::Driver::launch` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:501:9
[INFO] [stdout]     |
[INFO] [stdout] 501 |         self.drv.launch(f, (rows as u32).div_ceil(4), 128, &mut params)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::Driver::launch` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:623:9
[INFO] [stdout]     |
[INFO] [stdout] 623 |         d.launch(k[8], ((n / 32) as u32).div_ceil(4), 128, &mut pr)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 620 |     unsafe fn quant_x_static(d: &Driver, k: &[CUfunction; 11], x: CUdeviceptr, xq: CUdeviceptr, xs: CUdeviceptr, n: usize) -> bool {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@src/sched.rs:224:51: 224:58}: Send`
[INFO] [stdout]    --> src/sched.rs:224:45
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 handles.push((di, lo, hi, s.spawn(move || dev.bmm(aslice, b, hi - lo, m, k, n))));
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `(&sched::Device, &[f32], &[f32], usize, usize, usize, usize, usize): Send`
[INFO] [stdout]     = note: which requires `&sched::Device: Send`
[INFO] [stdout]     = note: which requires `sched::Device: Sync`
[INFO] [stdout]     = note: which requires `std::sync::Arc<ferric_core::Context>: Sync`
[INFO] [stdout]     = note: which requires `ferric_core::Context: Send`
[INFO] [stdout]     = note: which requires `wgpu::Queue: Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchQueue: Send`
[INFO] [stdout]     = note: which requires `std::sync::Arc<wgpu::backend::wgpu_core::CoreQueue>: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreQueue: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]     = note: which requires `std::sync::Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]     = note: which requires `wgpu::wgpu_core::global::Global: Send`
[INFO] [stdout]     = note: which requires `Hub: Send`
[INFO] [stdout]     = note: which requires `registry::Registry<std::sync::Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>: Send`
[INFO] [stdout]     = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<std::sync::Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`ferric_tensor`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/image.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut field = |p: &mut usize| -> Result<String, String> {
[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: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct Ternary {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 167 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:575:5
[INFO] [stdout]     |
[INFO] [stdout] 574 | pub struct Q2_0Weights {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 575 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:643:5
[INFO] [stdout]     |
[INFO] [stdout] 642 | pub struct Stq1_0Weights {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 643 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:734:5
[INFO] [stdout]     |
[INFO] [stdout] 733 | pub struct Iq2XxsWeights {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 734 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:787:5
[INFO] [stdout]     |
[INFO] [stdout] 786 | pub struct Iq3XxsWeights {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 787 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:835:5
[INFO] [stdout]     |
[INFO] [stdout] 834 | pub struct Q4_0Weights {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 835 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:874:5
[INFO] [stdout]     |
[INFO] [stdout] 873 | pub struct Q4_1Weights {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 874 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]    --> src/dtype.rs:984:5
[INFO] [stdout]     |
[INFO] [stdout] 983 | pub struct Q5_1Weights {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 984 |     ctx: Arc<Context>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rows` is never used
[INFO] [stdout]     --> src/dtype.rs:1072:8
[INFO] [stdout]      |
[INFO] [stdout] 1071 | impl QShard {
[INFO] [stdout]      | ----------- method in this implementation
[INFO] [stdout] 1072 |     fn rows(&self) -> usize { match self { QShard::Iq2Xxs(w) => w.rows, QShard::Iq3Xxs(w) => w.rows, QShard::Stq1_0(w) => w.rows, ...
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `q5k_flat_wgsl` and `q6k_flat_wgsl` are never used
[INFO] [stdout]     --> src/dtype.rs:1126:19
[INFO] [stdout]      |
[INFO] [stdout] 1112 | impl QMatrix {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1126 |     pub(crate) fn q5k_flat_wgsl(&self, x: &Tensor) -> Option<Tensor> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1133 |     pub(crate) fn q6k_flat_wgsl(&self, x: &Tensor) -> Option<Tensor> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:1303:5
[INFO] [stdout]      |
[INFO] [stdout] 1302 | pub struct Q5_KWeights {
[INFO] [stdout]      |            ----------- field in this struct
[INFO] [stdout] 1303 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:1464:5
[INFO] [stdout]      |
[INFO] [stdout] 1463 | pub struct Q2_KWeights {
[INFO] [stdout]      |            ----------- field in this struct
[INFO] [stdout] 1464 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:1506:5
[INFO] [stdout]      |
[INFO] [stdout] 1505 | pub struct Q3_KWeights {
[INFO] [stdout]      |            ----------- field in this struct
[INFO] [stdout] 1506 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEQ_Q2_0_NT_WGSL` is never used
[INFO] [stdout]     --> src/dtype.rs:2831:7
[INFO] [stdout]      |
[INFO] [stdout] 2831 | const DEQ_Q2_0_NT_WGSL: &str = r#"
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:4136:5
[INFO] [stdout]      |
[INFO] [stdout] 4135 | pub struct Iq4XsWeights {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] 4136 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:4217:5
[INFO] [stdout]      |
[INFO] [stdout] 4216 | pub struct Iq4NlWeights {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] 4217 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:4405:5
[INFO] [stdout]      |
[INFO] [stdout] 4404 | pub struct Nvfp4Weights {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] 4405 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ctx` is never read
[INFO] [stdout]     --> src/dtype.rs:4450:5
[INFO] [stdout]      |
[INFO] [stdout] 4449 | pub struct Mxfp4Weights {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] 4450 |     ctx: Arc<Context>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sliding_causal_mask` is never used
[INFO] [stdout]    --> src/nn.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn sliding_causal_mask(like: &Tensor, t: usize, window: usize) -> Tensor {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cu_memcpy_dtod` is never read
[INFO] [stdout]   --> src/cuda.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Driver {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     cu_memcpy_dtod: unsafe extern "C" fn(CUdeviceptr, CUdeviceptr, usize) -> CUresult,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> examples/ebm_materiality.rs:40:42
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...   if d < 2.0 * R { let f = (2.0 * R - d); fx[i] += f * dx / d; fy[i] += f * dy / d; fx[j] -= f * dx / d; fy[j] -= f * dy / d; } } }
[INFO] [stdout]    |                                ^           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -                 if d < 2.0 * R { let f = (2.0 * R - d); fx[i] += f * dx / d; fy[i] += f * dy / d; fx[j] -= f * dx / d; fy[j] -= f * dy / d; } } }
[INFO] [stdout] 40 +                 if d < 2.0 * R { let f = 2.0 * R - d; fx[i] += f * dx / d; fy[i] += f * dy / d; fx[j] -= f * dx / d; fy[j] -= f * dy / d; } } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]  --> examples/q2_0.rs:9:55
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.013 + s).sin())).collect() }
[INFO] [stdout]   |                                                       ^                            ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 - fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.013 + s).sin())).collect() }
[INFO] [stdout] 9 + fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| (i as f32 * 0.013 + s).sin()).collect() }
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `one`
[INFO] [stdout]   --> examples/ebm_edlm.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let one = Tensor::from_vec(&ctx, &[1.0], &[1]); let eps = Tensor::from_vec(&ctx, &[1e-6], &[1]);
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_one`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tgt`
[INFO] [stdout]    --> examples/efa2_reacher.rs:157:66
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let (mut ro, mut rd) = (0, 0.0f32); for k in 0..200u32 { let tgt = sample_target(k);
[INFO] [stdout]     |                                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_tgt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> examples/write_rows.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |       /// Stamp f16 1.0 over the scale field of every block, leaving the payload random.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 133 | /     let with_scale = |mut v: Vec<u8>, blk: usize| -> Vec<u8> {
[INFO] [stdout] 134 | |         for b in (0..v.len()).step_by(blk) { v[b] = 0x00; v[b + 1] = 0x3C; }
[INFO] [stdout] 135 | |         v
[INFO] [stdout] 136 | |     };
[INFO] [stdout]     | |______- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_chunk.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/write_rows.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut v: Vec<u8> = (0..n).map(|_| {
[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 import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_energy.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_chunk.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[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 `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_chunk.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_chunk.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn mpc_episode(seed: u32, im: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_chunk.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_chunk.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ferric_gguf::deq_raw`
[INFO] [stdout]  --> examples/coop_q4_k.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ferric_gguf::deq_raw;
[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: `std::f64::consts::PI`
[INFO] [stdout]   --> examples/efa_s5_control.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gradH` should have a snake case name
[INFO] [stdout]   --> examples/ebm_phnn.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn gradH(ctx: &Arc<ferric_core::Context>, sl: &Var, p: &[Var], one: &Var) -> (Var, Var) {
[INFO] [stdout]    |    ^^^^^ help: convert the identifier to snake case: `grad_h`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_energy.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[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 `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_energy.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_energy.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn mpc_episode(seed: u32, im: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_energy.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_energy.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]  --> examples/coop_spike.rs:9:39
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let a: Vec<f32> = (0..64).map(|i| ((i as f32 * 0.1).sin())).collect();
[INFO] [stdout]   |                                       ^                      ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 -     let a: Vec<f32> = (0..64).map(|i| ((i as f32 * 0.1).sin())).collect();
[INFO] [stdout] 9 +     let a: Vec<f32> = (0..64).map(|i| (i as f32 * 0.1).sin()).collect();
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> examples/coop_spike.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let b: Vec<f32> = (0..64).map(|i| ((i as f32 * 0.07).cos())).collect();
[INFO] [stdout]    |                                       ^                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     let b: Vec<f32> = (0..64).map(|i| ((i as f32 * 0.07).cos())).collect();
[INFO] [stdout] 10 +     let b: Vec<f32> = (0..64).map(|i| (i as f32 * 0.07).cos()).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `one`
[INFO] [stdout]   --> examples/ebm_math_verify.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let one = Tensor::from_vec(&ctx, &[1.0], &[1]); let eps = Tensor::from_vec(&ctx, &[1e-6], &[1]);
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_one`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_complement` is never used
[INFO] [stdout]   --> examples/ebm_compose.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn gen_complement(c: usize, m: usize, seed: u32) -> Vec<f32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_diff.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `es` is never read
[INFO] [stdout]   --> examples/ebm_garden4.rs:26:47
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut e = vec![0usize; T]; let mut es = 0.0f32; let mut tries = 0;
[INFO] [stdout]    |                                               ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 27 |     loop {
[INFO] [stdout] 28 |         es = 0.0; for t in 0..EARLY { let k = (u(seed.wrapping_add(tries * 131), t as u32 + 1) * 4.0) as usize % 4; e[t] = k; es += ...
[INFO] [stdout]    |         -------- `es` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]  --> examples/gdn_state.rs:9:55
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.37 + s).sin())).collect() }
[INFO] [stdout]   |                                                       ^                           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 - fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.37 + s).sin())).collect() }
[INFO] [stdout] 9 + fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| (i as f32 * 0.37 + s).sin()).collect() }
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_diff.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[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 `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn mpc_episode(seed: u32, im: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_diff.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_diff.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ferric_core::Context`
[INFO] [stdout]   --> examples/efa2_pusht_es.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ferric_core::Context;
[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 imports: `Adam`, `Tensor`, and `Var`
[INFO] [stdout]   --> examples/efa2_pusht_es.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ferric_tensor::{Adam, Tensor, Var};
[INFO] [stdout]    |                     ^^^^  ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_es.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CPL` is never used
[INFO] [stdout]   --> examples/ebm_efam.rs:20:96
[INFO] [stdout]    |
[INFO] [stdout] 20 | const H: usize = 128; const EMB: usize = 6; const DT: f32 = 0.05; const UMAX: f32 = 4.0; const CPL: f32 = 0.5;
[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 `h32` is never used
[INFO] [stdout]   --> examples/pinn_poisson2d.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn h32(mut h: u32) -> u32 { h ^= h >> 15; h = h.wrapping_mul(2246822519); h ^= h >> 13; h = h.wrapping_mul(3266489917); h ^= h >> 16...
[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 `u01` is never used
[INFO] [stdout]   --> examples/pinn_poisson2d.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn u01(i: u32, s: u32) -> f32 { (h32(i.wrapping_mul(2654435761).wrapping_add(s)) % 1_000_000 + 1) as f32 / 1_000_000.0 }
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randn` is never used
[INFO] [stdout]   --> examples/pinn_poisson2d.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn randn(n: usize, seed: u32, sc: f32) -> Vec<f32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `o1` is never read
[INFO] [stdout]    --> examples/efa2_pusht_es.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         o1 = o1; [out[0].tanh() * PUSH_V, out[1].tanh() * PUSH_V]        // tanh-bounded pusher velocity
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `usize` to itself
[INFO] [stdout]    --> examples/efa2_pusht_es.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         o1 = o1; [out[0].tanh() * PUSH_V, out[1].tanh() * PUSH_V]        // tanh-bounded pusher velocity
[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 `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_es.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_es.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> examples/gradcheck_ops.rs:39:41
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let x12: Vec<f32> = (0..24).map(|i| ((i as f32 * 0.7).sin())).collect();
[INFO] [stdout]    |                                         ^                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -     let x12: Vec<f32> = (0..24).map(|i| ((i as f32 * 0.7).sin())).collect();
[INFO] [stdout] 39 +     let x12: Vec<f32> = (0..24).map(|i| (i as f32 * 0.7).sin()).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> examples/gradcheck_ops.rs:52:52
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let xr: Vec<f32> = (0..s * heads * hd).map(|i| ((i as f32 * 0.37 + 0.1).cos())).collect();
[INFO] [stdout]    |                                                    ^                             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -     let xr: Vec<f32> = (0..s * heads * hd).map(|i| ((i as f32 * 0.37 + 0.1).cos())).collect();
[INFO] [stdout] 52 +     let xr: Vec<f32> = (0..s * heads * hd).map(|i| (i as f32 * 0.37 + 0.1).cos()).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ferric_gguf::deq_raw`
[INFO] [stdout]  --> examples/coop_q5_k.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ferric_core::Context; use ferric_gguf::deq_raw; use ferric_tensor::{Q5_KWeights, Tensor};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]  --> examples/coverage.rs:8:55
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.37 + s).sin())).collect() }
[INFO] [stdout]   |                                                       ^                           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 8 - fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.37 + s).sin())).collect() }
[INFO] [stdout] 8 + fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| (i as f32 * 0.37 + s).sin()).collect() }
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tgt`
[INFO] [stdout]    --> examples/efa2_reacher_smooth.rs:158:66
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let (mut ro, mut rd) = (0, 0.0f32); for k in 0..200u32 { let tgt = sample_target(k);
[INFO] [stdout]     |                                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_tgt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arm`
[INFO] [stdout]   --> examples/efa2_pushcube_arm.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn new(arm: &Arm, seed: u32) -> Stack {
[INFO] [stdout]    |            ^^^ help: if this is intentional, prefix it with an underscore: `_arm`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/cuda.rs:37:30
[INFO] [stdout]     |
[INFO] [stdout]  35 | macro_rules! sym {
[INFO] [stdout]  36 |     ($lib:expr, $name:literal, $ty:ty) => {{
[INFO] [stdout]  37 |         let s: Symbol<$ty> = unsafe { $lib.get(concat!($name, "\0").as_bytes()) }.ok()?;
[INFO] [stdout]     |                              ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 111 |         unsafe {
[INFO] [stdout]     |         ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 120 |             let get_name = sym!(d._lib, "cuDeviceGetName", unsafe extern "C" fn(*mut c_char, i32, CUdevice) -> CUresult);
[INFO] [stdout]     |                            --------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:221:17
[INFO] [stdout]     |
[INFO] [stdout] 221 |           let r = (self.cu_launch_kernel)(f, grid, 1, 1, block, 1, 1, 0, std::ptr::null_mut(),
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 222 | |                                         params.as_mut_ptr(), std::ptr::null_mut());
[INFO] [stdout]     | |__________________________________________________________________________________^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     unsafe fn launch(&self, f: CUfunction, grid: u32, block: u32, params: &mut [*mut c_void]) -> bool {
[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: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BAUM` is never used
[INFO] [stdout]   --> examples/sim_contact.rs:15:57
[INFO] [stdout]    |
[INFO] [stdout] 15 | const G: f64 = 9.81; const DT: f64 = 1.0 / 240.0; const BAUM: f64 = 0.2; const SLOP: f64 = 1e-4;
[INFO] [stdout]    |                                                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fixed` is never read
[INFO] [stdout]   --> examples/sim_contact.rs:17:99
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Body { p: [f64; 2], v: [f64; 2], m: f64, inv_m: f64, r: f64, half: [f64; 2], is_box: bool, fixed: bool }
[INFO] [stdout]    |        ---- field in this struct                                                                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Body` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `ground` is never used
[INFO] [stdout]   --> examples/sim_contact.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Body {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn ground() -> Body { let mut b = Body::boxb(0.0, -1.0, 1e4, 1.0, 1.0); b.fixed = true; b.inv_m = 0.0; b }
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::DecodeGraph::quant_x_static` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:482:9
[INFO] [stdout]     |
[INFO] [stdout] 482 |         DecodeGraph::quant_x_static(&self.drv, k, x, xq, xs, n)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 |     unsafe fn quant_x(&self, k: &[CUfunction; 11], x: CUdeviceptr, xq: CUdeviceptr, xs: CUdeviceptr, n: usize) -> bool {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::DecodeGraph::quant_x` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:488:17
[INFO] [stdout]     |
[INFO] [stdout] 488 |             if !self.quant_x(k, x, self.xq, self.xs, cols) { return false; }
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:484:5
[INFO] [stdout]     |
[INFO] [stdout] 484 |     unsafe fn gemv(&self, x: CUdeviceptr, w: (CUdeviceptr, CUdeviceptr, bool, usize), cols: usize, out: CUdeviceptr) -> bool {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::Driver::launch` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:493:20
[INFO] [stdout]     |
[INFO] [stdout] 493 |             return self.drv.launch(k[9], (rows as u32).div_ceil(4), 128, &mut pr);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::Driver::launch` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:501:9
[INFO] [stdout]     |
[INFO] [stdout] 501 |         self.drv.launch(f, (rows as u32).div_ceil(4), 128, &mut params)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `cuda::Driver::launch` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/cuda.rs:623:9
[INFO] [stdout]     |
[INFO] [stdout] 623 |         d.launch(k[8], ((n / 32) as u32).div_ceil(4), 128, &mut pr)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[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/cuda.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 620 |     unsafe fn quant_x_static(d: &Driver, k: &[CUfunction; 11], x: CUdeviceptr, xq: CUdeviceptr, xs: CUdeviceptr, n: usize) -> bool {
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_diff2.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[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 variable: `encode_t`
[INFO] [stdout]    --> examples/efa_maze.rs:119:66
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...:Context>, value: bool, encode_t: &dyn Fn(&Tensor) -> Tensor, predict_t: &dyn Fn(&Tensor, &Tensor) -> Tensor, val_t: &dyn Fn(&Te...
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encode_t`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_hist.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[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: `ferric_gguf::deq_raw`
[INFO] [stdout]  --> examples/coop_q6_k.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ferric_core::Context; use ferric_gguf::deq_raw; use ferric_tensor::{Q6_KWeights, Tensor};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_diff2.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[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 `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff2.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff2.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn mpc_episode(seed: u32, im: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_diff2.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_diff2.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ternary_qat.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut gs = |u: &mut dyn FnMut() -> f32| (-2.0 * u().max(1e-7).ln()).sqrt() * (std::f32::consts::TAU * u()).cos();
[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: value assigned to `v` is never read
[INFO] [stdout]   --> examples/ebm_cartfull.rs:44:35
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let atp_b = { let mut v = [0.0f32; 4]; let atp = mm(&mt(ad), &p); v = mv(&atp, bd); v }; // Adᵀ P Bd
[INFO] [stdout]    |                                   ^^^^^^^^^^^                             ---------------- `v` is overwritten here before the previous value is read
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   this value is reassigned later and never used
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_hist.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[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 `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_hist.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_hist.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn mpc_episode(seed: u32, im: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_hist.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_hist.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `H` should have a snake case name
[INFO] [stdout]    --> examples/efa2_pusht_hist.rs:178:33
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let n_demo = 50u32; let mut H: Vec<Vec<f32>> = vec![]; let mut A: Vec<[f32; 2]> = vec![];
[INFO] [stdout]     |                                 ^ help: convert the identifier to snake case: `h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> examples/efa2_pusht_hist.rs:178:68
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let n_demo = 50u32; let mut H: Vec<Vec<f32>> = vec![]; let mut A: Vec<[f32; 2]> = vec![];
[INFO] [stdout]     |                                                                    ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_diff3.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_diff3.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[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 `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff3.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NS` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff3.rs:117:29
[INFO] [stdout]     |
[INFO] [stdout] 117 | const HZ: usize = 70; const NS: usize = 48; const NITER: usize = 4; const ELITE: usize = 8; const STRIDE: usize = 5;
[INFO] [stdout]     |                             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NITER` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff3.rs:117:51
[INFO] [stdout]     |
[INFO] [stdout] 117 | const HZ: usize = 70; const NS: usize = 48; const NITER: usize = 4; const ELITE: usize = 8; const STRIDE: usize = 5;
[INFO] [stdout]     |                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_act` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff3.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn mpc_act(w: &World, mean: &mut Vec<[f32; 2]>, seed: u32) -> [f32; 2] {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gauss` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff3.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn gauss(seed: u32, i: usize) -> f32 { let (a, b) = (u(seed, i as u32), u(seed, i as u32 + 777)); (-2.0 * a.ln()).sqrt() * (2.0 * P...
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_diff3.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn mpc_episode(seed: u32, im: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_diff3.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_diff3.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> examples/general.rs:12:55
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.37 + s).sin())).collect() }
[INFO] [stdout]    |                                                       ^                           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 - fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| ((i as f32 * 0.37 + s).sin())).collect() }
[INFO] [stdout] 12 + fn seq(n: usize, s: f32) -> Vec<f32> { (0..n).map(|i| (i as f32 * 0.37 + s).sin()).collect() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ferric_core::Context`
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ferric_core::Context;
[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 imports: `Adam`, `Tensor`, and `Var`
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ferric_tensor::{Adam, Tensor, Var};
[INFO] [stdout]    |                     ^^^^  ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predict_t`
[INFO] [stdout]   --> examples/efa_maze_conv.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let predict_t = |x: &Tensor, oh: &Tensor| -> Tensor { let hp = x.matmul(&wp[2]).add(&oh.matmul(&wp[3])).add(&wp[4]).relu(); sq(&...
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predict_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> examples/ternary_ssm.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let (t, d, hid) = (16usize, 1usize, 24usize); // T steps, 1-d signal, hidden width
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `obs` is never used
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl World {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn obs(&self) -> [f32; 12] { let ep = [self.tp[0] - self.p[0], self.tp[1] - self.p[1]]; let dpt = unit(ep); let et = wrap(self.t...
[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 `demo` is never used
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn demo(w: &World) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `episode` is never used
[INFO] [stdout]    --> examples/efa2_pusht_mpc.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn episode<F: FnMut(&World) -> [f32; 2]>(seed: u32, im: f32, mut pol: F) -> f32 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn in_T(world: [f32; 2], p: [f32; 2], th: f32) -> bool { let l = rot([world[0] - p[0], world[1] - p[1]], -th); in_box(l, &BAR) || in...
[INFO] [stdout]    |    ^^^^ help: convert the identifier to snake case: `in_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_T` should have a snake case name
[INFO] [stdout]   --> examples/efa2_pusht_mpc.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sample_T(seed: u32) -> [f32; 2] {
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `sample_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_gall`
[INFO] [stdout]    --> examples/ebm_efam3.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |     let r_gall = recall(&gated, &all_items, "GATED — all legitimate memories");
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r_gall`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dmin`
[INFO] [stdout]    --> examples/ebm_efam3.rs:220:14
[INFO] [stdout]     |
[INFO] [stdout] 220 |     for (i, (dmin, rho, eps)) in cert.iter().enumerate() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_dmin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deq_raw`
[INFO] [stdout]  --> examples/coop_q8_0.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ferric_core::Context; use ferric_gguf::{deq_raw, quant_q8_0}; use ferric_tensor::{Q8_0Weights, Tensor};
[INFO] [stdout]   |                                             ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of variable of type `i32` to itself
[INFO] [stdout]    --> examples/ebm_arm2.rs:111:205
[INFO] [stdout]     |
[INFO] [stdout] 111 | ....abs() > 0.35 || s[2].abs() > 0.7 || s[3].abs() > 0.7) { reach = reach; } }
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected item after attributes
[INFO] [stdout]   --> examples/m4prof.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     #[cfg(not(feature = "metal4-interop"))]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an item after this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ferric-tensor` (example "m4prof") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/image.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut field = |p: &mut usize| -> Result<String, String> {
[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] error[E0432]: unresolved imports `ferric_joule::Macmon`, `ferric_joule::MacmonScope`
[INFO] [stdout]   --> examples/quant_kernel_joules.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 | use ferric_joule::{compare, Macmon, MacmonScope, Meter};
[INFO] [stdout]    |                             ^^^^^^  ^^^^^^^^^^^ no `MacmonScope` in the root
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             no `Macmon` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Context_new` should have a snake case name
[INFO] [stdout]    --> examples/efa_discover_verify.rs:166:10
[INFO] [stdout]     |
[INFO] [stdout] 166 | async fn Context_new() -> ferric_core::Context { ferric_core::Context::new().await.unwrap() }
[INFO] [stdout]     |          ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `context_new`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randn` is never used
[INFO] [stdout]   --> examples/deeponet.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn randn(n: usize, seed: u32, sc: f32) -> Vec<f32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> examples/quant_kernel_joules.rs:202:61
[INFO] [stdout]     |
[INFO] [stdout] 202 |             if let Some(sv) = compare(&meter, iters as u64, (iters as u64, iters as u64), 2,
[INFO] [stdout]     |                               -------                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u64`, found `(u64, u64)`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type `u64`
[INFO] [stdout]               found tuple `(u64, u64)`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ferric-joule-0.3.0/src/lib.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub fn compare<M: Meter>(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> examples/quant_kernel_joules.rs:257:52
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let saving = compare(&meter, iters as u64, (iters as u64, iters as u64), 2,
[INFO] [stdout]     |                      -------                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u64`, found `(u64, u64)`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type `u64`
[INFO] [stdout]               found tuple `(u64, u64)`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ferric-joule-0.3.0/src/lib.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub fn compare<M: Meter>(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ferric-tensor` (example "quant_kernel_joules") due to 3 previous errors
[INFO] [stdout] Some errors have detailed explanations: E0133, E0425, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ferric-tensor` (lib test) due to 3 previous errors; 20 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1", kill_on_drop: false }`
[INFO] [stdout] 8d6b34598e0f6349ed65c52ba37f9798d0bf9c7171817b7a482e5290b70be6e1
