[INFO] fetching crate ghostflow-core 1.1.0...
[INFO] testing ghostflow-core-1.1.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate ghostflow-core 1.1.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate ghostflow-core 1.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate ghostflow-core 1.1.0
[INFO] tweaked toml for crates.io crate ghostflow-core 1.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate ghostflow-core 1.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ghostflow-core 1.1.0 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | homepage = "https://github.com/choksi2212/ghost-flow"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67 | repository = "https://github.com/choksi2212/ghost-flow"
[INFO] [stderr]    |              ------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `ghostflow-core` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa
[INFO] running `Command { std: "docker" "start" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa", 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" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | homepage = "https://github.com/choksi2212/ghost-flow"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67 | repository = "https://github.com/choksi2212/ghost-flow"
[INFO] [stderr]    |              ------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `ghostflow-core` (manifest) generated 1 warning
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling reborrow v0.5.5
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling pulp v0.18.22
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling ghostflow-core v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/ops/reduction.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[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: `rayon::prelude`
[INFO] [stdout]  --> src/ops/matmul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/ops/simd.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]   --> src/ops/conv.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rayon::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn cuda(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn rocm(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:98:18
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn metal(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/hardware.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn tpu(device_id: usize) -> Result<Self> {
[INFO] [stdout]     |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let mut devices = vec![HardwareDevice::cpu()];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernel`
[INFO] [stdout]    --> src/hardware.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |     fn conv2d_hw(&self, kernel: &Tensor, device: &HardwareDevice) -> Result<Tensor> {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/rocm.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/rocm.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn allocate(size: usize, device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/rocm.rs:76:34
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn allocate(size: usize, device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/rocm.rs:192:14
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/rocm.rs:193:18
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch`
[INFO] [stdout]    --> src/rocm.rs:253:14
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (batch, in_channels, in_h, in_w) = (input_dims[0], input_dims[1], input_dims[2], input_dims[3]);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_channels`
[INFO] [stdout]    --> src/rocm.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (batch, in_channels, in_h, in_w) = (input_dims[0], input_dims[1], input_dims[2], input_dims[3]);
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_channels`
[INFO] [stdout]    --> src/rocm.rs:254:14
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let (out_channels, _, k_h, k_w) = (kernel_dims[0], kernel_dims[1], kernel_dims[2], kernel_dims[3]);
[INFO] [stdout]     |              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_h`
[INFO] [stdout]    --> src/rocm.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let out_h = (in_h + 2 * padding.0 - k_h) / stride.0 + 1;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_out_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_w`
[INFO] [stdout]    --> src/rocm.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let out_w = (in_w + 2 * padding.1 - k_w) / stride.1 + 1;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_out_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/rocm.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let size = data.len();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/metal.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/metal.rs:179:14
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/metal.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/metal.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let size = data.len();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/tpu.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/tpu.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/tpu.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ptr`, `size`, and `device_id` are never read
[INFO] [stdout]   --> src/rocm.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct RocmBuffer {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 69 |     ptr: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 70 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 71 |     device_id: usize,
[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 `name` is never read
[INFO] [stdout]    --> src/rocm.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct RocmKernel {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 138 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `device_id` are never read
[INFO] [stdout]   --> src/metal.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct MetalBuffer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 68 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 69 |     device_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/metal.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct MetalPipeline {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 124 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `device_id` are never read
[INFO] [stdout]   --> src/tpu.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct TpuBuffer {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 85 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 86 |     device_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/tpu.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub struct XlaComputation {
[INFO] [stdout]     |                -------------- field in this struct
[INFO] [stdout] 144 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/tpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub struct CompiledXla {
[INFO] [stdout]     |                ----------- field in this struct
[INFO] [stdout] 195 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/profiler.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         GLOBAL_PROFILER.get_or_insert_with(Profiler::new)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `pulp`
[INFO] [stderr]   --> Cargo.toml:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 | [dependencies.pulp]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `pulp`
[INFO] [stderr] warning: unused dependency `wide`
[INFO] [stderr]   --> Cargo.toml:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 | [dependencies.wide]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `wide`
[INFO] [stderr] warning: `ghostflow-core` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 19.39s
[INFO] running `Command { std: "docker" "inspect" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | homepage = "https://github.com/choksi2212/ghost-flow"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67 | repository = "https://github.com/choksi2212/ghost-flow"
[INFO] [stderr]    |              ------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `ghostflow-core` (manifest) generated 1 warning
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/ops/reduction.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[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: `rayon::prelude`
[INFO] [stdout]  --> src/ops/matmul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/ops/simd.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]   --> src/ops/conv.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rayon::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn cuda(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn rocm(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:98:18
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn metal(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/hardware.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn tpu(device_id: usize) -> Result<Self> {
[INFO] [stdout]     |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let mut devices = vec![HardwareDevice::cpu()];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernel`
[INFO] [stdout]    --> src/hardware.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |     fn conv2d_hw(&self, kernel: &Tensor, device: &HardwareDevice) -> Result<Tensor> {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/rocm.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/rocm.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn allocate(size: usize, device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/rocm.rs:76:34
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn allocate(size: usize, device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/rocm.rs:192:14
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/rocm.rs:193:18
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch`
[INFO] [stdout]    --> src/rocm.rs:253:14
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (batch, in_channels, in_h, in_w) = (input_dims[0], input_dims[1], input_dims[2], input_dims[3]);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_channels`
[INFO] [stdout]    --> src/rocm.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (batch, in_channels, in_h, in_w) = (input_dims[0], input_dims[1], input_dims[2], input_dims[3]);
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_channels`
[INFO] [stdout]    --> src/rocm.rs:254:14
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let (out_channels, _, k_h, k_w) = (kernel_dims[0], kernel_dims[1], kernel_dims[2], kernel_dims[3]);
[INFO] [stdout]     |              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_h`
[INFO] [stdout]    --> src/rocm.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let out_h = (in_h + 2 * padding.0 - k_h) / stride.0 + 1;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_out_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_w`
[INFO] [stdout]    --> src/rocm.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let out_w = (in_w + 2 * padding.1 - k_w) / stride.1 + 1;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_out_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/rocm.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let size = data.len();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/metal.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/metal.rs:179:14
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/metal.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/metal.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let size = data.len();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/tpu.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ghostflow-core v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/tpu.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/tpu.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ptr`, `size`, and `device_id` are never read
[INFO] [stdout]   --> src/rocm.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct RocmBuffer {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 69 |     ptr: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 70 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 71 |     device_id: usize,
[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 `name` is never read
[INFO] [stdout]    --> src/rocm.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct RocmKernel {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 138 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `device_id` are never read
[INFO] [stdout]   --> src/metal.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct MetalBuffer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 68 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 69 |     device_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/metal.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct MetalPipeline {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 124 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `device_id` are never read
[INFO] [stdout]   --> src/tpu.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct TpuBuffer {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 85 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 86 |     device_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/tpu.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub struct XlaComputation {
[INFO] [stdout]     |                -------------- field in this struct
[INFO] [stdout] 144 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/tpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub struct CompiledXla {
[INFO] [stdout]     |                ----------- field in this struct
[INFO] [stdout] 195 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/profiler.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         GLOBAL_PROFILER.get_or_insert_with(Profiler::new)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `ghostflow_core::jit`
[INFO] [stdout]    --> tests/test_optimizations.rs:203:25
[INFO] [stdout]     |
[INFO] [stdout] 203 |     use ghostflow_core::jit::*;
[INFO] [stdout]     |                         ^^^ could not find `jit` in `ghostflow_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ghostflow_core::Tensor`
[INFO] [stdout]    --> tests/test_optimizations.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     use ghostflow_core::Tensor;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `ghostflow_core::fusion::GraphNode` has no field named `op`
[INFO] [stdout]    --> tests/test_optimizations.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     op: Operation::Conv2d { channels: 64, kernel: (3, 3) },
[INFO] [stdout]     |                     ^^ `ghostflow_core::fusion::GraphNode` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `op_type`, `fusible`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `ghostflow_core::fusion::GraphNode` has no field named `op`
[INFO] [stdout]    --> tests/test_optimizations.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout] 221 |                     op: Operation::BatchNorm { channels: 64 },
[INFO] [stdout]     |                     ^^ `ghostflow_core::fusion::GraphNode` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `op_type`, `fusible`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `ghostflow_core::fusion::GraphNode` has no field named `op`
[INFO] [stdout]    --> tests/test_optimizations.rs:227:21
[INFO] [stdout]     |
[INFO] [stdout] 227 |                     op: Operation::ReLU,
[INFO] [stdout]     |                     ^^ `ghostflow_core::fusion::GraphNode` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `op_type`, `fusible`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `ghostflow_core::ComputeGraph` has no field named `edges`
[INFO] [stdout]    --> tests/test_optimizations.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |             edges: vec![(0, 1), (1, 2)],
[INFO] [stdout]     |             ^^^^^ `ghostflow_core::ComputeGraph` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `optimize` found for struct `ghostflow_core::FusionEngine` in the current scope
[INFO] [stdout]    --> tests/test_optimizations.rs:235:32
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let optimized = engine.optimize(graph);
[INFO] [stdout]     |                                ^^^^^^^^ method not found in `ghostflow_core::FusionEngine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `ghostflow_core::fusion::GraphNode` has no field named `op`
[INFO] [stdout]    --> tests/test_optimizations.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |                     op: Operation::ReLU,
[INFO] [stdout]     |                     ^^ `ghostflow_core::fusion::GraphNode` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `op_type`, `fusible`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `ghostflow_core::ComputeGraph` has no field named `edges`
[INFO] [stdout]    --> tests/test_optimizations.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |             edges: vec![],
[INFO] [stdout]     |             ^^^^^ `ghostflow_core::ComputeGraph` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0560, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ghostflow-core` (test "test_optimizations") due to 8 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/ops/simd.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rayon::prelude::*;
[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: `rayon::prelude`
[INFO] [stdout]  --> src/ops/reduction.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]   --> src/ops/conv.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rayon::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/ops/matmul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn cuda(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn rocm(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/hardware.rs:98:18
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn metal(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/hardware.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn tpu(device_id: usize) -> Result<Self> {
[INFO] [stdout]     |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let mut devices = vec![HardwareDevice::cpu()];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernel`
[INFO] [stdout]    --> src/hardware.rs:328:25
[INFO] [stdout]     |
[INFO] [stdout] 328 |     fn conv2d_hw(&self, kernel: &Tensor, device: &HardwareDevice) -> Result<Tensor> {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/rocm.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/rocm.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn allocate(size: usize, device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/rocm.rs:76:34
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn allocate(size: usize, device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/rocm.rs:192:14
[INFO] [stdout]     |
[INFO] [stdout] 192 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/rocm.rs:193:18
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch`
[INFO] [stdout]    --> src/rocm.rs:253:14
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (batch, in_channels, in_h, in_w) = (input_dims[0], input_dims[1], input_dims[2], input_dims[3]);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_channels`
[INFO] [stdout]    --> src/rocm.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (batch, in_channels, in_h, in_w) = (input_dims[0], input_dims[1], input_dims[2], input_dims[3]);
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_channels`
[INFO] [stdout]    --> src/rocm.rs:254:14
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let (out_channels, _, k_h, k_w) = (kernel_dims[0], kernel_dims[1], kernel_dims[2], kernel_dims[3]);
[INFO] [stdout]     |              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_h`
[INFO] [stdout]    --> src/rocm.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let out_h = (in_h + 2 * padding.0 - k_h) / stride.0 + 1;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_out_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_w`
[INFO] [stdout]    --> src/rocm.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let out_w = (in_w + 2 * padding.1 - k_w) / stride.1 + 1;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_out_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/rocm.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let size = data.len();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/metal.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/metal.rs:179:14
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/metal.rs:180:18
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/metal.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let size = data.len();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `available`
[INFO] [stdout]    --> src/neon.rs:391:13
[INFO] [stdout]     |
[INFO] [stdout] 391 |         let available = is_neon_available();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_available`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]   --> src/tpu.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(device_id: usize) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/tpu.rs:229:14
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let (m, k) = (dims_a[0], dims_a[1]);
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/tpu.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let (k2, n) = (dims_b[0], dims_b[1]);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/fusion.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let n3 = graph.add_node("ReLU".to_string(), vec![n2], true);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/fusion.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let n3 = graph.add_node("ReLU".to_string(), vec![n2], true);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ptr`, `size`, and `device_id` are never read
[INFO] [stdout]   --> src/rocm.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct RocmBuffer {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 69 |     ptr: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 70 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 71 |     device_id: usize,
[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 `name` is never read
[INFO] [stdout]    --> src/rocm.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct RocmKernel {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 138 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `device_id` are never read
[INFO] [stdout]   --> src/metal.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct MetalBuffer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 68 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 69 |     device_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/metal.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct MetalPipeline {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 124 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `device_id` are never read
[INFO] [stdout]   --> src/tpu.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct TpuBuffer {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 85 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 86 |     device_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/tpu.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub struct XlaComputation {
[INFO] [stdout]     |                -------------- field in this struct
[INFO] [stdout] 144 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/tpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub struct CompiledXla {
[INFO] [stdout]     |                ----------- field in this struct
[INFO] [stdout] 195 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/rocm.rs:362:17
[INFO] [stdout]     |
[INFO] [stdout] 362 |         assert!(count >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/metal.rs:429:17
[INFO] [stdout]     |
[INFO] [stdout] 429 |         assert!(count >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/tpu.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |         assert!(count >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/profiler.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         GLOBAL_PROFILER.get_or_insert_with(Profiler::new)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `pulp`
[INFO] [stderr]   --> Cargo.toml:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 | [dependencies.pulp]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `pulp`
[INFO] [stderr] warning: unused dependency `wide`
[INFO] [stderr]   --> Cargo.toml:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 | [dependencies.wide]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `wide`
[INFO] [stderr] warning: `ghostflow-core` (manifest) generated 2 warnings
[INFO] running `Command { std: "docker" "inspect" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa", kill_on_drop: false }`
[INFO] [stdout] cd846617638f2db8f3ce6349dca6528dbca722ef1dfc1b3f42f109d74bcf8afa
