[INFO] cloning repository https://github.com/Victor-Viicell/text-defusion
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Victor-Viicell/text-defusion" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVictor-Viicell%2Ftext-defusion", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVictor-Viicell%2Ftext-defusion'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 43fccea7085c65b66f92a018f0b2d23a95328ebf
[INFO] testing Victor-Viicell/text-defusion against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVictor-Viicell%2Ftext-defusion" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Victor-Viicell/text-defusion
[INFO] finished tweaking git repo https://github.com/Victor-Viicell/text-defusion
[INFO] tweaked toml for git repo https://github.com/Victor-Viicell/text-defusion written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Victor-Viicell/text-defusion on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Victor-Viicell/text-defusion 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" "+beta-2025-09-21" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 057bdc8d2225821b62c857cb0744631d0d48c2bb7fd747868c36db77d75126ee
[INFO] running `Command { std: "docker" "start" "-a" "057bdc8d2225821b62c857cb0744631d0d48c2bb7fd747868c36db77d75126ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "057bdc8d2225821b62c857cb0744631d0d48c2bb7fd747868c36db77d75126ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "057bdc8d2225821b62c857cb0744631d0d48c2bb7fd747868c36db77d75126ee", kill_on_drop: false }`
[INFO] [stdout] 057bdc8d2225821b62c857cb0744631d0d48c2bb7fd747868c36db77d75126ee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c81f3b983383713352aa5de7c3a48e537e3153cb0d0b7b183ac8cb127ed09160
[INFO] running `Command { std: "docker" "start" "-a" "c81f3b983383713352aa5de7c3a48e537e3153cb0d0b7b183ac8cb127ed09160", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling ndarray v0.15.6
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling text-defusion v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]  --> src/compute/attention.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array2, Array3, Axis};
[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: `Axis`
[INFO] [stdout]  --> src/compute/device.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{Array1, Array2, Array3, Axis};
[INFO] [stdout]   |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/compute/tensor.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{Array1, Array2, Array3};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/compute/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, Array3};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> src/training/trainer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/compute/activation.rs:100:61
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 let cdf = 0.5 * (1.0 + (x / 2.0_f32.sqrt()).erf());
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = help: call with fully qualified syntax `Erf::erf(...)` to keep using the current method
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sqrt_2_over_pi`
[INFO] [stdout]   --> src/compute/activation.rs:99:21
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 let sqrt_2_over_pi = (2.0 / PI).sqrt();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sqrt_2_over_pi`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_len`
[INFO] [stdout]   --> src/compute/attention.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (seq_len, _) = input.dim();
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (_seq_len, _) = input.dim();
[INFO] [stdout]    |              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_MERGES`
[INFO] [stdout]    |
[INFO] [stdout] 57 -         let (seq_len, _) = input.dim();
[INFO] [stdout] 57 +         let (tokenizer::bpe::BPE::train::MAX_MERGES, _) = input.dim();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/compute/device.rs:295:29
[INFO] [stdout]     |
[INFO] [stdout] 295 |             DeviceType::Gpu(device_id) => {
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 295 |             DeviceType::Gpu(_device_id) => {
[INFO] [stdout]     |                             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `FORMAT_VERSION`
[INFO] [stdout]     |
[INFO] [stdout] 295 -             DeviceType::Gpu(device_id) => {
[INFO] [stdout] 295 +             DeviceType::Gpu(compression::format::FORMAT_VERSION) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compute/linear.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 for (i, mut element) in row.iter_mut().enumerate() {
[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: `relu_result`
[INFO] [stdout]    --> src/compute/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let relu_result = backend.relu(&test_input)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_relu_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gelu_result`
[INFO] [stdout]    --> src/compute/mod.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |     let gelu_result = backend.gelu(&test_input)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gelu_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `softmax_result`
[INFO] [stdout]    --> src/compute/mod.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let softmax_result = backend.softmax(&test_input, 1)?;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_softmax_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ln_result`
[INFO] [stdout]    --> src/compute/mod.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let ln_result = backend.layer_norm(&test_input, &weight, &bias, 1e-5)?;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ln_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_gradients`
[INFO] [stdout]    --> src/training/trainer.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         token_gradients: &[TokenGradient],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_gradients`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dropout` is never read
[INFO] [stdout]   --> src/compute/attention.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct MultiHeadAttention {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     dropout: 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: variant `Gpu` is never constructed
[INFO] [stdout]   --> src/compute/device.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum DeviceType {
[INFO] [stdout]    |      ---------- variant in this enum
[INFO] [stdout] 24 |     Cpu,
[INFO] [stdout] 25 |     Gpu(u32), // GPU index
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layer_configs` is never read
[INFO] [stdout]    --> src/compute/linear.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct MLP {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 239 |     layers: Vec<Linear>,
[INFO] [stdout] 240 |     layer_configs: Vec<(usize, usize, bool)>, // (in, out, bias)
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_size`
[INFO] [stdout]     --> src/main.rs:1001:9
[INFO] [stdout]      |
[INFO] [stdout] 1001 |     let model_size = config.model_dim * config.vocab_size;
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_size`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.51s
[INFO] running `Command { std: "docker" "inspect" "c81f3b983383713352aa5de7c3a48e537e3153cb0d0b7b183ac8cb127ed09160", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c81f3b983383713352aa5de7c3a48e537e3153cb0d0b7b183ac8cb127ed09160", kill_on_drop: false }`
[INFO] [stdout] c81f3b983383713352aa5de7c3a48e537e3153cb0d0b7b183ac8cb127ed09160
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3a5096f99d7df6b52256c5f7da654b26fcbebfff4cbf71ec2eba006ec2ce5462
[INFO] running `Command { std: "docker" "start" "-a" "3a5096f99d7df6b52256c5f7da654b26fcbebfff4cbf71ec2eba006ec2ce5462", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]  --> src/compute/attention.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array2, Array3, Axis};
[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: `Axis`
[INFO] [stdout]  --> src/compute/device.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{Array1, Array2, Array3, Axis};
[INFO] [stdout]   |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/compute/tensor.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{Array1, Array2, Array3};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/compute/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, Array3};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> src/training/trainer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/compute/activation.rs:100:61
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 let cdf = 0.5 * (1.0 + (x / 2.0_f32.sqrt()).erf());
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = help: call with fully qualified syntax `Erf::erf(...)` to keep using the current method
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sqrt_2_over_pi`
[INFO] [stdout]   --> src/compute/activation.rs:99:21
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 let sqrt_2_over_pi = (2.0 / PI).sqrt();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sqrt_2_over_pi`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_len`
[INFO] [stdout]   --> src/compute/attention.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (seq_len, _) = input.dim();
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (_seq_len, _) = input.dim();
[INFO] [stdout]    |              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_MERGES`
[INFO] [stdout]    |
[INFO] [stdout] 57 -         let (seq_len, _) = input.dim();
[INFO] [stdout] 57 +         let (tokenizer::bpe::BPE::train::MAX_MERGES, _) = input.dim();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/compute/device.rs:295:29
[INFO] [stdout]     |
[INFO] [stdout] 295 |             DeviceType::Gpu(device_id) => {
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 295 |             DeviceType::Gpu(_device_id) => {
[INFO] [stdout]     |                             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `FORMAT_VERSION`
[INFO] [stdout]     |
[INFO] [stdout] 295 -             DeviceType::Gpu(device_id) => {
[INFO] [stdout] 295 +             DeviceType::Gpu(compression::format::FORMAT_VERSION) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compute/linear.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 for (i, mut element) in row.iter_mut().enumerate() {
[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: `relu_result`
[INFO] [stdout]    --> src/compute/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let relu_result = backend.relu(&test_input)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_relu_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gelu_result`
[INFO] [stdout]    --> src/compute/mod.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |     let gelu_result = backend.gelu(&test_input)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gelu_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `softmax_result`
[INFO] [stdout]    --> src/compute/mod.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let softmax_result = backend.softmax(&test_input, 1)?;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_softmax_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ln_result`
[INFO] [stdout]    --> src/compute/mod.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let ln_result = backend.layer_norm(&test_input, &weight, &bias, 1e-5)?;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ln_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_gradients`
[INFO] [stdout]    --> src/training/trainer.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         token_gradients: &[TokenGradient],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_gradients`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dropout` is never read
[INFO] [stdout]   --> src/compute/attention.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct MultiHeadAttention {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     dropout: 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: variant `Gpu` is never constructed
[INFO] [stdout]   --> src/compute/device.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum DeviceType {
[INFO] [stdout]    |      ---------- variant in this enum
[INFO] [stdout] 24 |     Cpu,
[INFO] [stdout] 25 |     Gpu(u32), // GPU index
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layer_configs` is never read
[INFO] [stdout]    --> src/compute/linear.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct MLP {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 239 |     layers: Vec<Linear>,
[INFO] [stdout] 240 |     layer_configs: Vec<(usize, usize, bool)>, // (in, out, bias)
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling text-defusion v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]  --> src/compute/attention.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array2, Array3, Axis};
[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: `Axis`
[INFO] [stdout]  --> src/compute/device.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{Array1, Array2, Array3, Axis};
[INFO] [stdout]   |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/compute/tensor.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{Array1, Array2, Array3};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/compute/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, Array3};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> src/training/trainer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model_size`
[INFO] [stdout]     --> src/main.rs:1001:9
[INFO] [stdout]      |
[INFO] [stdout] 1001 |     let model_size = config.model_dim * config.vocab_size;
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_size`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> src/compute/activation.rs:100:61
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 let cdf = 0.5 * (1.0 + (x / 2.0_f32.sqrt()).erf());
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = help: call with fully qualified syntax `Erf::erf(...)` to keep using the current method
[INFO] [stdout]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sqrt_2_over_pi`
[INFO] [stdout]   --> src/compute/activation.rs:99:21
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 let sqrt_2_over_pi = (2.0 / PI).sqrt();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sqrt_2_over_pi`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_len`
[INFO] [stdout]   --> src/compute/attention.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (seq_len, _) = input.dim();
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (_seq_len, _) = input.dim();
[INFO] [stdout]    |              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `MAX_MERGES`
[INFO] [stdout]    |
[INFO] [stdout] 57 -         let (seq_len, _) = input.dim();
[INFO] [stdout] 57 +         let (tokenizer::bpe::BPE::train::MAX_MERGES, _) = input.dim();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/compute/device.rs:295:29
[INFO] [stdout]     |
[INFO] [stdout] 295 |             DeviceType::Gpu(device_id) => {
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 295 |             DeviceType::Gpu(_device_id) => {
[INFO] [stdout]     |                             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `FORMAT_VERSION`
[INFO] [stdout]     |
[INFO] [stdout] 295 -             DeviceType::Gpu(device_id) => {
[INFO] [stdout] 295 +             DeviceType::Gpu(compression::format::FORMAT_VERSION) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/compute/linear.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 for (i, mut element) in row.iter_mut().enumerate() {
[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: `relu_result`
[INFO] [stdout]    --> src/compute/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let relu_result = backend.relu(&test_input)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_relu_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gelu_result`
[INFO] [stdout]    --> src/compute/mod.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |     let gelu_result = backend.gelu(&test_input)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gelu_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `softmax_result`
[INFO] [stdout]    --> src/compute/mod.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let softmax_result = backend.softmax(&test_input, 1)?;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_softmax_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ln_result`
[INFO] [stdout]    --> src/compute/mod.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 280 |     let ln_result = backend.layer_norm(&test_input, &weight, &bias, 1e-5)?;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ln_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_gradients`
[INFO] [stdout]    --> src/training/trainer.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         token_gradients: &[TokenGradient],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_gradients`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dropout` is never read
[INFO] [stdout]   --> src/compute/attention.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct MultiHeadAttention {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     dropout: 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: variant `Gpu` is never constructed
[INFO] [stdout]   --> src/compute/device.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum DeviceType {
[INFO] [stdout]    |      ---------- variant in this enum
[INFO] [stdout] 24 |     Cpu,
[INFO] [stdout] 25 |     Gpu(u32), // GPU index
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layer_configs` is never read
[INFO] [stdout]    --> src/compute/linear.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct MLP {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] 239 |     layers: Vec<Linear>,
[INFO] [stdout] 240 |     layer_configs: Vec<(usize, usize, bool)>, // (in, out, bias)
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.22s
[INFO] running `Command { std: "docker" "inspect" "3a5096f99d7df6b52256c5f7da654b26fcbebfff4cbf71ec2eba006ec2ce5462", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a5096f99d7df6b52256c5f7da654b26fcbebfff4cbf71ec2eba006ec2ce5462", kill_on_drop: false }`
[INFO] [stdout] 3a5096f99d7df6b52256c5f7da654b26fcbebfff4cbf71ec2eba006ec2ce5462
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e17bd6c5c5a76a93c448050777c76125885907bbfcf6ea42e191fe1fd421b25a
[INFO] running `Command { std: "docker" "start" "-a" "e17bd6c5c5a76a93c448050777c76125885907bbfcf6ea42e191fe1fd421b25a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Axis`
[INFO] [stderr]  --> src/compute/attention.rs:3:31
[INFO] [stderr]   |
[INFO] [stderr] 3 | use ndarray::{Array2, Array3, Axis};
[INFO] [stderr]   |                               ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Axis`
[INFO] [stderr]  --> src/compute/device.rs:2:39
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ndarray::{Array1, Array2, Array3, Axis};
[INFO] [stderr]   |                                       ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Array3`
[INFO] [stderr]  --> src/compute/tensor.rs:2:31
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ndarray::{Array1, Array2, Array3};
[INFO] [stderr]   |                               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Array3`
[INFO] [stderr]  --> src/compute/mod.rs:8:31
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ndarray::{Array1, Array2, Array3};
[INFO] [stderr]   |                               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ndarray::Array2`
[INFO] [stderr]  --> src/training/trainer.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use ndarray::Array2;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: a method with this name may be added to the standard library in the future
[INFO] [stderr]    --> src/compute/activation.rs:100:61
[INFO] [stderr]     |
[INFO] [stderr] 100 |                 let cdf = 0.5 * (1.0 + (x / 2.0_f32.sqrt()).erf());
[INFO] [stderr]     |                                                             ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stderr]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stderr]     = help: call with fully qualified syntax `Erf::erf(...)` to keep using the current method
[INFO] [stderr]     = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sqrt_2_over_pi`
[INFO] [stderr]   --> src/compute/activation.rs:99:21
[INFO] [stderr]    |
[INFO] [stderr] 99 |                 let sqrt_2_over_pi = (2.0 / PI).sqrt();
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sqrt_2_over_pi`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `seq_len`
[INFO] [stderr]   --> src/compute/attention.rs:57:14
[INFO] [stderr]    |
[INFO] [stderr] 57 |         let (seq_len, _) = input.dim();
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 57 |         let (_seq_len, _) = input.dim();
[INFO] [stderr]    |              +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `MAX_MERGES`
[INFO] [stderr]    |
[INFO] [stderr] 57 -         let (seq_len, _) = input.dim();
[INFO] [stderr] 57 +         let (tokenizer::bpe::BPE::train::MAX_MERGES, _) = input.dim();
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device_id`
[INFO] [stderr]    --> src/compute/device.rs:295:29
[INFO] [stderr]     |
[INFO] [stderr] 295 |             DeviceType::Gpu(device_id) => {
[INFO] [stderr]     |                             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 295 |             DeviceType::Gpu(_device_id) => {
[INFO] [stderr]     |                             +
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `FORMAT_VERSION`
[INFO] [stderr]     |
[INFO] [stderr] 295 -             DeviceType::Gpu(device_id) => {
[INFO] [stderr] 295 +             DeviceType::Gpu(compression::format::FORMAT_VERSION) => {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/compute/linear.rs:107:25
[INFO] [stderr]     |
[INFO] [stderr] 107 |                 for (i, mut element) in row.iter_mut().enumerate() {
[INFO] [stderr]     |                         ----^^^^^^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `relu_result`
[INFO] [stderr]    --> src/compute/mod.rs:268:9
[INFO] [stderr]     |
[INFO] [stderr] 268 |     let relu_result = backend.relu(&test_input)?;
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_relu_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `gelu_result`
[INFO] [stderr]    --> src/compute/mod.rs:271:9
[INFO] [stderr]     |
[INFO] [stderr] 271 |     let gelu_result = backend.gelu(&test_input)?;
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gelu_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `softmax_result`
[INFO] [stderr]    --> src/compute/mod.rs:274:9
[INFO] [stderr]     |
[INFO] [stderr] 274 |     let softmax_result = backend.softmax(&test_input, 1)?;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_softmax_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ln_result`
[INFO] [stderr]    --> src/compute/mod.rs:280:9
[INFO] [stderr]     |
[INFO] [stderr] 280 |     let ln_result = backend.layer_norm(&test_input, &weight, &bias, 1e-5)?;
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ln_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `token_gradients`
[INFO] [stderr]    --> src/training/trainer.rs:383:9
[INFO] [stderr]     |
[INFO] [stderr] 383 |         token_gradients: &[TokenGradient],
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_gradients`
[INFO] [stderr] 
[INFO] [stderr] warning: field `dropout` is never read
[INFO] [stderr]   --> src/compute/attention.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub struct MultiHeadAttention {
[INFO] [stderr]    |            ------------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 21 |     dropout: f32,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Gpu` is never constructed
[INFO] [stderr]   --> src/compute/device.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 23 | enum DeviceType {
[INFO] [stderr]    |      ---------- variant in this enum
[INFO] [stderr] 24 |     Cpu,
[INFO] [stderr] 25 |     Gpu(u32), // GPU index
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DeviceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `layer_configs` is never read
[INFO] [stderr]    --> src/compute/linear.rs:240:5
[INFO] [stderr]     |
[INFO] [stderr] 238 | pub struct MLP {
[INFO] [stderr]     |            --- field in this struct
[INFO] [stderr] 239 |     layers: Vec<Linear>,
[INFO] [stderr] 240 |     layer_configs: Vec<(usize, usize, bool)>, // (in, out, bias)
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `text-defusion` (lib) generated 18 warnings (run `cargo fix --lib -p text-defusion` to apply 8 suggestions)
[INFO] [stderr] warning: `text-defusion` (lib test) generated 18 warnings (18 duplicates)
[INFO] [stderr] warning: unused variable: `model_size`
[INFO] [stderr]     --> src/main.rs:1001:9
[INFO] [stderr]      |
[INFO] [stderr] 1001 |     let model_size = config.model_dim * config.vocab_size;
[INFO] [stderr]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_size`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `text-defusion` (bin "text-defusion" test) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/text_defusion-cf03444b750e67d7)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test compression::cache::tests::test_basic_pattern_operations ... ok
[INFO] [stdout] test compression::cache::tests::test_cache_serialization ... ok
[INFO] [stdout] test compression::format::tests::test_checksum ... ok
[INFO] [stdout] test compression::format::tests::test_lz_compression ... ok
[INFO] [stdout] test compression::format::tests::test_section_compression ... ok
[INFO] [stdout] test diffusion::scheduler::tests::test_noise_addition ... ok
[INFO] [stdout] test diffusion::scheduler::tests::test_noise_levels ... ok
[INFO] [stdout] test diffusion::scheduler::tests::test_schedule_types ... ok
[INFO] [stdout] test quantization::ops::tests::test_float_conversion ... ok
[INFO] [stdout] test diffusion::scheduler::tests::test_scheduler_creation ... ok
[INFO] [stdout] test compression::cache::tests::test_pattern_analysis ... ok
[INFO] [stdout] test quantization::ops::tests::test_quantized_relu ... ok
[INFO] [stdout] test quantization::ops::tests::test_quantized_add ... ok
[INFO] [stdout] test tests::test_compression_cache ... ok
[INFO] [stdout] test tests::test_compression_manager ... ok
[INFO] [stdout] test tests::test_diffusion_scheduler ... ok
[INFO] [stdout] test tests::test_error_types ... ok
[INFO] [stdout] test tests::test_logging_system ... ok
[INFO] [stdout] test tests::test_math_utilities ... ok
[INFO] [stdout] test tests::test_model_configuration ... ok
[INFO] [stdout] test tests::test_sample_dataset ... ok
[INFO] [stdout] test tests::test_tokenizer_basic ... ok
[INFO] [stdout] test tests::test_quantization_engine ... ok
[INFO] [stdout] test tests::test_sampling_config ... ok
[INFO] [stdout] test tests::test_sampler_creation ... ok
[INFO] [stdout] test tests::test_model_registry ... ok
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/text_defusion-cf03444b750e67d7` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "e17bd6c5c5a76a93c448050777c76125885907bbfcf6ea42e191fe1fd421b25a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e17bd6c5c5a76a93c448050777c76125885907bbfcf6ea42e191fe1fd421b25a", kill_on_drop: false }`
[INFO] [stdout] e17bd6c5c5a76a93c448050777c76125885907bbfcf6ea42e191fe1fd421b25a
