[INFO] cloning repository https://github.com/TuckerBMorgan/can-t
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TuckerBMorgan/can-t" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTuckerBMorgan%2Fcan-t", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTuckerBMorgan%2Fcan-t'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5c0dcb6c12f1312feae324a93a824577e90961c2
[INFO] building TuckerBMorgan/can-t against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTuckerBMorgan%2Fcan-t" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/TuckerBMorgan/can-t
[INFO] finished tweaking git repo https://github.com/TuckerBMorgan/can-t
[INFO] tweaked toml for git repo https://github.com/TuckerBMorgan/can-t written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TuckerBMorgan/can-t on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TuckerBMorgan/can-t 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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7ae9b9e10907be99fe0a837ee48a5cbe6737ce1febaaf842463721db8619d931
[INFO] running `Command { std: "docker" "start" "-a" "7ae9b9e10907be99fe0a837ee48a5cbe6737ce1febaaf842463721db8619d931", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7ae9b9e10907be99fe0a837ee48a5cbe6737ce1febaaf842463721db8619d931", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ae9b9e10907be99fe0a837ee48a5cbe6737ce1febaaf842463721db8619d931", kill_on_drop: false }`
[INFO] [stdout] 7ae9b9e10907be99fe0a837ee48a5cbe6737ce1febaaf842463721db8619d931
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ba8fcc43e7d73cd730647742728e092cf44bfc281433924ae9d12a590665858b
[INFO] running `Command { std: "docker" "start" "-a" "ba8fcc43e7d73cd730647742728e092cf44bfc281433924ae9d12a590665858b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling curl-sys v0.4.82+curl-8.14.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling thiserror v2.0.14
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling curl v0.4.48
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling unicode-normalization-alignments v0.1.12
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling socket2 v0.5.9
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling monostate-impl v0.1.14
[INFO] [stderr]    Compiling thiserror-impl v2.0.14
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rust_tokenizers v8.1.1
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.2.2
[INFO] [stderr]    Compiling onig v6.5.1
[INFO] [stderr]    Compiling macro_rules_attribute v0.2.2
[INFO] [stderr]    Compiling pbr v1.1.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling ndarray v0.15.6
[INFO] [stderr]    Compiling rayon-cond v0.4.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling fancy-regex v0.13.0
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling mnist v0.5.0
[INFO] [stderr]    Compiling tiktoken-rs v0.7.0
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling cant_cpu v0.1.0 (/opt/rustwide/workdir/crates/cant_cpu)
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling monostate v0.1.14
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling spm_precompiled v0.1.4
[INFO] [stderr]    Compiling dary_heap v0.3.7
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling tokenizers v0.21.4
[INFO] [stderr]    Compiling cant v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> src/central/cross_entropy_op.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::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: `super::backward_for_matmul`
[INFO] [stdout]  --> src/central/equation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::backward_for_matmul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cross_entropy_op`
[INFO] [stdout]  --> src/central/equation.rs:5:50
[INFO] [stdout]   |
[INFO] [stdout] 5 |     InternalTensor, Operation, TensorID, add_op, cross_entropy_op, log, matmul_op, mean_op, mul_op,
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/central/index.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Index, IndexMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::padding_dimenions_to_four`
[INFO] [stdout]  --> src/central/mean_op.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{central::*, utils::padding_dimenions_to_four};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/central/mean_op.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `equation`
[INFO] [stdout]  --> src/central/select_op.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::central::{Shape, Tensor, TensorID, equation, get_equation};
[INFO] [stdout]   |                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/central/std_op.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> src/central/masked_fill.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `add_op::*`
[INFO] [stdout]   --> src/central/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use add_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cross_entropy_op::*`
[INFO] [stdout]   --> src/central/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use cross_entropy_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `index::*`
[INFO] [stdout]   --> src/central/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use index::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::*`
[INFO] [stdout]   --> src/central/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use log::*;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mean_op::*`
[INFO] [stdout]   --> src/central/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use mean_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mul_op::*`
[INFO] [stdout]   --> src/central/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use mul_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pow_op::*`
[INFO] [stdout]   --> src/central/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use pow_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `relu_op::*`
[INFO] [stdout]   --> src/central/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use relu_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reshape::*`
[INFO] [stdout]   --> src/central/mod.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub use reshape::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select_op::*`
[INFO] [stdout]   --> src/central/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use select_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `softmax_op::*`
[INFO] [stdout]   --> src/central/mod.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use softmax_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std_op::*`
[INFO] [stdout]   --> src/central/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub use std_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sum_op::*`
[INFO] [stdout]   --> src/central/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub use sum_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tanh_op::*`
[INFO] [stdout]   --> src/central/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub use tanh_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transpose_op::*`
[INFO] [stdout]   --> src/central/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub use transpose_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Axis`
[INFO] [stdout]  --> src/nn/multihead_attention.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::Axis;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nn::*`
[INFO] [stdout]  --> src/nn/scaled_dot_project_attention.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::nn::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::GGUFFile`
[INFO] [stdout]  --> src/nn/embedding.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::GGUFFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Gpt2Tokenizer` and `Tokenizer`
[INFO] [stdout]  --> src/nn/gpt2.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rust_tokenizers::tokenizer::{Gpt2Tokenizer, Tokenizer};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `relu::*`
[INFO] [stdout]   --> src/nn/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use relu::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tanh::*`
[INFO] [stdout]   --> src/nn/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use tanh::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bpe_tokenizer::*`
[INFO] [stdout]   --> src/nn/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use bpe_tokenizer::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/utils/gguf.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::central::*`
[INFO] [stdout]  --> src/lib.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::central::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod tests {
[INFO] [stdout]   | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::central::Shape`
[INFO] [stdout]    --> src/lib.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     use crate::central::Shape;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]    --> src/lib.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | mod tests {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::central::Tensor`
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     use crate::central::Tensor;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]    --> src/lib.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | mod tests {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::GGUFFile`
[INFO] [stdout]    --> src/lib.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use crate::utils::GGUFFile;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]    --> src/lib.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | mod tests {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut count = 0;
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/nn/gpt2.rs:141:14
[INFO] [stdout]     |
[INFO] [stdout] 141 |         for (i, block) in self.blocks.iter_mut().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/nn/linear.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut weights = Tensor::from_gguf_file(weight_tensor_name, gguf_file);
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut count = 0;
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/central/masked_fill.rs:35:47
[INFO] [stdout]    |
[INFO] [stdout] 35 |     if let Operation::MaskFill(source, mask , value) = packet.operation {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zero_all_grads` is never used
[INFO] [stdout]   --> src/central/mod.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn zero_all_grads() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_parameters` is never used
[INFO] [stdout]   --> src/central/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn update_parameters(learning_rate: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `causal_mask` is never used
[INFO] [stdout]  --> src/nn/gpt_block.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn causal_mask(seq_len: usize) -> Tensor {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPT2Block` is never constructed
[INFO] [stdout]   --> src/nn/gpt_block.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct GPT2Block {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/gpt_block.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl GPT2Block {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 29 |     pub fn new(config: GPT2Config) -> GPT2Block {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile, block_count: i64, gpt_config: &GPT2Config) -> GPT2Block{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `forward` and `get_parameters` are never used
[INFO] [stdout]  --> src/nn/layer.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Layer {
[INFO] [stdout]   |           ----- methods in this trait
[INFO] [stdout] 4 |     fn forward(&mut self, inputs: Tensor) -> Tensor;
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 5 |     fn get_parameters(&self) -> Vec<TensorID>;
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Linear` is never constructed
[INFO] [stdout]  --> src/nn/linear.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Linear {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_tensors`, and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/linear.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Linear {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] 11 |     pub fn new(in_features: usize, out_features: usize, has_bias: bool) -> Linear {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn from_tensors(mut weights: Tensor, mut bias: Option<Tensor>) -> Linear {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn from_gguf_file(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/central/tensor.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct InternalTensor {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub id: TensorID, // the unique id for this tensor, it is used by the equation to look up the data
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation` is never read
[INFO] [stdout]    --> src/central/tensor.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Tensor {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 109 |     operation: Operation, // The operation that created this Tensor(Nop for basic allocations)
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tensor` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LayerNorm` is never constructed
[INFO] [stdout]  --> src/nn/layer_norm.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct LayerNorm {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPT2Config` is never constructed
[INFO] [stdout]   --> src/nn/gpt2.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `gpt2_small` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/gpt2.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GPT2Config {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 21 |     pub fn gpt2_small() -> GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_gguf_file(gguf_file: &mut  GGUFFile) -> GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sinusoidal_position_encoding` is never used
[INFO] [stdout]   --> src/nn/gpt2.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn sinusoidal_position_encoding(seq_len: usize, d_model: usize) -> Tensor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPT2` is never constructed
[INFO] [stdout]   --> src/nn/gpt2.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct GPT2 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/gpt2.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl GPT2 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 75 |     pub fn new(config: GPT2Config) -> GPT2 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile) -> GPT2{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BPETokenizer` is never constructed
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BPETokenizer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl BPETokenizer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn new(input: String) -> HashMap<Vec<u8>, u8> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/utils/gguf.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct TensorMetaData {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 180 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TensorMetaData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `approx_equal` is never used
[INFO] [stdout]  --> src/lib.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn approx_equal(a: f32, b: f32, epsilon: f32) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_batch_norm_dataset_from_subset` is never used
[INFO] [stdout]    --> src/lib.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn build_batch_norm_dataset_from_subset(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_dataset_from_subset` is never used
[INFO] [stdout]    --> src/lib.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn build_dataset_from_subset(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_lines` is never used
[INFO] [stdout]    --> src/lib.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn read_lines(filename: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReLU` is never constructed
[INFO] [stdout]  --> src/nn/relu.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ReLU {}
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/nn/relu.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl ReLU {
[INFO] [stdout]   | --------- associated function in this implementation
[INFO] [stdout] 7 |     pub fn new() -> ReLU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layers` is never read
[INFO] [stdout]  --> src/nn/sequential.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Sequential {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 5 |     pub layers: Vec<Box<dyn Layer>>,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/layer_norm.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl LayerNorm {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 11 |     pub fn new(num_features: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile, weight_name: String, bias_name: String) -> LayerNorm {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiHeadAttention` is never constructed
[INFO] [stdout]  --> src/nn/multihead_attention.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MultiHeadAttention {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_gguf_file`, and `set_mask` are never used
[INFO] [stdout]    --> src/nn/multihead_attention.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl MultiHeadAttention {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(embed_dim: usize, number_of_heads: usize, mask: Option<Tensor>) -> MultiHeadAttention {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile, block_count: i64, config: &GPT2Config) -> MultiHeadAttention {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn set_mask(&mut self, mask: Tensor) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScaledDotProductAttention` is never constructed
[INFO] [stdout]  --> src/nn/scaled_dot_project_attention.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ScaledDotProductAttention {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `forward` are never used
[INFO] [stdout]   --> src/nn/scaled_dot_project_attention.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ScaledDotProductAttention {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(scale: f32) -> ScaledDotProductAttention {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn forward(&self, query: Tensor, key: Tensor, value: Tensor, mask: Option<Tensor>) -> Tensor {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Embedding` is never constructed
[INFO] [stdout]  --> src/nn/embedding.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Embedding {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_tensor` are never used
[INFO] [stdout]   --> src/nn/embedding.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Embedding {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 10 |     pub fn new(vocab_size: usize, embeding_dimensions: usize) -> Embedding {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn from_tensor(mut weights: Tensor) -> Embedding {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GELU` is never constructed
[INFO] [stdout]  --> src/nn/gelu.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct GELU;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/nn/gelu.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl GELU {
[INFO] [stdout]   | --------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> Self { Self }
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TanhLayer` is never constructed
[INFO] [stdout]  --> src/nn/tanh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TanhLayer {}
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/nn/tanh.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl TanhLayer {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 7 |     pub fn new() -> TanhLayer {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Model` is never used
[INFO] [stdout]  --> src/nn/model.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Model {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_vector`, `zero_grad`, `update_parameters`, `compact_tensor_store`, and `garbage_collect` are never used
[INFO] [stdout]    --> src/central/equation.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Equation {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn add_vector(&self, a: &[f32], b: &[f32]) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 599 |     pub fn zero_grad(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 609 |     pub fn update_parameters(&mut self, learning_rate: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn compact_tensor_store(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 679 |     pub fn garbage_collect(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GgmlType` is more private than the item `TensorMetaData::new`
[INFO] [stdout]    --> src/utils/gguf.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn new(name: String, dimensions: Vec<usize>, offset: u64, data_type: GgmlType) -> TensorMetaData {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `TensorMetaData::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `GgmlType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/utils/gguf.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | enum GgmlType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     f.read_exact(&mut string_size);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let _ = f.read_exact(&mut string_size);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 127 |     f.read_exact(&mut string_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let _ = f.read_exact(&mut string_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         f.seek_relative(padding as i64);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _ = f.seek_relative(padding as i64);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 58s
[INFO] running `Command { std: "docker" "inspect" "ba8fcc43e7d73cd730647742728e092cf44bfc281433924ae9d12a590665858b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba8fcc43e7d73cd730647742728e092cf44bfc281433924ae9d12a590665858b", kill_on_drop: false }`
[INFO] [stdout] ba8fcc43e7d73cd730647742728e092cf44bfc281433924ae9d12a590665858b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 27befc1269eb8809dedf0d71d1e4f326bf494b2891fd75a5ad9e0b52f27bfcf7
[INFO] running `Command { std: "docker" "start" "-a" "27befc1269eb8809dedf0d71d1e4f326bf494b2891fd75a5ad9e0b52f27bfcf7", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> src/central/cross_entropy_op.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::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: `super::backward_for_matmul`
[INFO] [stdout]  --> src/central/equation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::backward_for_matmul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cross_entropy_op`
[INFO] [stdout]  --> src/central/equation.rs:5:50
[INFO] [stdout]   |
[INFO] [stdout] 5 |     InternalTensor, Operation, TensorID, add_op, cross_entropy_op, log, matmul_op, mean_op, mul_op,
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/central/index.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Index, IndexMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::padding_dimenions_to_four`
[INFO] [stdout]  --> src/central/mean_op.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{central::*, utils::padding_dimenions_to_four};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/central/mean_op.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `equation`
[INFO] [stdout]  --> src/central/select_op.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::central::{Shape, Tensor, TensorID, equation, get_equation};
[INFO] [stdout]   |                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/central/std_op.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> src/central/masked_fill.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `add_op::*`
[INFO] [stdout]   --> src/central/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use add_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cross_entropy_op::*`
[INFO] [stdout]   --> src/central/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use cross_entropy_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `index::*`
[INFO] [stdout]   --> src/central/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use index::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::*`
[INFO] [stdout]   --> src/central/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use log::*;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mean_op::*`
[INFO] [stdout]   --> src/central/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use mean_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mul_op::*`
[INFO] [stdout]   --> src/central/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use mul_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pow_op::*`
[INFO] [stdout]   --> src/central/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use pow_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `relu_op::*`
[INFO] [stdout]   --> src/central/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use relu_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reshape::*`
[INFO] [stdout]   --> src/central/mod.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub use reshape::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select_op::*`
[INFO] [stdout]   --> src/central/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use select_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `softmax_op::*`
[INFO] [stdout]   --> src/central/mod.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use softmax_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std_op::*`
[INFO] [stdout]   --> src/central/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub use std_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sum_op::*`
[INFO] [stdout]   --> src/central/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub use sum_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tanh_op::*`
[INFO] [stdout]   --> src/central/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub use tanh_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transpose_op::*`
[INFO] [stdout]   --> src/central/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub use transpose_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Axis`
[INFO] [stdout]  --> src/nn/multihead_attention.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::Axis;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nn::*`
[INFO] [stdout]  --> src/nn/scaled_dot_project_attention.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::nn::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::GGUFFile`
[INFO] [stdout]  --> src/nn/embedding.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::GGUFFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Gpt2Tokenizer` and `Tokenizer`
[INFO] [stdout]  --> src/nn/gpt2.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rust_tokenizers::tokenizer::{Gpt2Tokenizer, Tokenizer};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `relu::*`
[INFO] [stdout]   --> src/nn/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use relu::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tanh::*`
[INFO] [stdout]   --> src/nn/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use tanh::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bpe_tokenizer::*`
[INFO] [stdout]   --> src/nn/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use bpe_tokenizer::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/utils/gguf.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::central::*`
[INFO] [stdout]  --> src/lib.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::central::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod tests {
[INFO] [stdout]   | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::central::Shape`
[INFO] [stdout]    --> src/lib.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     use crate::central::Shape;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]    --> src/lib.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | mod tests {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::central::Tensor`
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     use crate::central::Tensor;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]    --> src/lib.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | mod tests {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::GGUFFile`
[INFO] [stdout]    --> src/lib.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use crate::utils::GGUFFile;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]    --> src/lib.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | mod tests {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut count = 0;
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/nn/gpt2.rs:141:14
[INFO] [stdout]     |
[INFO] [stdout] 141 |         for (i, block) in self.blocks.iter_mut().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/nn/linear.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut weights = Tensor::from_gguf_file(weight_tensor_name, gguf_file);
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut count = 0;
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/central/masked_fill.rs:35:47
[INFO] [stdout]    |
[INFO] [stdout] 35 |     if let Operation::MaskFill(source, mask , value) = packet.operation {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zero_all_grads` is never used
[INFO] [stdout]   --> src/central/mod.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn zero_all_grads() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_parameters` is never used
[INFO] [stdout]   --> src/central/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn update_parameters(learning_rate: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `causal_mask` is never used
[INFO] [stdout]  --> src/nn/gpt_block.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn causal_mask(seq_len: usize) -> Tensor {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPT2Block` is never constructed
[INFO] [stdout]   --> src/nn/gpt_block.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct GPT2Block {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/gpt_block.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl GPT2Block {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 29 |     pub fn new(config: GPT2Config) -> GPT2Block {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile, block_count: i64, gpt_config: &GPT2Config) -> GPT2Block{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `forward` and `get_parameters` are never used
[INFO] [stdout]  --> src/nn/layer.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Layer {
[INFO] [stdout]   |           ----- methods in this trait
[INFO] [stdout] 4 |     fn forward(&mut self, inputs: Tensor) -> Tensor;
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 5 |     fn get_parameters(&self) -> Vec<TensorID>;
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Linear` is never constructed
[INFO] [stdout]  --> src/nn/linear.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Linear {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_tensors`, and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/linear.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Linear {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] 11 |     pub fn new(in_features: usize, out_features: usize, has_bias: bool) -> Linear {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn from_tensors(mut weights: Tensor, mut bias: Option<Tensor>) -> Linear {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn from_gguf_file(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/central/tensor.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct InternalTensor {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub id: TensorID, // the unique id for this tensor, it is used by the equation to look up the data
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation` is never read
[INFO] [stdout]    --> src/central/tensor.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Tensor {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 109 |     operation: Operation, // The operation that created this Tensor(Nop for basic allocations)
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tensor` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LayerNorm` is never constructed
[INFO] [stdout]  --> src/nn/layer_norm.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct LayerNorm {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPT2Config` is never constructed
[INFO] [stdout]   --> src/nn/gpt2.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `gpt2_small` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/gpt2.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GPT2Config {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 21 |     pub fn gpt2_small() -> GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_gguf_file(gguf_file: &mut  GGUFFile) -> GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sinusoidal_position_encoding` is never used
[INFO] [stdout]   --> src/nn/gpt2.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn sinusoidal_position_encoding(seq_len: usize, d_model: usize) -> Tensor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPT2` is never constructed
[INFO] [stdout]   --> src/nn/gpt2.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct GPT2 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/gpt2.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl GPT2 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 75 |     pub fn new(config: GPT2Config) -> GPT2 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile) -> GPT2{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BPETokenizer` is never constructed
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BPETokenizer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl BPETokenizer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn new(input: String) -> HashMap<Vec<u8>, u8> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/utils/gguf.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct TensorMetaData {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 180 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TensorMetaData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `approx_equal` is never used
[INFO] [stdout]  --> src/lib.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn approx_equal(a: f32, b: f32, epsilon: f32) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_batch_norm_dataset_from_subset` is never used
[INFO] [stdout]    --> src/lib.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn build_batch_norm_dataset_from_subset(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_dataset_from_subset` is never used
[INFO] [stdout]    --> src/lib.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn build_dataset_from_subset(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_lines` is never used
[INFO] [stdout]    --> src/lib.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn read_lines(filename: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReLU` is never constructed
[INFO] [stdout]  --> src/nn/relu.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ReLU {}
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/nn/relu.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl ReLU {
[INFO] [stdout]   | --------- associated function in this implementation
[INFO] [stdout] 7 |     pub fn new() -> ReLU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layers` is never read
[INFO] [stdout]  --> src/nn/sequential.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Sequential {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 5 |     pub layers: Vec<Box<dyn Layer>>,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_gguf_file` are never used
[INFO] [stdout]   --> src/nn/layer_norm.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl LayerNorm {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 11 |     pub fn new(num_features: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile, weight_name: String, bias_name: String) -> LayerNorm {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiHeadAttention` is never constructed
[INFO] [stdout]  --> src/nn/multihead_attention.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MultiHeadAttention {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_gguf_file`, and `set_mask` are never used
[INFO] [stdout]    --> src/nn/multihead_attention.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl MultiHeadAttention {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(embed_dim: usize, number_of_heads: usize, mask: Option<Tensor>) -> MultiHeadAttention {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn from_gguf_file(gguf_file: &mut GGUFFile, block_count: i64, config: &GPT2Config) -> MultiHeadAttention {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn set_mask(&mut self, mask: Tensor) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScaledDotProductAttention` is never constructed
[INFO] [stdout]  --> src/nn/scaled_dot_project_attention.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ScaledDotProductAttention {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `forward` are never used
[INFO] [stdout]   --> src/nn/scaled_dot_project_attention.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ScaledDotProductAttention {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(scale: f32) -> ScaledDotProductAttention {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn forward(&self, query: Tensor, key: Tensor, value: Tensor, mask: Option<Tensor>) -> Tensor {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Embedding` is never constructed
[INFO] [stdout]  --> src/nn/embedding.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Embedding {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_tensor` are never used
[INFO] [stdout]   --> src/nn/embedding.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Embedding {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 10 |     pub fn new(vocab_size: usize, embeding_dimensions: usize) -> Embedding {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn from_tensor(mut weights: Tensor) -> Embedding {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GELU` is never constructed
[INFO] [stdout]  --> src/nn/gelu.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct GELU;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/nn/gelu.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl GELU {
[INFO] [stdout]   | --------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> Self { Self }
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TanhLayer` is never constructed
[INFO] [stdout]  --> src/nn/tanh.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TanhLayer {}
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/nn/tanh.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl TanhLayer {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 7 |     pub fn new() -> TanhLayer {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Model` is never used
[INFO] [stdout]  --> src/nn/model.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Model {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_vector`, `zero_grad`, `update_parameters`, `compact_tensor_store`, and `garbage_collect` are never used
[INFO] [stdout]    --> src/central/equation.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Equation {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn add_vector(&self, a: &[f32], b: &[f32]) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 599 |     pub fn zero_grad(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 609 |     pub fn update_parameters(&mut self, learning_rate: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub fn compact_tensor_store(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 679 |     pub fn garbage_collect(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GgmlType` is more private than the item `TensorMetaData::new`
[INFO] [stdout]    --> src/utils/gguf.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn new(name: String, dimensions: Vec<usize>, offset: u64, data_type: GgmlType) -> TensorMetaData {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `TensorMetaData::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `GgmlType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/utils/gguf.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | enum GgmlType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     f.read_exact(&mut string_size);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let _ = f.read_exact(&mut string_size);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cant v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 127 |     f.read_exact(&mut string_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let _ = f.read_exact(&mut string_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         f.seek_relative(padding as i64);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _ = f.seek_relative(padding as i64);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> src/central/cross_entropy_op.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::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: `super::backward_for_matmul`
[INFO] [stdout]  --> src/central/equation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::backward_for_matmul;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cross_entropy_op`
[INFO] [stdout]  --> src/central/equation.rs:5:50
[INFO] [stdout]   |
[INFO] [stdout] 5 |     InternalTensor, Operation, TensorID, add_op, cross_entropy_op, log, matmul_op, mean_op, mul_op,
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/central/index.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Index, IndexMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::padding_dimenions_to_four`
[INFO] [stdout]  --> src/central/mean_op.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{central::*, utils::padding_dimenions_to_four};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/central/mean_op.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `equation`
[INFO] [stdout]  --> src/central/select_op.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::central::{Shape, Tensor, TensorID, equation, get_equation};
[INFO] [stdout]   |                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/central/std_op.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_equation`
[INFO] [stdout]    --> src/central/std_op.rs:175:52
[INFO] [stdout]     |
[INFO] [stdout] 175 |     use crate::central::{Operation, Shape, Tensor, get_equation};
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> src/central/masked_fill.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `add_op::*`
[INFO] [stdout]   --> src/central/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use add_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cross_entropy_op::*`
[INFO] [stdout]   --> src/central/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use cross_entropy_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `index::*`
[INFO] [stdout]   --> src/central/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use index::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::*`
[INFO] [stdout]   --> src/central/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use log::*;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mean_op::*`
[INFO] [stdout]   --> src/central/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use mean_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mul_op::*`
[INFO] [stdout]   --> src/central/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use mul_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pow_op::*`
[INFO] [stdout]   --> src/central/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use pow_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `relu_op::*`
[INFO] [stdout]   --> src/central/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use relu_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reshape::*`
[INFO] [stdout]   --> src/central/mod.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub use reshape::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select_op::*`
[INFO] [stdout]   --> src/central/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use select_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `softmax_op::*`
[INFO] [stdout]   --> src/central/mod.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use softmax_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std_op::*`
[INFO] [stdout]   --> src/central/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub use std_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sum_op::*`
[INFO] [stdout]   --> src/central/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub use sum_op::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tanh_op::*`
[INFO] [stdout]   --> src/central/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub use tanh_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transpose_op::*`
[INFO] [stdout]   --> src/central/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub use transpose_op::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/nn/layer_norm.rs:985:68
[INFO] [stdout]     |
[INFO] [stdout] 985 |             let input_data: Vec<f32> = (0..batch_size * 3).map(|i| (i as f32 + 1.0)).collect();
[INFO] [stdout]     |                                                                    ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 985 -             let input_data: Vec<f32> = (0..batch_size * 3).map(|i| (i as f32 + 1.0)).collect();
[INFO] [stdout] 985 +             let input_data: Vec<f32> = (0..batch_size * 3).map(|i| i as f32 + 1.0).collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Axis`
[INFO] [stdout]  --> src/nn/multihead_attention.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::Axis;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::GGUFFile`
[INFO] [stdout]  --> src/nn/embedding.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::GGUFFile;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Gpt2Tokenizer` and `Tokenizer`
[INFO] [stdout]  --> src/nn/gpt2.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rust_tokenizers::tokenizer::{Gpt2Tokenizer, Tokenizer};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GPT2Config`
[INFO] [stdout]    --> src/nn/gpt2.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |     use crate::nn::{GPT2Config, Model, GPT2};
[INFO] [stdout]     |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Axis`
[INFO] [stdout]    --> src/nn/gpt2.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |     use ndarray::Axis;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncodeInput`
[INFO] [stdout]    --> src/nn/gpt2.rs:225:52
[INFO] [stdout]     |
[INFO] [stdout] 225 |     use tokenizers::tokenizer::{Result, Tokenizer, EncodeInput};
[INFO] [stdout]     |                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nn::BPETokenizer`
[INFO] [stdout]    --> src/nn/bpe_tokenizer.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     use crate::nn::BPETokenizer;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/utils/gguf.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/nn/layer_norm.rs:842:9
[INFO] [stdout]     |
[INFO] [stdout] 841 |           return;
[INFO] [stdout]     |           ------ any code following this expression is unreachable
[INFO] [stdout] 842 | /         for i in 0..3 {
[INFO] [stdout] 843 | |             // Bias gradient should be non-zero and finite
[INFO] [stdout] 844 | |             assert!(bias_grad[[i]].is_finite());
[INFO] [stdout] 845 | |             assert!(bias_grad[[i]].abs() > 1e-8, "Bias gradient should be non-zero");
[INFO] [stdout] ...   |
[INFO] [stdout] 849 | |             assert!(weight_grad[[i]].abs() > 1e-8, "Weight gradient should be non-zero");
[INFO] [stdout] 850 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nn`
[INFO] [stdout]  --> src/nn/scaled_dot_project_attention.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::nn::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_input`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1470:13
[INFO] [stdout]      |
[INFO] [stdout] 1470 |         let pytorch_input = Tensor::from_gguf_file(String::from("layer_norm_forward_multiple_calls_input"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_input`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_weight`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1473:13
[INFO] [stdout]      |
[INFO] [stdout] 1473 |         let pytorch_weight = Tensor::from_gguf_file(String::from("layer_norm_forward_multiple_calls_weight"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_weight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_bias`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1474:13
[INFO] [stdout]      |
[INFO] [stdout] 1474 |         let pytorch_bias = Tensor::from_gguf_file(String::from("layer_norm_forward_multiple_calls_bias"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_bias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/nn/linear.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut weights = Tensor::from_gguf_file(weight_tensor_name, gguf_file);
[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: `pytorch_input`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1583:13
[INFO] [stdout]      |
[INFO] [stdout] 1583 |         let pytorch_input = Tensor::from_gguf_file(String::from("layer_norm_backward_parameter_gradients_input"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_weight`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1586:13
[INFO] [stdout]      |
[INFO] [stdout] 1586 |         let pytorch_weight = Tensor::from_gguf_file(String::from("layer_norm_backward_parameter_gradients_weight"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_weight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_bias`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1587:13
[INFO] [stdout]      |
[INFO] [stdout] 1587 |         let pytorch_bias = Tensor::from_gguf_file(String::from("layer_norm_backward_parameter_gradients_bias"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_bias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_input_grad`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1588:13
[INFO] [stdout]      |
[INFO] [stdout] 1588 |         let pytorch_input_grad = Tensor::from_gguf_file(String::from("layer_norm_backward_parameter_gradients_input_grad"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_input_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/central/masked_fill.rs:35:47
[INFO] [stdout]    |
[INFO] [stdout] 35 |     if let Operation::MaskFill(source, mask , value) = packet.operation {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_zero_grads`
[INFO] [stdout]    --> src/nn/linear.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let has_zero_grads = layer1_weight_grad.iter().any(|&g| g == 0.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_zero_grads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indices`
[INFO] [stdout]    --> src/central/masked_fill.rs:291:21
[INFO] [stdout]     |
[INFO] [stdout] 291 |                 let indices: Vec<usize> = (0..shape.len())
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grad_diff`
[INFO] [stdout]    --> src/nn/layer_norm.rs:801:13
[INFO] [stdout]     |
[INFO] [stdout] 801 |         let grad_diff = (input1_grad[[0, 0]] - input2_grad[[0, 0]]).abs();
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 801 |         let _grad_diff = (input1_grad[[0, 0]] - input2_grad[[0, 0]]).abs();
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPS`
[INFO] [stdout]     |
[INFO] [stdout] 801 -         let grad_diff = (input1_grad[[0, 0]] - input2_grad[[0, 0]]).abs();
[INFO] [stdout] 801 +         let central::pow_op::backward_for_pow::EPS = (input1_grad[[0, 0]] - input2_grad[[0, 0]]).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/nn/gpt2.rs:141:14
[INFO] [stdout]     |
[INFO] [stdout] 141 |         for (i, block) in self.blocks.iter_mut().enumerate() {
[INFO] [stdout]     |              ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 141 |         for (_i, block) in self.blocks.iter_mut().enumerate() {
[INFO] [stdout]     |              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_SIZE`
[INFO] [stdout]     |
[INFO] [stdout] 141 -         for (i, block) in self.blocks.iter_mut().enumerate() {
[INFO] [stdout] 141 +         for (tests::batch_norm_simple_test::BATCH_SIZE, block) in self.blocks.iter_mut().enumerate() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bnvar_inv`
[INFO] [stdout]    --> src/lib.rs:274:21
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 let bnvar_inv = (bnvari + 1e-5).pow(-0.5);
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bnvar_inv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight_grad`
[INFO] [stdout]    --> src/nn/layer_norm.rs:836:13
[INFO] [stdout]     |
[INFO] [stdout] 836 |         let weight_grad = layer_norm.weight.grad();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bias_grad`
[INFO] [stdout]    --> src/nn/layer_norm.rs:837:13
[INFO] [stdout]     |
[INFO] [stdout] 837 |         let bias_grad = layer_norm.bias.grad();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bias_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_text`
[INFO] [stdout]    --> src/nn/gpt2.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let test_text = "A";
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grad`
[INFO] [stdout]    --> src/nn/layer_norm.rs:952:14
[INFO] [stdout]     |
[INFO] [stdout] 952 |         for &grad in input_grad.iter() {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 952 |         for &_grad in input_grad.iter() {
[INFO] [stdout]     |              +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPS`
[INFO] [stdout]     |
[INFO] [stdout] 952 -         for &grad in input_grad.iter() {
[INFO] [stdout] 952 +         for &central::pow_op::backward_for_pow::EPS in input_grad.iter() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weight_grad`
[INFO] [stdout]    --> src/nn/layer_norm.rs:958:13
[INFO] [stdout]     |
[INFO] [stdout] 958 |         let weight_grad = layer_norm.weight.grad();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weight_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bias_grad`
[INFO] [stdout]    --> src/nn/layer_norm.rs:959:13
[INFO] [stdout]     |
[INFO] [stdout] 959 |         let bias_grad = layer_norm.bias.grad();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bias_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/nn/layer_norm.rs:961:13
[INFO] [stdout]     |
[INFO] [stdout] 961 |         for i in 0..3 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `epoch`
[INFO] [stdout]    --> src/lib.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         for epoch in 0..100 {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_epoch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/nn/gpt2.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut tokenizer = Tokenizer::new(bpe);
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut count = 0;
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:423:13
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut y_true = Tensor::zeros(Shape::new(vec![batch_size, num_classes]));
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gguf_file`
[INFO] [stdout]    --> src/lib.rs:528:17
[INFO] [stdout]     |
[INFO] [stdout] 528 |         let mut gguf_file = GGUFFile::new(String::from("./models/tests/gpt2/Gpt2-124M-F16.gguf"));
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gguf_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:528:13
[INFO] [stdout]     |
[INFO] [stdout] 528 |         let mut gguf_file = GGUFFile::new(String::from("./models/tests/gpt2/Gpt2-124M-F16.gguf"));
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut count = 0;
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_size`
[INFO] [stdout]    --> src/nn/sequential.rs:518:13
[INFO] [stdout]     |
[INFO] [stdout] 518 |         let batch_size = 128;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `image_size`
[INFO] [stdout]    --> src/nn/sequential.rs:519:13
[INFO] [stdout]     |
[INFO] [stdout] 519 |         let image_size = 64;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_image_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number_of_channels`
[INFO] [stdout]    --> src/nn/sequential.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let number_of_channels = 3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_of_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size_of_latent_z_vector`
[INFO] [stdout]    --> src/nn/sequential.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 521 |         let size_of_latent_z_vector = 100;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_size_of_latent_z_vector`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number_of_feature_maps_generator`
[INFO] [stdout]    --> src/nn/sequential.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 522 |         let number_of_feature_maps_generator = 64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_of_feature_maps_generator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number_of_feature_maps_discriminator`
[INFO] [stdout]    --> src/nn/sequential.rs:523:13
[INFO] [stdout]     |
[INFO] [stdout] 523 |         let number_of_feature_maps_discriminator = 64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_of_feature_maps_discriminator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number_of_training_epochs`
[INFO] [stdout]    --> src/nn/sequential.rs:524:13
[INFO] [stdout]     |
[INFO] [stdout] 524 |         let number_of_training_epochs = 5;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_of_training_epochs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `learning_rate`
[INFO] [stdout]    --> src/nn/sequential.rs:525:13
[INFO] [stdout]     |
[INFO] [stdout] 525 |         let learning_rate = 0.0020;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_learning_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beta_1`
[INFO] [stdout]    --> src/nn/sequential.rs:526:13
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let beta_1 = 0.5;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_beta_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_input`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1392:13
[INFO] [stdout]      |
[INFO] [stdout] 1392 |         let pytorch_input = Tensor::from_gguf_file(String::from("layer_norm_forward_different_feature_sizes_input"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_weight`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1394:13
[INFO] [stdout]      |
[INFO] [stdout] 1394 |         let pytorch_weight = Tensor::from_gguf_file(String::from("layer_norm_forward_different_feature_sizes_weight"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_weight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pytorch_bias`
[INFO] [stdout]     --> src/nn/layer_norm.rs:1395:13
[INFO] [stdout]      |
[INFO] [stdout] 1395 |         let pytorch_bias = Tensor::from_gguf_file(String::from("layer_norm_forward_different_feature_sizes_bias"), &mut gguf_file);
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pytorch_bias`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axis`
[INFO] [stdout]    --> src/central/softmax_op.rs:115:51
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn assert_softmax_properties(tensor: &Tensor, axis: usize) {
[INFO] [stdout]     |                                                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn assert_softmax_properties(tensor: &Tensor, _axis: usize) {
[INFO] [stdout]     |                                                   +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_SIZE`
[INFO] [stdout]     |
[INFO] [stdout] 115 -     fn assert_softmax_properties(tensor: &Tensor, axis: usize) {
[INFO] [stdout] 115 +     fn assert_softmax_properties(tensor: &Tensor, tests::batch_norm_simple_test::BATCH_SIZE: usize) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GgmlType` is more private than the item `TensorMetaData::new`
[INFO] [stdout]    --> src/utils/gguf.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn new(name: String, dimensions: Vec<usize>, offset: u64, data_type: GgmlType) -> TensorMetaData {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `TensorMetaData::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `GgmlType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/utils/gguf.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | enum GgmlType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/utils/gguf.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let _ = f.read_exact(&mut u8_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     f.read_exact(&mut string_size);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let _ = f.read_exact(&mut string_size);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 127 |     f.read_exact(&mut string_buffer);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let _ = f.read_exact(&mut string_buffer);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/utils/gguf.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         f.seek_relative(padding as i64);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _ = f.seek_relative(padding as i64);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `approx_equal` is never used
[INFO] [stdout]    --> src/nn/scaled_dot_project_attention.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 109 |         fn approx_equal(a: f32, b: f32, epsilon: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_gguf_file` is never used
[INFO] [stdout]   --> src/nn/gpt2.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GPT2Config {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_gguf_file(gguf_file: &mut  GGUFFile) -> GPT2Config {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sinusoidal_position_encoding` is never used
[INFO] [stdout]   --> src/nn/gpt2.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn sinusoidal_position_encoding(seq_len: usize, d_model: usize) -> Tensor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/nn/gpt2.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct GPT2 {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 66 |     config: GPT2Config,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/nn/gpt2.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl GPT2 {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 75 |     pub fn new(config: GPT2Config) -> GPT2 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BPETokenizer` is never constructed
[INFO] [stdout]  --> src/nn/bpe_tokenizer.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BPETokenizer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/nn/bpe_tokenizer.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl BPETokenizer {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn new(input: String) -> HashMap<Vec<u8>, u8> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/utils/gguf.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct TensorMetaData {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 180 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TensorMetaData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_dataset_from_subset` is never used
[INFO] [stdout]    --> src/lib.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn build_dataset_from_subset(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_vector` is never used
[INFO] [stdout]    --> src/central/equation.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Equation {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn add_vector(&self, a: &[f32], b: &[f32]) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first` is never used
[INFO] [stdout]    --> src/central/transpose_op.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn first() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show` is never used
[INFO] [stdout]    --> src/central/transpose_op.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn show(list:&mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation` is never read
[INFO] [stdout]    --> src/central/tensor.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Tensor {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 109 |     operation: Operation, // The operation that created this Tensor(Nop for basic allocations)
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tensor` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 7.40s
[INFO] running `Command { std: "docker" "inspect" "27befc1269eb8809dedf0d71d1e4f326bf494b2891fd75a5ad9e0b52f27bfcf7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27befc1269eb8809dedf0d71d1e4f326bf494b2891fd75a5ad9e0b52f27bfcf7", kill_on_drop: false }`
[INFO] [stdout] 27befc1269eb8809dedf0d71d1e4f326bf494b2891fd75a5ad9e0b52f27bfcf7
