[INFO] cloning repository https://github.com/enricozanardo/wall-e
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/enricozanardo/wall-e" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fenricozanardo%2Fwall-e", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fenricozanardo%2Fwall-e'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 630da121b1d60a7c51b25053ee0d7523a80a9b0b
[INFO] testing enricozanardo/wall-e against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fenricozanardo%2Fwall-e" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  14% (26/180)
Updating files:  15% (27/180)
Updating files:  16% (29/180)
Updating files:  17% (31/180)
Updating files:  18% (33/180)
Updating files:  19% (35/180)
Updating files:  20% (36/180)
Updating files:  21% (38/180)
Updating files:  22% (40/180)
Updating files:  23% (42/180)
Updating files:  24% (44/180)
Updating files:  25% (45/180)
Updating files:  26% (47/180)
Updating files:  27% (49/180)
Updating files:  28% (51/180)
Updating files:  29% (53/180)
Updating files:  30% (54/180)
Updating files:  31% (56/180)
Updating files:  32% (58/180)
Updating files:  33% (60/180)
Updating files:  34% (62/180)
Updating files:  35% (63/180)
Updating files:  36% (65/180)
Updating files:  37% (67/180)
Updating files:  38% (69/180)
Updating files:  39% (71/180)
Updating files:  40% (72/180)
Updating files:  41% (74/180)
Updating files:  42% (76/180)
Updating files:  43% (78/180)
Updating files:  44% (80/180)
Updating files:  45% (81/180)
Updating files:  46% (83/180)
Updating files:  47% (85/180)
Updating files:  48% (87/180)
Updating files:  49% (89/180)
Updating files:  50% (90/180)
Updating files:  51% (92/180)
Updating files:  52% (94/180)
Updating files:  53% (96/180)
Updating files:  54% (98/180)
Updating files:  55% (99/180)
Updating files:  56% (101/180)
Updating files:  57% (103/180)
Updating files:  58% (105/180)
Updating files:  59% (107/180)
Updating files:  60% (108/180)
Updating files:  61% (110/180)
Updating files:  62% (112/180)
Updating files:  63% (114/180)
Updating files:  64% (116/180)
Updating files:  65% (117/180)
Updating files:  66% (119/180)
Updating files:  67% (121/180)
Updating files:  68% (123/180)
Updating files:  69% (125/180)
Updating files:  70% (126/180)
Updating files:  71% (128/180)
Updating files:  72% (130/180)
Updating files:  73% (132/180)
Updating files:  74% (134/180)
Updating files:  75% (135/180)
Updating files:  76% (137/180)
Updating files:  77% (139/180)
Updating files:  78% (141/180)
Updating files:  79% (143/180)
Updating files:  80% (144/180)
Updating files:  81% (146/180)
Updating files:  82% (148/180)
Updating files:  83% (150/180)
Updating files:  84% (152/180)
Updating files:  85% (153/180)
Updating files:  86% (155/180)
Updating files:  87% (157/180)
Updating files:  88% (159/180)
Updating files:  89% (161/180)
Updating files:  90% (162/180)
Updating files:  91% (164/180)
Updating files:  92% (166/180)
Updating files:  93% (168/180)
Updating files:  94% (170/180)
Updating files:  95% (171/180)
Updating files:  96% (173/180)
Updating files:  97% (175/180)
Updating files:  98% (177/180)
Updating files:  99% (179/180)
Updating files: 100% (180/180)
Updating files: 100% (180/180), done.
[INFO] started tweaking git repo https://github.com/enricozanardo/wall-e
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/enricozanardo/wall-e
[INFO] tweaked toml for git repo https://github.com/enricozanardo/wall-e written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/enricozanardo/wall-e on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/enricozanardo/wall-e 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ndarray-rand v0.14.0
[INFO] [stderr]   Downloaded ndarray-parallel v0.9.1
[INFO] [stderr]   Downloaded jiff-static v0.2.13
[INFO] [stderr]   Downloaded cc v1.2.19
[INFO] [stderr]   Downloaded ndarray v0.12.1
[INFO] [stderr]   Downloaded jiff v0.2.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a389c536b984b4af1ad6d1c6d991098e31a971f68c45b7b6bd70a66588529bfa
[INFO] running `Command { std: "docker" "start" "-a" "a389c536b984b4af1ad6d1c6d991098e31a971f68c45b7b6bd70a66588529bfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a389c536b984b4af1ad6d1c6d991098e31a971f68c45b7b6bd70a66588529bfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a389c536b984b4af1ad6d1c6d991098e31a971f68c45b7b6bd70a66588529bfa", kill_on_drop: false }`
[INFO] [stdout] a389c536b984b4af1ad6d1c6d991098e31a971f68c45b7b6bd70a66588529bfa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e3e12781b42cbae94c460c5ae2a854155f7bfcda0f2ff1f57fb287fd47ea4b7b
[INFO] running `Command { std: "docker" "start" "-a" "e3e12781b42cbae94c460c5ae2a854155f7bfcda0f2ff1f57fb287fd47ea4b7b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libm v0.2.13
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling litemap v0.7.5
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.6
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling matrixmultiply v0.1.15
[INFO] [stderr]    Compiling colorchoice v1.0.3
[INFO] [stderr]    Compiling anstyle v1.0.10
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling anstyle-query v1.1.2
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling ndarray v0.12.1
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling rawpointer v0.1.0
[INFO] [stderr]    Compiling portable-atomic v1.11.0
[INFO] [stderr]    Compiling rustix v1.0.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling itertools v0.7.11
[INFO] [stderr]    Compiling clap_lex v0.7.4
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling anstream v0.6.18
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling jiff v0.2.13
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling memmap2 v0.9.5
[INFO] [stderr]    Compiling clap_builder v4.5.37
[INFO] [stderr]    Compiling bytemuck v1.22.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling tempfile v3.19.1
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling ndarray-parallel v0.9.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling env_filter v0.1.3
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling clap v4.5.37
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling ndarray v0.15.6
[INFO] [stderr]    Compiling chrono v0.4.40
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling ndarray-rand v0.14.0
[INFO] [stderr]    Compiling wall-e1 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/nabla/memory_opt.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::{Instant, Duration};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Axis` and `Ix3`
[INFO] [stdout]  --> src/training/mod.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, Array1, Array2, Array3, Axis, Ix1, Ix2, Ix3, Ix0, IxDyn, s};
[INFO] [stdout]   |                                              ^^^^            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array0`
[INFO] [stdout]   --> src/training/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ndarray::Array0;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::array`
[INFO] [stdout]   --> src/training/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray::array;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/training/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Barrier`, and `Mutex`
[INFO] [stdout]   --> src/training/mod.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::{Mutex, Arc, Barrier};
[INFO] [stdout]    |                 ^^^^^  ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]   --> src/training/mod.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nabla::memory_opt`
[INFO] [stdout]   --> src/training/enhanced_trainer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::nabla::memory_opt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Barrier`
[INFO] [stdout]   --> src/training/enhanced_trainer.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::{Arc, Mutex, Barrier};
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/training/batch_dispatcher.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::ThreadId`
[INFO] [stdout]  --> src/training/batch_dispatcher.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::ThreadId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/nabla/memory_opt.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     if let Ok(v) = std::env::var("MALLOC_ARENA_MAX") {
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/tokenizer/word_bpe.rs:420:20
[INFO] [stdout]     |
[INFO] [stdout] 420 |         for (word, count) in word_counts.iter().filter(|&(_, count)| *count >= min_frequency) {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens_to_add`
[INFO] [stdout]     --> src/training/mod.rs:1315:13
[INFO] [stdout]      |
[INFO] [stdout] 1315 |         let tokens_to_add = new_vocab_size - current_size;
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens_to_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `reported_progress` is assigned to, but never used
[INFO] [stdout]    --> src/training/generation.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut reported_progress = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_reported_progress` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reported_progress` is never read
[INFO] [stdout]    --> src/training/generation.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 reported_progress = true;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:542:29
[INFO] [stdout]     |
[INFO] [stdout] 542 |                         let mut loss_guard = loss_mutex.lock().unwrap();
[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: `batch`
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:538:34
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:538:47
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stdout]     |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:3454:13
[INFO] [stdout]      |
[INFO] [stdout] 3454 |         for thread_id in 0..num_threads {
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `progress_reported` is never read
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:3714:13
[INFO] [stdout]      |
[INFO] [stdout] 3714 |             progress_reported = true;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_allocator_type` is never used
[INFO] [stdout]   --> src/nabla/memory_opt.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn determine_allocator_type() -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_total_elapsed` is never used
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl ThreadStateTracker {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_total_elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_with_timeout` is never used
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:2001:8
[INFO] [stdout]      |
[INFO] [stdout]  201 | impl EnhancedTrainer {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2001 |     fn run_with_timeout<F, T>(&self, f: F, timeout: std::time::Duration) -> Option<T> 
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V0_HEADER_SIZE` is never used
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub const V0_HEADER_SIZE: usize = 32;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time` is never read
[INFO] [stdout]   --> src/training/batch_dispatcher.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct LockEvent {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     time: Instant,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextGenerator`
[INFO] [stdout]  --> src/bin/test_multithreading.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wall_e1::training::{EnhancedTrainer, TextGenerator};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::env;
[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: `wall_e1::tokenizer::Tokenizer`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wall_e1::tokenizer::Tokenizer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stdout]   --> src/bin/train_enhanced_model.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `AtomicUsize`, `Mutex`, and `Ordering`
[INFO] [stdout]   --> src/bin/train_enhanced_model.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::{Arc, Mutex, atomic::{AtomicUsize, Ordering}};
[INFO] [stdout]    |                 ^^^  ^^^^^           ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wall_e1::nabla::tensor::Tensor`
[INFO] [stdout]  --> src/bin/memory_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wall_e1::nabla::tensor::Tensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]   --> src/bin/train_enhanced_model.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let thread_id = format!("{:?}", std::thread::current().id());
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1230:9
[INFO] [stdout]      |
[INFO] [stdout] 1230 |     let mut path_with_dir = if !final_save_path_str.starts_with("models/") {
[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: `thread_count`
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let thread_count = if op == &"data_loading" { min_data_threads } else { pool.get_num_threads() };
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `setup_start`
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:428:9
[INFO] [stdout]     |
[INFO] [stdout] 428 |     let setup_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setup_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `curriculum_examples` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:462:9
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let mut curriculum_examples: usize = 2000;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_curriculum_examples` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `auto_resize_vocab` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:466:9
[INFO] [stdout]     |
[INFO] [stdout] 466 |     let mut auto_resize_vocab = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_auto_resize_vocab` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `watchdog_timeout` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:467:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |     let mut watchdog_timeout: Option<u64> = None;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_watchdog_timeout` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `target_id_max` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |     let mut target_id_max: Option<usize> = None;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_target_id_max` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curriculum_examples` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:675:25
[INFO] [stdout]     |
[INFO] [stdout] 675 |                         curriculum_examples = num;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `auto_resize_vocab` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:681:17
[INFO] [stdout]     |
[INFO] [stdout] 681 |                 auto_resize_vocab = true;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `watchdog_timeout` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:687:25
[INFO] [stdout]     |
[INFO] [stdout] 687 |                         watchdog_timeout = Some(timeout);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `target_id_max` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:711:25
[INFO] [stdout]     |
[INFO] [stdout] 711 |                         target_id_max = Some(max_id);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `epoch`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1340:68
[INFO] [stdout]      |
[INFO] [stdout] 1340 | fn train_epoch(trainer: &mut EnhancedTrainer, tokens: &Vec<usize>, epoch: usize, 
[INFO] [stdout]      |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_epoch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_inputs`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1508:10
[INFO] [stdout]      |
[INFO] [stdout] 1508 |     let (batch_inputs, min_seq_len, truncated_inputs, batch_targets_arr, timing) = pool_result.install(|| {
[INFO] [stdout]      |          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_seq_len`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1508:24
[INFO] [stdout]      |
[INFO] [stdout] 1508 |     let (batch_inputs, min_seq_len, truncated_inputs, batch_targets_arr, timing) = pool_result.install(|| {
[INFO] [stdout]      |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_seq_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1779:13
[INFO] [stdout]      |
[INFO] [stdout] 1779 |     let (m, k) = a.dim();
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_batch_parallel` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1472:4
[INFO] [stdout]      |
[INFO] [stdout] 1472 | fn prepare_batch_parallel(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_simd_features` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1691:4
[INFO] [stdout]      |
[INFO] [stdout] 1691 | fn detect_simd_features() -> Vec<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enable_simd_optimizations` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1728:4
[INFO] [stdout]      |
[INFO] [stdout] 1728 | fn enable_simd_optimizations(features: &[String]) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_multiply_simd` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1774:4
[INFO] [stdout]      |
[INFO] [stdout] 1774 | fn matrix_multiply_simd(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>) -> ndarray::Array2<f32> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_multiply_avx2` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1844:4
[INFO] [stdout]      |
[INFO] [stdout] 1844 | fn matrix_multiply_avx2(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>, result: &mut ndarray::Array2<f32>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_multiply_scalar` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1850:4
[INFO] [stdout]      |
[INFO] [stdout] 1850 | fn matrix_multiply_scalar(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>, result: &mut ndarray::Array2<f32>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.67s
[INFO] running `Command { std: "docker" "inspect" "e3e12781b42cbae94c460c5ae2a854155f7bfcda0f2ff1f57fb287fd47ea4b7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3e12781b42cbae94c460c5ae2a854155f7bfcda0f2ff1f57fb287fd47ea4b7b", kill_on_drop: false }`
[INFO] [stdout] e3e12781b42cbae94c460c5ae2a854155f7bfcda0f2ff1f57fb287fd47ea4b7b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d730ce2a03152adee249f6121a42d6d03d35445fbfec625a20a294c097995767
[INFO] running `Command { std: "docker" "start" "-a" "d730ce2a03152adee249f6121a42d6d03d35445fbfec625a20a294c097995767", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/nabla/memory_opt.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::{Instant, Duration};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Axis` and `Ix3`
[INFO] [stdout]  --> src/training/mod.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, Array1, Array2, Array3, Axis, Ix1, Ix2, Ix3, Ix0, IxDyn, s};
[INFO] [stdout]   |                                              ^^^^            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array0`
[INFO] [stdout]   --> src/training/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ndarray::Array0;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::array`
[INFO] [stdout]   --> src/training/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray::array;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/training/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Barrier`, and `Mutex`
[INFO] [stdout]   --> src/training/mod.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::{Mutex, Arc, Barrier};
[INFO] [stdout]    |                 ^^^^^  ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]   --> src/training/mod.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nabla::memory_opt`
[INFO] [stdout]   --> src/training/enhanced_trainer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::nabla::memory_opt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Barrier`
[INFO] [stdout]   --> src/training/enhanced_trainer.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::{Arc, Mutex, Barrier};
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/training/batch_dispatcher.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::ThreadId`
[INFO] [stdout]  --> src/training/batch_dispatcher.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::ThreadId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/nabla/memory_opt.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     if let Ok(v) = std::env::var("MALLOC_ARENA_MAX") {
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/tokenizer/word_bpe.rs:420:20
[INFO] [stdout]     |
[INFO] [stdout] 420 |         for (word, count) in word_counts.iter().filter(|&(_, count)| *count >= min_frequency) {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens_to_add`
[INFO] [stdout]     --> src/training/mod.rs:1315:13
[INFO] [stdout]      |
[INFO] [stdout] 1315 |         let tokens_to_add = new_vocab_size - current_size;
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens_to_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `reported_progress` is assigned to, but never used
[INFO] [stdout]    --> src/training/generation.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut reported_progress = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_reported_progress` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reported_progress` is never read
[INFO] [stdout]    --> src/training/generation.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 reported_progress = true;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:542:29
[INFO] [stdout]     |
[INFO] [stdout] 542 |                         let mut loss_guard = loss_mutex.lock().unwrap();
[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: `batch`
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:538:34
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:538:47
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stdout]     |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:3454:13
[INFO] [stdout]      |
[INFO] [stdout] 3454 |         for thread_id in 0..num_threads {
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wall-e1 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `progress_reported` is never read
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:3714:13
[INFO] [stdout]      |
[INFO] [stdout] 3714 |             progress_reported = true;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_allocator_type` is never used
[INFO] [stdout]   --> src/nabla/memory_opt.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn determine_allocator_type() -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_total_elapsed` is never used
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl ThreadStateTracker {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_total_elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_with_timeout` is never used
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:2001:8
[INFO] [stdout]      |
[INFO] [stdout]  201 | impl EnhancedTrainer {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2001 |     fn run_with_timeout<F, T>(&self, f: F, timeout: std::time::Duration) -> Option<T> 
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V0_HEADER_SIZE` is never used
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub const V0_HEADER_SIZE: usize = 32;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time` is never read
[INFO] [stdout]   --> src/training/batch_dispatcher.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct LockEvent {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     time: Instant,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextGenerator`
[INFO] [stdout]  --> src/bin/test_multithreading.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wall_e1::training::{EnhancedTrainer, TextGenerator};
[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: `WordPieceBPETokenizer`
[INFO] [stdout]  --> examples/test_model.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use wall_e1::tokenizer::{WordPieceBPETokenizer, Tokenizer};
[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: `ndarray::Array2`
[INFO] [stdout]  --> examples/test_model.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stdout]   --> examples/test_model.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]   --> examples/test_model.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rand::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::env;
[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: `wall_e1::tokenizer::Tokenizer`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wall_e1::tokenizer::Tokenizer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]  --> examples/model_test.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{Array2, s};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/bin/diagnose_training.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wall_e1::tokenizer::basic_tokenizer::BasicTokenizer`
[INFO] [stdout]  --> examples/train_qa_model.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use wall_e1::tokenizer::basic_tokenizer::BasicTokenizer;
[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: `wall_e1::nabla::tensor::Tensor`
[INFO] [stdout]  --> src/bin/memory_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wall_e1::nabla::tensor::Tensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_load_method_to_trainer` is never used
[INFO] [stdout]   --> examples/test_model.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn add_load_method_to_trainer() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stdout]   --> src/bin/train_enhanced_model.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `AtomicUsize`, `Mutex`, and `Ordering`
[INFO] [stdout]   --> src/bin/train_enhanced_model.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::{Arc, Mutex, atomic::{AtomicUsize, Ordering}};
[INFO] [stdout]    |                 ^^^  ^^^^^           ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/nabla/memory_opt.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::{Instant, Duration};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Axis` and `Ix3`
[INFO] [stdout]  --> src/training/mod.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, Array1, Array2, Array3, Axis, Ix1, Ix2, Ix3, Ix0, IxDyn, s};
[INFO] [stdout]   |                                              ^^^^            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array0`
[INFO] [stdout]   --> src/training/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ndarray::Array0;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::array`
[INFO] [stdout]   --> src/training/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray::array;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/training/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Barrier`, and `Mutex`
[INFO] [stdout]   --> src/training/mod.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::{Mutex, Arc, Barrier};
[INFO] [stdout]    |                 ^^^^^  ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]   --> src/training/mod.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nabla::memory_opt`
[INFO] [stdout]   --> src/training/enhanced_trainer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::nabla::memory_opt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Barrier`
[INFO] [stdout]   --> src/training/enhanced_trainer.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::{Arc, Mutex, Barrier};
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stdout]  --> src/training/batch_dispatcher.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Mutex, MutexGuard};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::ThreadId`
[INFO] [stdout]  --> src/training/batch_dispatcher.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::ThreadId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]   --> src/bin/train_enhanced_model.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let thread_id = format!("{:?}", std::thread::current().id());
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1230:9
[INFO] [stdout]      |
[INFO] [stdout] 1230 |     let mut path_with_dir = if !final_save_path_str.starts_with("models/") {
[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: `thread_count`
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let thread_count = if op == &"data_loading" { min_data_threads } else { pool.get_num_threads() };
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `setup_start`
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:428:9
[INFO] [stdout]     |
[INFO] [stdout] 428 |     let setup_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setup_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `curriculum_examples` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:462:9
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let mut curriculum_examples: usize = 2000;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_curriculum_examples` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `auto_resize_vocab` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:466:9
[INFO] [stdout]     |
[INFO] [stdout] 466 |     let mut auto_resize_vocab = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_auto_resize_vocab` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `watchdog_timeout` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:467:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |     let mut watchdog_timeout: Option<u64> = None;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_watchdog_timeout` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `target_id_max` is assigned to, but never used
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |     let mut target_id_max: Option<usize> = None;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_target_id_max` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curriculum_examples` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:675:25
[INFO] [stdout]     |
[INFO] [stdout] 675 |                         curriculum_examples = num;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `auto_resize_vocab` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:681:17
[INFO] [stdout]     |
[INFO] [stdout] 681 |                 auto_resize_vocab = true;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `watchdog_timeout` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:687:25
[INFO] [stdout]     |
[INFO] [stdout] 687 |                         watchdog_timeout = Some(timeout);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `target_id_max` is never read
[INFO] [stdout]    --> src/bin/train_enhanced_model.rs:711:25
[INFO] [stdout]     |
[INFO] [stdout] 711 |                         target_id_max = Some(max_id);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `epoch`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1340:68
[INFO] [stdout]      |
[INFO] [stdout] 1340 | fn train_epoch(trainer: &mut EnhancedTrainer, tokens: &Vec<usize>, epoch: usize, 
[INFO] [stdout]      |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_epoch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_inputs`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1508:10
[INFO] [stdout]      |
[INFO] [stdout] 1508 |     let (batch_inputs, min_seq_len, truncated_inputs, batch_targets_arr, timing) = pool_result.install(|| {
[INFO] [stdout]      |          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_seq_len`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1508:24
[INFO] [stdout]      |
[INFO] [stdout] 1508 |     let (batch_inputs, min_seq_len, truncated_inputs, batch_targets_arr, timing) = pool_result.install(|| {
[INFO] [stdout]      |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_seq_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1779:13
[INFO] [stdout]      |
[INFO] [stdout] 1779 |     let (m, k) = a.dim();
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_batch_parallel` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1472:4
[INFO] [stdout]      |
[INFO] [stdout] 1472 | fn prepare_batch_parallel(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_simd_features` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1691:4
[INFO] [stdout]      |
[INFO] [stdout] 1691 | fn detect_simd_features() -> Vec<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enable_simd_optimizations` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1728:4
[INFO] [stdout]      |
[INFO] [stdout] 1728 | fn enable_simd_optimizations(features: &[String]) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_multiply_simd` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1774:4
[INFO] [stdout]      |
[INFO] [stdout] 1774 | fn matrix_multiply_simd(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>) -> ndarray::Array2<f32> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_multiply_avx2` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1844:4
[INFO] [stdout]      |
[INFO] [stdout] 1844 | fn matrix_multiply_avx2(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>, result: &mut ndarray::Array2<f32>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_multiply_scalar` is never used
[INFO] [stdout]     --> src/bin/train_enhanced_model.rs:1850:4
[INFO] [stdout]      |
[INFO] [stdout] 1850 | fn matrix_multiply_scalar(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>, result: &mut ndarray::Array2<f32>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/nabla/memory_opt.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     if let Ok(v) = std::env::var("MALLOC_ARENA_MAX") {
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/tokenizer/word_bpe.rs:420:20
[INFO] [stdout]     |
[INFO] [stdout] 420 |         for (word, count) in word_counts.iter().filter(|&(_, count)| *count >= min_frequency) {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/tokenizer/word_bpe.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let tokens = tokenizer.tokenize(text);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens_to_add`
[INFO] [stdout]     --> src/training/mod.rs:1315:13
[INFO] [stdout]      |
[INFO] [stdout] 1315 |         let tokens_to_add = new_vocab_size - current_size;
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens_to_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `reported_progress` is assigned to, but never used
[INFO] [stdout]    --> src/training/generation.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut reported_progress = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_reported_progress` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reported_progress` is never read
[INFO] [stdout]    --> src/training/generation.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 reported_progress = true;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:542:29
[INFO] [stdout]     |
[INFO] [stdout] 542 |                         let mut loss_guard = loss_mutex.lock().unwrap();
[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: `batch`
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:538:34
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:538:47
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stdout]     |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:3454:13
[INFO] [stdout]      |
[INFO] [stdout] 3454 |         for thread_id in 0..num_threads {
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `progress_reported` is never read
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:3714:13
[INFO] [stdout]      |
[INFO] [stdout] 3714 |             progress_reported = true;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_allocator_type` is never used
[INFO] [stdout]   --> src/nabla/memory_opt.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn determine_allocator_type() -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_total_elapsed` is never used
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl ThreadStateTracker {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_total_elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_with_timeout` is never used
[INFO] [stdout]     --> src/training/enhanced_trainer.rs:2001:8
[INFO] [stdout]      |
[INFO] [stdout]  201 | impl EnhancedTrainer {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2001 |     fn run_with_timeout<F, T>(&self, f: F, timeout: std::time::Duration) -> Option<T> 
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V0_HEADER_SIZE` is never used
[INFO] [stdout]    --> src/training/enhanced_trainer.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub const V0_HEADER_SIZE: usize = 32;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time` is never read
[INFO] [stdout]   --> src/training/batch_dispatcher.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct LockEvent {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     time: Instant,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.20s
[INFO] running `Command { std: "docker" "inspect" "d730ce2a03152adee249f6121a42d6d03d35445fbfec625a20a294c097995767", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d730ce2a03152adee249f6121a42d6d03d35445fbfec625a20a294c097995767", kill_on_drop: false }`
[INFO] [stdout] d730ce2a03152adee249f6121a42d6d03d35445fbfec625a20a294c097995767
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c7e842d24fc3c984eb2dd5517b6210833b48de80c7193c83bf5db4f7cc474027
[INFO] running `Command { std: "docker" "start" "-a" "c7e842d24fc3c984eb2dd5517b6210833b48de80c7193c83bf5db4f7cc474027", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]  --> src/nabla/memory_opt.rs:4:26
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::time::{Instant, Duration};
[INFO] [stderr]   |                          ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Axis` and `Ix3`
[INFO] [stderr]  --> src/training/mod.rs:4:46
[INFO] [stderr]   |
[INFO] [stderr] 4 | use ndarray::{Array, Array1, Array2, Array3, Axis, Ix1, Ix2, Ix3, Ix0, IxDyn, s};
[INFO] [stderr]   |                                              ^^^^            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ndarray::Array0`
[INFO] [stderr]   --> src/training/mod.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use ndarray::Array0;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ndarray::array`
[INFO] [stderr]   --> src/training/mod.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use ndarray::array;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Instant`
[INFO] [stderr]   --> src/training/mod.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::time::Instant;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Barrier`, and `Mutex`
[INFO] [stderr]   --> src/training/mod.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 | use std::sync::{Mutex, Arc, Barrier};
[INFO] [stderr]    |                 ^^^^^  ^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stderr]   --> src/training/mod.rs:18:25
[INFO] [stderr]    |
[INFO] [stderr] 18 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stderr]    |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::nabla::memory_opt`
[INFO] [stderr]   --> src/training/enhanced_trainer.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use crate::nabla::memory_opt;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Barrier`
[INFO] [stderr]   --> src/training/enhanced_trainer.rs:19:29
[INFO] [stderr]    |
[INFO] [stderr] 19 | use std::sync::{Arc, Mutex, Barrier};
[INFO] [stderr]    |                             ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MutexGuard` and `Mutex`
[INFO] [stderr]  --> src/training/batch_dispatcher.rs:4:17
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::sync::{Mutex, MutexGuard};
[INFO] [stderr]   |                 ^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread::ThreadId`
[INFO] [stderr]  --> src/training/batch_dispatcher.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread::ThreadId;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]   --> src/nabla/memory_opt.rs:88:15
[INFO] [stderr]    |
[INFO] [stderr] 88 |     if let Ok(v) = std::env::var("MALLOC_ARENA_MAX") {
[INFO] [stderr]    |               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> src/tokenizer/word_bpe.rs:420:20
[INFO] [stderr]     |
[INFO] [stderr] 420 |         for (word, count) in word_counts.iter().filter(|&(_, count)| *count >= min_frequency) {
[INFO] [stderr]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tokens_to_add`
[INFO] [stderr]     --> src/training/mod.rs:1315:13
[INFO] [stderr]      |
[INFO] [stderr] 1315 |         let tokens_to_add = new_vocab_size - current_size;
[INFO] [stderr]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens_to_add`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `reported_progress` is assigned to, but never used
[INFO] [stderr]    --> src/training/generation.rs:174:13
[INFO] [stderr]     |
[INFO] [stderr] 174 |         let mut reported_progress = false;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_reported_progress` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `reported_progress` is never read
[INFO] [stderr]    --> src/training/generation.rs:181:17
[INFO] [stderr]     |
[INFO] [stderr] 181 |                 reported_progress = true;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/training/enhanced_trainer.rs:542:29
[INFO] [stderr]     |
[INFO] [stderr] 542 |                         let mut loss_guard = loss_mutex.lock().unwrap();
[INFO] [stderr]     |                             ----^^^^^^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `batch`
[INFO] [stderr]    --> src/training/enhanced_trainer.rs:538:34
[INFO] [stderr]     |
[INFO] [stderr] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stderr]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_batch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/training/enhanced_trainer.rs:538:47
[INFO] [stderr]     |
[INFO] [stderr] 538 |                     if let (Some(batch), Some(target)) = (inputs.get(batch_idx), targets.get(batch_idx)) {
[INFO] [stderr]     |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thread_id`
[INFO] [stderr]     --> src/training/enhanced_trainer.rs:3454:13
[INFO] [stderr]      |
[INFO] [stderr] 3454 |         for thread_id in 0..num_threads {
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `progress_reported` is never read
[INFO] [stderr]     --> src/training/enhanced_trainer.rs:3714:13
[INFO] [stderr]      |
[INFO] [stderr] 3714 |             progress_reported = true;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: function `determine_allocator_type` is never used
[INFO] [stderr]   --> src/nabla/memory_opt.rs:79:4
[INFO] [stderr]    |
[INFO] [stderr] 79 | fn determine_allocator_type() -> Option<String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_total_elapsed` is never used
[INFO] [stderr]    --> src/training/enhanced_trainer.rs:165:8
[INFO] [stderr]     |
[INFO] [stderr] 134 | impl ThreadStateTracker {
[INFO] [stderr]     | ----------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 165 |     fn get_total_elapsed(&self) -> std::time::Duration {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `run_with_timeout` is never used
[INFO] [stderr]     --> src/training/enhanced_trainer.rs:2001:8
[INFO] [stderr]      |
[INFO] [stderr]  201 | impl EnhancedTrainer {
[INFO] [stderr]      | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 2001 |     fn run_with_timeout<F, T>(&self, f: F, timeout: std::time::Duration) -> Option<T> 
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `V0_HEADER_SIZE` is never used
[INFO] [stderr]    --> src/training/enhanced_trainer.rs:101:15
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub const V0_HEADER_SIZE: usize = 32;
[INFO] [stderr]     |               ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `time` is never read
[INFO] [stderr]   --> src/training/batch_dispatcher.rs:44:5
[INFO] [stderr]    |
[INFO] [stderr] 40 | struct LockEvent {
[INFO] [stderr]    |        --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     time: Instant,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tokens`
[INFO] [stderr]    --> src/tokenizer/word_bpe.rs:745:13
[INFO] [stderr]     |
[INFO] [stderr] 745 |         let tokens = tokenizer.tokenize(text);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stderr] 
[INFO] [stderr] warning: `wall-e1` (lib) generated 26 warnings (run `cargo fix --lib -p wall-e1` to apply 18 suggestions)
[INFO] [stderr] warning: `wall-e1` (lib test) generated 27 warnings (26 duplicates) (run `cargo fix --lib -p wall-e1 --tests` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `WordPieceBPETokenizer`
[INFO] [stderr]  --> examples/test_model.rs:6:26
[INFO] [stderr]   |
[INFO] [stderr] 6 | use wall_e1::tokenizer::{WordPieceBPETokenizer, Tokenizer};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ndarray::Array2`
[INFO] [stderr]  --> examples/test_model.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ndarray::Array2;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stderr]   --> examples/test_model.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stderr]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::prelude::*`
[INFO] [stderr]   --> examples/test_model.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use rand::prelude::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `add_load_method_to_trainer` is never used
[INFO] [stderr]   --> examples/test_model.rs:14:4
[INFO] [stderr]    |
[INFO] [stderr] 14 | fn add_load_method_to_trainer() -> Result<(), Box<dyn Error>> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stderr]   --> src/bin/train_enhanced_model.rs:16:17
[INFO] [stderr]    |
[INFO] [stderr] 16 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stderr]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `AtomicUsize`, `Mutex`, and `Ordering`
[INFO] [stderr]   --> src/bin/train_enhanced_model.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 | use std::sync::{Arc, Mutex, atomic::{AtomicUsize, Ordering}};
[INFO] [stderr]    |                 ^^^  ^^^^^           ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thread_id`
[INFO] [stderr]   --> src/bin/train_enhanced_model.rs:47:13
[INFO] [stderr]    |
[INFO] [stderr] 47 |         let thread_id = format!("{:?}", std::thread::current().id());
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1230:9
[INFO] [stderr]      |
[INFO] [stderr] 1230 |     let mut path_with_dir = if !final_save_path_str.starts_with("models/") {
[INFO] [stderr]      |         ----^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thread_count`
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:371:13
[INFO] [stderr]     |
[INFO] [stderr] 371 |         let thread_count = if op == &"data_loading" { min_data_threads } else { pool.get_num_threads() };
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `setup_start`
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:428:9
[INFO] [stderr]     |
[INFO] [stderr] 428 |     let setup_start = Instant::now();
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setup_start`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `curriculum_examples` is assigned to, but never used
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:462:9
[INFO] [stderr]     |
[INFO] [stderr] 462 |     let mut curriculum_examples: usize = 2000;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_curriculum_examples` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `auto_resize_vocab` is assigned to, but never used
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:466:9
[INFO] [stderr]     |
[INFO] [stderr] 466 |     let mut auto_resize_vocab = false;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_auto_resize_vocab` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `watchdog_timeout` is assigned to, but never used
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:467:9
[INFO] [stderr]     |
[INFO] [stderr] 467 |     let mut watchdog_timeout: Option<u64> = None;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_watchdog_timeout` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `target_id_max` is assigned to, but never used
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:470:9
[INFO] [stderr]     |
[INFO] [stderr] 470 |     let mut target_id_max: Option<usize> = None;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_target_id_max` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `curriculum_examples` is never read
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:675:25
[INFO] [stderr]     |
[INFO] [stderr] 675 |                         curriculum_examples = num;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `auto_resize_vocab` is never read
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:681:17
[INFO] [stderr]     |
[INFO] [stderr] 681 |                 auto_resize_vocab = true;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `watchdog_timeout` is never read
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:687:25
[INFO] [stderr]     |
[INFO] [stderr] 687 |                         watchdog_timeout = Some(timeout);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `target_id_max` is never read
[INFO] [stderr]    --> src/bin/train_enhanced_model.rs:711:25
[INFO] [stderr]     |
[INFO] [stderr] 711 |                         target_id_max = Some(max_id);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `epoch`
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1340:68
[INFO] [stderr]      |
[INFO] [stderr] 1340 | fn train_epoch(trainer: &mut EnhancedTrainer, tokens: &Vec<usize>, epoch: usize, 
[INFO] [stderr]      |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_epoch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `batch_inputs`
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1508:10
[INFO] [stderr]      |
[INFO] [stderr] 1508 |     let (batch_inputs, min_seq_len, truncated_inputs, batch_targets_arr, timing) = pool_result.install(|| {
[INFO] [stderr]      |          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_inputs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `min_seq_len`
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1508:24
[INFO] [stderr]      |
[INFO] [stderr] 1508 |     let (batch_inputs, min_seq_len, truncated_inputs, batch_targets_arr, timing) = pool_result.install(|| {
[INFO] [stderr]      |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_seq_len`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1779:13
[INFO] [stderr]      |
[INFO] [stderr] 1779 |     let (m, k) = a.dim();
[INFO] [stderr]      |             ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: function `prepare_batch_parallel` is never used
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1472:4
[INFO] [stderr]      |
[INFO] [stderr] 1472 | fn prepare_batch_parallel(
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `detect_simd_features` is never used
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1691:4
[INFO] [stderr]      |
[INFO] [stderr] 1691 | fn detect_simd_features() -> Vec<String> {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `enable_simd_optimizations` is never used
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1728:4
[INFO] [stderr]      |
[INFO] [stderr] 1728 | fn enable_simd_optimizations(features: &[String]) -> bool {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `matrix_multiply_simd` is never used
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1774:4
[INFO] [stderr]      |
[INFO] [stderr] 1774 | fn matrix_multiply_simd(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>) -> ndarray::Array2<f32> {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `matrix_multiply_avx2` is never used
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1844:4
[INFO] [stderr]      |
[INFO] [stderr] 1844 | fn matrix_multiply_avx2(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>, result: &mut ndarray::Array2<f32>) {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `matrix_multiply_scalar` is never used
[INFO] [stderr]     --> src/bin/train_enhanced_model.rs:1850:4
[INFO] [stderr]      |
[INFO] [stderr] 1850 | fn matrix_multiply_scalar(a: &ndarray::Array2<f32>, b: &ndarray::Array2<f32>, result: &mut ndarray::Array2<f32>) {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Array2`
[INFO] [stderr]  --> examples/model_test.rs:6:15
[INFO] [stderr]   |
[INFO] [stderr] 6 | use ndarray::{Array2, s};
[INFO] [stderr]   |               ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env`
[INFO] [stderr]  --> src/bin/diagnose_training.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::env;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wall_e1::tokenizer::Tokenizer`
[INFO] [stderr]  --> src/bin/diagnose_training.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use wall_e1::tokenizer::Tokenizer;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]  --> src/bin/diagnose_training.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::fs::File;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Read`
[INFO] [stderr]  --> src/bin/diagnose_training.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::io::Read;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TextGenerator`
[INFO] [stderr]  --> src/bin/test_multithreading.rs:5:42
[INFO] [stderr]   |
[INFO] [stderr] 5 | use wall_e1::training::{EnhancedTrainer, TextGenerator};
[INFO] [stderr]   |                                          ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wall_e1::nabla::tensor::Tensor`
[INFO] [stderr]  --> src/bin/memory_test.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use wall_e1::nabla::tensor::Tensor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wall_e1::tokenizer::basic_tokenizer::BasicTokenizer`
[INFO] [stderr]  --> examples/train_qa_model.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use wall_e1::tokenizer::basic_tokenizer::BasicTokenizer;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `wall-e1` (example "test_model") generated 5 warnings (run `cargo fix --example "test_model" -p wall-e1` to apply 4 suggestions)
[INFO] [stderr] warning: `wall-e1` (bin "Wall-E" test) generated 24 warnings (run `cargo fix --bin "Wall-E" -p wall-e1 --tests` to apply 10 suggestions)
[INFO] [stderr] warning: `wall-e1` (example "model_test") generated 1 warning (run `cargo fix --example "model_test" -p wall-e1` to apply 1 suggestion)
[INFO] [stderr] warning: `wall-e1` (bin "diagnose_training" test) generated 4 warnings (run `cargo fix --bin "diagnose_training" -p wall-e1 --tests` to apply 4 suggestions)
[INFO] [stderr] warning: `wall-e1` (bin "test_multithreading" test) generated 1 warning (run `cargo fix --bin "test_multithreading" -p wall-e1 --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `wall-e1` (bin "memory_test" test) generated 1 warning (run `cargo fix --bin "memory_test" -p wall-e1 --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `wall-e1` (example "train_qa_model") generated 1 warning (run `cargo fix --example "train_qa_model" -p wall-e1` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wall_e1-2878cdb65ea2977b)
[INFO] [stdout] 
[INFO] [stdout] running 80 tests
[INFO] [stdout] test attention::encoder::tests::test_layer_norm ... ok
[INFO] [stdout] test attention::feed_forward::tests::test_feed_forward_relu_activation ... ok
[INFO] [stdout] test attention::tests::test_causal_mask ... ok
[INFO] [stdout] test attention::tests::test_combined_mask ... ok
[INFO] [stdout] test attention::self_attention::tests::test_self_attention_forward ... ok
[INFO] [stdout] test attention::tests::test_create_weight_matrix ... ok
[INFO] [stdout] test attention::tests::test_padding_mask ... ok
[INFO] [stdout] test attention::self_attention::tests::test_self_attention_with_mask ... ok
[INFO] [stdout] test attention::tests::test_softmax_3d ... ok
[INFO] [stdout] test attention::multi_head_attention::tests::test_multi_head_attention_forward ... ok
[INFO] [stdout] test attention::multi_head_attention::tests::test_multi_head_attention_with_mask ... ok
[INFO] [stdout] test attention::feed_forward::tests::test_feed_forward_creation ... ok
[INFO] [stdout] test dataset::loader::tests::test_load_jsonl ... ok
[INFO] [stdout] test dataset::loader::tests::test_load_csv ... ok
[INFO] [stdout] test dataset::loader::tests::test_load_json ... ok
[INFO] [stdout] test dataset::loader::tests::test_load_text ... ok
[INFO] [stdout] test dataset::loader::tests::test_load_text_lines ... ok
[INFO] [stdout] test dataset::split::tests::test_split_dataset ... ok
[INFO] [stdout] test dataset::processor::tests::test_basic_processor ... ok
[INFO] [stdout] test attention::encoder_stack::tests::test_encoder_stack_creation ... ok
[INFO] [stdout] test dataset::split::tests::test_k_fold_split ... ok
[INFO] [stdout] test dataset::processor::tests::test_composite_processor ... ok
[INFO] [stdout] test attention::encoder::tests::test_encoder_layer_creation ... ok
[INFO] [stdout] test dataset::split::tests::test_split_dataset_with_invalid_ratios ... ok
[INFO] [stdout] test dataset::processor::tests::test_basic_processor_no_lowercase ... ok
[INFO] [stdout] test dataset::streaming::tests::test_dataset_stream ... ok
[INFO] [stdout] test dataset::streaming::tests::test_stream_with_processor ... ok
[INFO] [stdout] test attention::multi_head_attention::tests::test_multi_head_attention_creation ... ok
[INFO] [stdout] test dataset::split::tests::test_k_fold_invalid_k - should panic ... ok
[INFO] [stdout] test dataset::streaming::tests::test_stream_reset - should panic ... ok
[INFO] [stdout] test embedding::token_embedding::tests::test_forward ... ok
[INFO] [stdout] test embedding::token_embedding::tests::test_forward_batch ... ok
[INFO] [stdout] test embedding::token_embedding::tests::test_get_embedding ... ok
[INFO] [stdout] test attention::feed_forward::tests::test_feed_forward_forward ... ok
[INFO] [stdout] test embedding::token_embedding::tests::test_update_embedding ... ok
[INFO] [stdout] test embedding::token_embedding::tests::test_token_embedding_creation ... ok
[INFO] [stdout] test nabla::memory_opt::tests::test_cache_blocked_matmul ... ok
[INFO] [stdout] test nabla::memory_opt::tests::test_gradient_checkpointer ... ok
[INFO] [stdout] test embedding::positional_embedding::tests::test_positional_embedding_formula ... ok
[INFO] [stdout] test embedding::positional_embedding::tests::test_positional_embedding_too_long ... ok
[INFO] [stdout] test embedding::positional_embedding::tests::test_positional_embedding_forward_batch ... ok
[INFO] [stdout] test nabla::tensor::tests::test_matmul_with ... ok
[INFO] [stdout] test nabla::tensor::tests::test_new_tensor ... ok
[INFO] [stdout] test nabla::tensor::tests::test_relu_forward_and_backward ... ok
[INFO] [stdout] test embedding::positional_embedding::tests::test_positional_embedding_forward ... ok
[INFO] [stdout] test nabla::tensor::tests::test_matmul_forward_and_backward ... ok
[INFO] [stdout] test embedding::positional_embedding::tests::test_positional_embedding_creation ... ok
[INFO] [stdout] test nabla::tensor::tests::test_transpose ... ok
[INFO] [stdout] test nabla::tensor::tests::test_add_forward_and_backward ... ok
[INFO] [stdout] test tokenizer::basic_tokenizer::tests::test_basic_tokenizer_tokenize ... ok
[INFO] [stdout] test tokenizer::basic_tokenizer::tests::test_basic_tokenizer_encode_decode ... ok
[INFO] [stdout] test tokenizer::basic_tokenizer::tests::test_build_vocab ... ok
[INFO] [stdout] test tokenizer::bpe::tests::test_bpe_tokenizer_simple ... ok
[INFO] [stdout] test tokenizer::vocab::tests::test_vocab_special_tokens ... ok
[INFO] [stdout] test nabla::tensor::tests::test_thread_safety ... ok
[INFO] [stdout] test tokenizer::vocab::tests::test_vocab_save_load ... ok
[INFO] [stdout] test tokenizer::word_bpe::tests::test_word_bpe_learn ... ok
[INFO] [stdout] test tokenizer::bpe::tests::test_bpe_learn ... ok
[INFO] [stdout] test tokenizer::vocab::tests::test_vocab_add_token ... ok
[INFO] [stdout] test training::tests::tests::test_adam_optimizer_basic ... ok
[INFO] [stdout] test tokenizer::word_bpe::tests::test_word_bpe_tokenizer_simple ... ok
[INFO] [stdout] test training::tests::tests::test_cross_entropy_loss_basic ... ok
[INFO] [stdout] test training::tests::tests::test_cross_entropy_loss_with_padding ... ok
[INFO] [stdout] test tokenizer::word_bpe::tests::test_word_boundaries ... ok
[INFO] [stdout] test training::tests::tests::test_adam_optimizer_momentum ... ok
[INFO] [stdout] test training::tests::tests::test_adam_optimizer_with_gradient_clipping ... ok
[INFO] [stdout] test embedding::tests::test_transformer_embedding_forward_batch ... ok
[INFO] [stdout] test nabla::memory_opt::tests::test_batch_matmul_3d_2d ... ok
[INFO] [stdout] test training::tests::tests::test_trainer_forward_shape ... ok
[INFO] [stdout] test training::tests::tests::test_trainer_initialization ... ok
[INFO] [stdout] test embedding::tests::test_transformer_embedding_creation ... ok
[INFO] [stdout] test embedding::tests::test_transformer_embedding_forward ... ok
[INFO] [stdout] test training::tests::tests::test_trainer_train_step ... ok
[INFO] [stdout] test attention::feed_forward::tests::test_batched_feed_forward ... ok
[INFO] [stdout] test attention::encoder::tests::test_encoder_layer_forward ... ok
[INFO] [stdout] test attention::encoder_stack::tests::test_encoder_stack_forward ... ok
[INFO] [stdout] test attention::encoder::tests::test_encoder_layer_with_mask ... ok
[INFO] [stdout] test attention::encoder_stack::tests::test_encoder_stack_with_mask ... ok
[INFO] [stdout] test attention::encoder_stack::tests::test_encoder_stack_with_padding_mask ... ok
[INFO] [stdout] test nabla::memory_opt::tests::test_measure_memory_bandwidth ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.31s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/train_enhanced_model.rs (/opt/rustwide/target/debug/deps/Wall_E-0746b32c7d4ea2c6)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/batch_size_test.rs (/opt/rustwide/target/debug/deps/batch_size_test-76f04425db7d6aef)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/diagnose_training.rs (/opt/rustwide/target/debug/deps/diagnose_training-44ad248daee0cef3)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/memory_test.rs (/opt/rustwide/target/debug/deps/memory_test-2e9c6b9ad2080acf)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/test_multithreading.rs (/opt/rustwide/target/debug/deps/test_multithreading-ad4ed880edd42341)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/train_model_test.rs (/opt/rustwide/target/debug/deps/train_model_test-aa618a3781cf9a84)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests wall_e1
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::matmul (line 175) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::add (line 119) ... FAILED
[INFO] [stdout] test src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding (line 20) ... FAILED
[INFO] [stdout] test src/export/mod.rs - export::save_model (line 82) ... FAILED
[INFO] [stdout] test src/export/mod.rs - export::verify_model (line 321) ... FAILED
[INFO] [stdout] test src/export/mod.rs - export::load_model (line 209) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::matmul_with (line 288) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::mse (line 489) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::new_from_array (line 569) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::transpose (line 234) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::relu (line 342) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::square (line 389) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::Tensor::sum (line 441) ... FAILED
[INFO] [stdout] test src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer::new (line 42) ... FAILED
[INFO] [stdout] test src/embedding/mod.rs - embedding::TransformerEmbedding::from_vocab (line 120) ... ok
[INFO] [stdout] test src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding::embedding_matrix (line 113) ... ok
[INFO] [stdout] test src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding::forward_batch (line 141) ... ok
[INFO] [stdout] test src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding::forward_batch_3d (line 195) ... ok
[INFO] [stdout] test src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding::forward (line 248) ... ok
[INFO] [stdout] test src/embedding/token_embedding.rs - embedding::token_embedding::TokenEmbedding::new (line 36) ... ok
[INFO] [stdout] test src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding::new (line 61) ... ok
[INFO] [stdout] test src/embedding/mod.rs - embedding::TransformerEmbedding::new (line 81) ... ok
[INFO] [stdout] test src/embedding/mod.rs - embedding::TransformerEmbedding::forward (line 158) ... ok
[INFO] [stdout] test src/embedding/mod.rs - embedding::TransformerEmbedding::forward_batch (line 195) ... ok
[INFO] [stdout] test src/tokenizer/bpe.rs - tokenizer::bpe::BPETokenizer::new (line 40) ... FAILED
[INFO] [stdout] test src/nabla/tensor.rs - nabla::tensor::set_num_threads (line 15) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::load (line 317) - compile ... ok
[INFO] [stdout] test src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer::with_vocab (line 69) ... ok
[INFO] [stdout] test src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer::build_vocab (line 104) ... ok
[INFO] [stdout] test src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer (line 13) ... FAILED
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::save (line 272) - compile ... ok
[INFO] [stdout] test src/tokenizer/bpe.rs - tokenizer::bpe::BPETokenizer (line 12) ... ok
[INFO] [stdout] test src/tokenizer/bpe.rs - tokenizer::bpe::BPETokenizer::learn_bpe (line 128) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab (line 14) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::add_special_token (line 120) ... ok
[INFO] [stdout] test src/tokenizer/bpe.rs - tokenizer::bpe::BPETokenizer::with_vocab (line 81) ... ok
[INFO] [stdout] test src/training/mod.rs - training::ModelOutput (line 50) ... FAILED
[INFO] [stdout] test src/training/mod.rs - training::AdamOptimizer (line 192) ... FAILED
[INFO] [stdout] test src/training/mod.rs - training::Trainer (line 374) ... FAILED
[INFO] [stdout] test src/tokenizer/mod.rs - tokenizer::Tokenizer (line 18) ... ok
[INFO] [stdout] test src/training/mod.rs - training::CrossEntropyLoss (line 80) ... FAILED
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::add_token (line 83) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::is_special_token (line 198) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::is_empty (line 244) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::id_to_token (line 173) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::len (line 220) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::new (line 53) ... ok
[INFO] [stdout] test src/tokenizer/vocab.rs - tokenizer::vocab::Vocab::token_to_id (line 148) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::matmul (line 175) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::add (line 119) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding (line 20) stdout ----
[INFO] [stdout] error[E0599]: no method named `forward` found for struct `PositionalEmbedding` in the current scope
[INFO] [stdout]    --> src/embedding/positional_embedding.rs:29:39
[INFO] [stdout]     |
[INFO] [stdout]  29 | let positional_embeddings = embedding.forward(&token_ids);
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/embedding/mod.rs:21:8
[INFO] [stdout]     |
[INFO] [stdout]  21 |     fn forward(&self, token_ids: &[usize]) -> Tensor;
[INFO] [stdout]     |        ------- the method is available for `PositionalEmbedding` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `forward_batch` with a similar name, but with different arguments
[INFO] [stdout]    --> src/embedding/positional_embedding.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn forward_batch(&self, batch_size: usize, seq_len: usize) -> Tensor {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `Embedding` which provides `forward` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]  19 + use crate::wall_e1::Embedding;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/export/mod.rs - export::save_model (line 82) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/export/mod.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | use crate::tokenizer::basic_tokenizer::BasicTokenizer;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::tokenizer`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/export/mod.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | use crate::nabla::tensor::Tensor;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::nabla`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::export`
[INFO] [stdout]   --> src/export/mod.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | use crate::export::save_model;
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::export`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/export/mod.rs - export::verify_model (line 321) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `crate::export`
[INFO] [stdout]    --> src/export/mod.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 | use crate::export::verify_model;
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::export`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/export/mod.rs - export::load_model (line 209) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/export/mod.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | use crate::tokenizer::basic_tokenizer::BasicTokenizer;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::tokenizer`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::export`
[INFO] [stdout]    --> src/export/mod.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | use crate::export::load_model;
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::export`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/export/mod.rs:220:66
[INFO] [stdout]     |
[INFO] [stdout] 220 |         println!("Model loaded successfully with {} parameters", params.len());
[INFO] [stdout]     |                                                                  ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::matmul_with (line 288) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::mse (line 489) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 490 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::new_from_array (line 569) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:570:5
[INFO] [stdout]     |
[INFO] [stdout] 570 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::transpose (line 234) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 235 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::relu (line 342) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::square (line 389) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/nabla/tensor.rs - nabla::tensor::Tensor::sum (line 441) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]    --> src/nabla/tensor.rs:442:5
[INFO] [stdout]     |
[INFO] [stdout] 442 | use nabla::tensor::Tensor;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `nabla`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `nabla`, use `cargo add nabla` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer::new (line 42) stdout ----
[INFO] [stdout] error[E0599]: no method named `vocab_size` found for struct `BasicTokenizer` in the current scope
[INFO] [stdout]   --> src/tokenizer/basic_tokenizer.rs:47:22
[INFO] [stdout]    |
[INFO] [stdout] 47 | assert_eq!(tokenizer.vocab_size(), 2);
[INFO] [stdout]    |                      ^^^^^^^^^^ method not found in `BasicTokenizer`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tokenizer/mod.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn vocab_size(&self) -> usize;
[INFO] [stdout]    |        ---------- the method is available for `BasicTokenizer` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tokenizer` which provides `vocab_size` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 41 + use crate::wall_e1::Tokenizer;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tokenizer/bpe.rs - tokenizer::bpe::BPETokenizer::new (line 40) stdout ----
[INFO] [stdout] error[E0599]: no method named `vocab_size` found for struct `BPETokenizer` in the current scope
[INFO] [stdout]   --> src/tokenizer/bpe.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 | assert!(tokenizer.vocab_size() > 0);
[INFO] [stdout]    |                   ^^^^^^^^^^ method not found in `BPETokenizer`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/tokenizer/mod.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn vocab_size(&self) -> usize;
[INFO] [stdout]    |        ---------- the method is available for `BPETokenizer` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Tokenizer` which provides `vocab_size` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 39 + use crate::wall_e1::Tokenizer;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer (line 13) stdout ----
[INFO] [stdout] Test executable failed (exit status: 101).
[INFO] [stdout] 
[INFO] [stdout] stderr:
[INFO] [stdout] 
[INFO] [stdout] thread 'main' (963) panicked at src/tokenizer/basic_tokenizer.rs:16:1:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: ["hello", "[UNK]", "world", "[UNK]"]
[INFO] [stdout]  right: ["hello", ",", "world", "!"]
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5775a2202ab2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5775a2202ab2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5775a2202ab2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5775a2202ab2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5775a221589a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5775a221589a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x5775a2207286 - std[3b51380354919863]::io::default_write_fmt::<std[3b51380354919863]::sys::stdio::unix::Stderr>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5775a2207286 - <std[3b51380354919863]::sys::stdio::unix::Stderr as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5775a21e94cf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5775a21e94cf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5775a21fb7d1 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:319:9
[INFO] [stdout]   11:     0x5775a21fba3b - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:825:13
[INFO] [stdout]   12:     0x5775a21e9588 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   13:     0x5775a21de9d9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   14:     0x5775a21ea34d - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   15:     0x5775a2215fac - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   16:     0x5775a2215e63 - core[27de1724e4349be2]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:439:17
[INFO] [stdout]   17:     0x5775a217f5eb - core[27de1724e4349be2]::panicking::assert_failed::<alloc[a57f19327c0ad893]::vec::Vec<alloc[a57f19327c0ad893]::string::String>, alloc[a57f19327c0ad893]::vec::Vec<&str>>
[INFO] [stdout]   18:     0x5775a217fa5d - rust_out[8e547ba4386cb4c9]::main::_doctest_main_src_tokenizer_basic_tokenizer_rs_13_0
[INFO] [stdout]   19:     0x5775a217f666 - rust_out[8e547ba4386cb4c9]::main
[INFO] [stdout]   20:     0x5775a217ff93 - <fn() as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   21:     0x5775a217f626 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[INFO] [stdout]   22:     0x5775a217f639 - std[3b51380354919863]::rt::lang_start::<()>::{closure#0}
[INFO] [stdout]   23:     0x5775a21fad16 - <&dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   24:     0x5775a21fad16 - std[3b51380354919863]::panicking::catch_unwind::do_call::<&dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   25:     0x5775a21fad16 - std[3b51380354919863]::panicking::catch_unwind::<i32, &dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   26:     0x5775a21fad16 - std[3b51380354919863]::panic::catch_unwind::<&dyn core[27de1724e4349be2]::ops::function::Fn<(), Output = i32> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   27:     0x5775a21fad16 - std[3b51380354919863]::rt::lang_start_internal::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/rt.rs:175:24
[INFO] [stdout]   28:     0x5775a21fad16 - std[3b51380354919863]::panicking::catch_unwind::do_call::<std[3b51380354919863]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5775a21fad16 - std[3b51380354919863]::panicking::catch_unwind::<isize, std[3b51380354919863]::rt::lang_start_internal::{closure#0}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5775a21fad16 - std[3b51380354919863]::panic::catch_unwind::<std[3b51380354919863]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5775a21fad16 - std[3b51380354919863]::rt::lang_start_internal
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/rt.rs:171:5
[INFO] [stdout]   32:     0x5775a217f611 - std[3b51380354919863]::rt::lang_start::<()>
[INFO] [stdout]   33:     0x5775a217fff5 - main
[INFO] [stdout]   34:     0x70ff0fae11ca - <unknown>
[INFO] [stdout]   35:     0x70ff0fae128b - __libc_start_main
[INFO] [stdout]   36:     0x5775a217f4e5 - _start
[INFO] [stdout]   37:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- src/training/mod.rs - training::ModelOutput (line 50) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/training/mod.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | use crate::nabla::tensor::Tensor;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::nabla`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::training`
[INFO] [stdout]   --> src/training/mod.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | use crate::training::ModelOutput;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::training`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/training/mod.rs - training::AdamOptimizer (line 192) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/training/mod.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | use crate::nabla::tensor::Tensor;
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::nabla`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::training`
[INFO] [stdout]    --> src/training/mod.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 196 | use crate::training::AdamOptimizer;
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::training`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/training/mod.rs - training::Trainer (line 374) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/training/mod.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | use crate::tokenizer::basic_tokenizer::BasicTokenizer;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::tokenizer`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::training`
[INFO] [stdout]    --> src/training/mod.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | use crate::training::Trainer;
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `wall_e1::training`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/training/mod.rs - training::CrossEntropyLoss (line 80) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/training/mod.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | use crate::nabla::tensor::Tensor;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::nabla`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::training`
[INFO] [stdout]   --> src/training/mod.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | use crate::training::CrossEntropyLoss;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `wall_e1::training`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/embedding/positional_embedding.rs - embedding::positional_embedding::PositionalEmbedding (line 20)
[INFO] [stdout]     src/export/mod.rs - export::load_model (line 209)
[INFO] [stdout]     src/export/mod.rs - export::save_model (line 82)
[INFO] [stdout]     src/export/mod.rs - export::verify_model (line 321)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::add (line 119)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::matmul (line 175)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::matmul_with (line 288)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::mse (line 489)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::new_from_array (line 569)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::relu (line 342)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::square (line 389)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::sum (line 441)
[INFO] [stdout]     src/nabla/tensor.rs - nabla::tensor::Tensor::transpose (line 234)
[INFO] [stdout]     src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer (line 13)
[INFO] [stdout]     src/tokenizer/basic_tokenizer.rs - tokenizer::basic_tokenizer::BasicTokenizer::new (line 42)
[INFO] [stdout]     src/tokenizer/bpe.rs - tokenizer::bpe::BPETokenizer::new (line 40)
[INFO] [stdout]     src/training/mod.rs - training::AdamOptimizer (line 192)
[INFO] [stdout]     src/training/mod.rs - training::CrossEntropyLoss (line 80)
[INFO] [stdout]     src/training/mod.rs - training::ModelOutput (line 50)
[INFO] [stdout]     src/training/mod.rs - training::Trainer (line 374)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 28 passed; 20 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.35s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.60s; merged doctests compilation took 0.24s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "c7e842d24fc3c984eb2dd5517b6210833b48de80c7193c83bf5db4f7cc474027", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c7e842d24fc3c984eb2dd5517b6210833b48de80c7193c83bf5db4f7cc474027", kill_on_drop: false }`
[INFO] [stdout] c7e842d24fc3c984eb2dd5517b6210833b48de80c7193c83bf5db4f7cc474027
