[INFO] fetching crate nevermind-neu 0.2.1...
[INFO] checking nevermind-neu-0.2.1 against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] extracting crate nevermind-neu 0.2.1 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate nevermind-neu 0.2.1
[INFO] removed 3 missing examples
[INFO] finished tweaking crates.io crate nevermind-neu 0.2.1
[INFO] tweaked toml for crates.io crate nevermind-neu 0.2.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nevermind-neu 0.2.1 on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nevermind-neu 0.2.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 13002b3002aa242971136deb774c68d83fa6c595595077a39a528d764afc642a
[INFO] running `Command { std: "docker" "start" "-a" "13002b3002aa242971136deb774c68d83fa6c595595077a39a528d764afc642a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "13002b3002aa242971136deb774c68d83fa6c595595077a39a528d764afc642a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "13002b3002aa242971136deb774c68d83fa6c595595077a39a528d764afc642a", kill_on_drop: false }`
[INFO] [stdout] 13002b3002aa242971136deb774c68d83fa6c595595077a39a528d764afc642a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff8df6611478dba31e97f7622f6a24c70e9424c611b44ace8b45b00f13f49b13
[INFO] running `Command { std: "docker" "start" "-a" "ff8df6611478dba31e97f7622f6a24c70e9424c611b44ace8b45b00f13f49b13", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.67
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]    Compiling libm v0.2.7
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling serde v1.0.188
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling rustix v0.38.15
[INFO] [stderr]    Compiling semver v1.0.19
[INFO] [stderr]    Compiling lock_api v0.4.10
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling bitflags v2.4.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.8
[INFO] [stderr]    Compiling rayon-core v1.12.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.8
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling matrixmultiply v0.3.8
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling regex-syntax v0.7.5
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling hashbrown v0.14.1
[INFO] [stderr]    Compiling thiserror v1.0.48
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]    Compiling prettyplease v0.1.25
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling fastrand v2.0.1
[INFO] [stderr]    Compiling cl-sys v0.4.3
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling home v0.5.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking aho-corasick v1.1.1
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking destructure_traitobject v0.2.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling ocl-core v0.11.5
[INFO] [stderr]    Compiling syn v2.0.37
[INFO] [stderr]    Compiling serde_json v1.0.107
[INFO] [stderr]     Checking unsafe-any-ors v1.0.0
[INFO] [stderr]     Checking os_str_bytes v6.5.1
[INFO] [stderr]     Checking iana-time-zone v0.1.57
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking qutex v0.2.4
[INFO] [stderr]     Checking typemap-ors v1.0.0
[INFO] [stderr]    Compiling indexmap v2.0.2
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]     Checking log-mdc v0.1.0
[INFO] [stderr]     Checking arc-swap v1.6.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking rayon v1.8.0
[INFO] [stderr]    Compiling petgraph v0.6.4
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking ocl-core-vector v0.1.1
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling regex-automata v0.3.9
[INFO] [stderr]     Checking ordered-float v2.10.0
[INFO] [stderr]     Checking chrono v0.4.31
[INFO] [stderr]     Checking noisy_float v0.2.0
[INFO] [stderr]     Checking thread-id v4.2.0
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]    Compiling tempfile v3.8.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.188
[INFO] [stderr]    Compiling thiserror-impl v1.0.48
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]    Compiling regex v1.9.6
[INFO] [stderr]     Checking ocl v0.19.5
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking ndarray-rand v0.14.0
[INFO] [stderr]     Checking ndarray-stats v0.5.1
[INFO] [stderr]    Compiling prost v0.11.9
[INFO] [stderr]     Checking prost-types v0.11.9
[INFO] [stderr]    Compiling prost-build v0.11.9
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking serde_yaml v0.8.26
[INFO] [stderr]     Checking csv v1.2.2
[INFO] [stderr]     Checking mio v0.8.8
[INFO] [stderr]     Checking rust-mnist v0.1.4
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking log4rs v1.2.0
[INFO] [stderr]    Compiling nevermind-neu v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking tui v0.19.0
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/layers/euclidean_loss_layer.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, info};
[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: `Array1`
[INFO] [stdout]   --> src/layers/softmax_loss_layer.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray::{Array1, Axis, Zip, indices};
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `info` and `warn`
[INFO] [stdout]   --> src/layers/softmax_loss_layer.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::{debug, info, warn};
[INFO] [stdout]    |                  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Buffer`, `MemFlags`, and `ProQue`
[INFO] [stdout]  --> src/layers/abstract_layer_ocl.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ocl::{Buffer, Context, Device, MemFlags, ProQue, Queue};
[INFO] [stdout]   |           ^^^^^^                   ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MemFlags`
[INFO] [stdout]   --> src/layers/fc_layer_ocl.rs:10:44
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ocl::{Buffer, Context, Device, Kernel, MemFlags, Program, Queue};
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/layers/input_layer_ocl.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DerefMut`
[INFO] [stdout]   --> src/layers/euclidean_loss_layer_ocl.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ops::{Deref, DerefMut},
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/layers/softmax_loss_layer_ocl.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, warn};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error`, `fs::File`, `io::ErrorKind`, and `io::prelude::*`
[INFO] [stdout]  --> src/optimizers/optim_ocl.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, fs::File, io::prelude::*, io::ErrorKind};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/util/util.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::ser::{Serializer};
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> src/util/with_params.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::Hash};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/models/sequential.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cell::RefCell`
[INFO] [stdout]   --> src/models/sequential.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{cell::RefCell, fs};
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/models/sequential.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | use log::{debug, error, info};
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/models/model_helper.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> src/models/model_helper.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str::FromStr`
[INFO] [stdout]  --> src/models/model_helper.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{str::FromStr, sync::Arc, cell::RefCell};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeBuffer`
[INFO] [stdout]  --> src/models/model_helper.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::cpu_params::{VariantParamArc, TypeBuffer};
[INFO] [stdout]   |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PbBufBlob`
[INFO] [stdout]  --> src/models/model_helper.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::pb::{PbBuf, PbBufBlob};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/models/sequential_ocl.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ops::{Deref, DerefMut},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandQueueProperties` and `MapFlags`
[INFO] [stdout]   --> src/models/sequential_ocl.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use ocl::flags::{CommandQueueProperties, MapFlags, MemFlags};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `Kernel`, `Program`, and `Result as OclResult`
[INFO] [stdout]   --> src/models/sequential_ocl.rs:24:36
[INFO] [stdout]    |
[INFO] [stdout] 24 | use ocl::{Buffer, Context, Device, Event, Kernel, Platform, Program, Queue, Result as OclResult};
[INFO] [stdout]    |                                    ^^^^^  ^^^^^^            ^^^^^^^         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]  --> src/models/mod.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{error::Error, rc::Rc, cell::RefCell};
[INFO] [stdout]   |                         ^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `layers_storage::SerdeLayersStorage`
[INFO] [stdout]  --> src/models/mod.rs:7:60
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::{util::*, layers::AbstractLayer, cpu_params::*, layers_storage::SerdeLayersStorage};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::*`
[INFO] [stdout]  --> src/layer_fabric.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]  --> src/cpu_params.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::debug;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand::rngs::SmallRng`
[INFO] [stdout]   --> src/cpu_params.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ndarray_rand::rand::rngs::SmallRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand::SeedableRng`
[INFO] [stdout]   --> src/cpu_params.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray_rand::rand::SeedableRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Distribution`
[INFO] [stdout]   --> src/cpu_params.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ndarray_rand::rand_distr::{Distribution, Uniform};
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Float` and `WsBlob`
[INFO] [stdout]   --> src/cpu_params.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::util::{Array1D, Array2D, Float, WsBlob, WsMat};
[INFO] [stdout]    |                                     ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/orchestra.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::{debug, error, info, warn};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]   --> src/orchestra.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | use ndarray::{Axis, Zip};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::widgets::canvas::Shape`
[INFO] [stdout]  --> src/ocl.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tui::widgets::canvas::Shape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Device`, and `ProQue`
[INFO] [stdout]  --> src/ocl.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ocl::{Buffer, Context, Device, MemFlags, ProQue, Queue};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/layers/euclidean_loss_layer.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, info};
[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: `Array1`
[INFO] [stdout]   --> src/layers/softmax_loss_layer.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray::{Array1, Axis, Zip, indices};
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `info` and `warn`
[INFO] [stdout]   --> src/layers/softmax_loss_layer.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::{debug, info, warn};
[INFO] [stdout]    |                  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Buffer`, `MemFlags`, and `ProQue`
[INFO] [stdout]  --> src/layers/abstract_layer_ocl.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ocl::{Buffer, Context, Device, MemFlags, ProQue, Queue};
[INFO] [stdout]   |           ^^^^^^                   ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MemFlags`
[INFO] [stdout]   --> src/layers/fc_layer_ocl.rs:10:44
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ocl::{Buffer, Context, Device, Kernel, MemFlags, Program, Queue};
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/layers/input_layer_ocl.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DerefMut`
[INFO] [stdout]   --> src/layers/euclidean_loss_layer_ocl.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ops::{Deref, DerefMut},
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/layers/softmax_loss_layer_ocl.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, warn};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error`, `fs::File`, `io::ErrorKind`, and `io::prelude::*`
[INFO] [stdout]  --> src/optimizers/optim_ocl.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, fs::File, io::prelude::*, io::ErrorKind};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/util/util.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::ser::{Serializer};
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> src/util/with_params.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::Hash};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/models/sequential.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cell::RefCell`
[INFO] [stdout]   --> src/models/sequential.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{cell::RefCell, fs};
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/models/sequential.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | use log::{debug, error, info};
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/models/model_helper.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array2`
[INFO] [stdout]  --> src/models/model_helper.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::Array2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str::FromStr`
[INFO] [stdout]  --> src/models/model_helper.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::{str::FromStr, sync::Arc, cell::RefCell};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeBuffer`
[INFO] [stdout]  --> src/models/model_helper.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::cpu_params::{VariantParamArc, TypeBuffer};
[INFO] [stdout]   |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PbBufBlob`
[INFO] [stdout]  --> src/models/model_helper.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::pb::{PbBuf, PbBufBlob};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/models/sequential_ocl.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ops::{Deref, DerefMut},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandQueueProperties` and `MapFlags`
[INFO] [stdout]   --> src/models/sequential_ocl.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use ocl::flags::{CommandQueueProperties, MapFlags, MemFlags};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `Kernel`, `Program`, and `Result as OclResult`
[INFO] [stdout]   --> src/models/sequential_ocl.rs:24:36
[INFO] [stdout]    |
[INFO] [stdout] 24 | use ocl::{Buffer, Context, Device, Event, Kernel, Platform, Program, Queue, Result as OclResult};
[INFO] [stdout]    |                                    ^^^^^  ^^^^^^            ^^^^^^^         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]  --> src/models/mod.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{error::Error, rc::Rc, cell::RefCell};
[INFO] [stdout]   |                         ^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `layers_storage::SerdeLayersStorage`
[INFO] [stdout]  --> src/models/mod.rs:7:60
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::{util::*, layers::AbstractLayer, cpu_params::*, layers_storage::SerdeLayersStorage};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::*`
[INFO] [stdout]  --> src/layer_fabric.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]  --> src/cpu_params.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::debug;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand::rngs::SmallRng`
[INFO] [stdout]   --> src/cpu_params.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ndarray_rand::rand::rngs::SmallRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_rand::rand::SeedableRng`
[INFO] [stdout]   --> src/cpu_params.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray_rand::rand::SeedableRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Distribution`
[INFO] [stdout]   --> src/cpu_params.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | use ndarray_rand::rand_distr::{Distribution, Uniform};
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Float` and `WsBlob`
[INFO] [stdout]   --> src/cpu_params.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::util::{Array1D, Array2D, Float, WsBlob, WsMat};
[INFO] [stdout]    |                                     ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/orchestra.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::{debug, error, info, warn};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]   --> src/orchestra.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | use ndarray::{Axis, Zip};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::widgets::canvas::Shape`
[INFO] [stdout]  --> src/ocl.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tui::widgets::canvas::Shape;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Device`, and `ProQue`
[INFO] [stdout]  --> src/ocl.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ocl::{Buffer, Context, Device, MemFlags, ProQue, Queue};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_input`
[INFO] [stdout]   --> src/layers/dummy_layer.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         prev_input: ParamsBlob,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_input`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/layers/dummy_layer.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         input: ParamsBlob,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]   --> src/layers/dummy_layer.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn set_input_shape(&mut self, sh: &[usize]) {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]   --> src/layers/input_layer.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn set_input_shape(&mut self, sh: &[usize]) {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lp`
[INFO] [stdout]    --> src/layers/fc_layer_ocl.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn set_cpu_params(&mut self, lp: CpuParams) {}
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_lp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lp`
[INFO] [stdout]   --> src/layers/input_layer_ocl.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn set_cpu_params(&mut self, lp: CpuParams) {}
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_lp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]   --> src/layers/input_layer_ocl.rs:58:35
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn set_input_shape(&mut self, sh: &[usize]) {}
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/layers/input_layer_ocl.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn forward_ocl(&mut self, params: OclParamsBlob) -> LayerOclResult {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |             OclActivationFunc::Sigmoid => OCL_ACTIVATION_SIGMOID,
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] 205 |             OclActivationFunc::Tanh => OCL_ACTIVATION_TANH,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 206 |             OclActivationFunc::ReLU => OCL_ACTIVATION_RELU,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 207 |             OclActivationFunc::Raw => OCL_ACTIVATION_RAW,
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] 208 |             OclActivationFunc::LeakyReLU => OCL_ACTIVATION_LEAKY_RELU,
[INFO] [stdout] 209 |             _ => todo!(),
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |             OclActivationFunc::Sigmoid => OCL_ACTIVATION_SIGMOID_DERIV,
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] 214 |             OclActivationFunc::Tanh => OCL_ACTIVATION_TANH_DERIV,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 215 |             OclActivationFunc::ReLU => OCL_ACTIVATION_RELU_DERIV,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 216 |             OclActivationFunc::LeakyReLU => OCL_ACTIVATION_LEAKY_RELU_DERIV,
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] 217 |             OclActivationFunc::Raw => OCL_ACTIVATION_RAW_DERIV,
[INFO] [stdout] 218 |             _ => todo!(),
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_input`
[INFO] [stdout]   --> src/layers/dummy_layer.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         prev_input: ParamsBlob,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_input`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/layers/dummy_layer.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         input: ParamsBlob,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]   --> src/layers/dummy_layer.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn set_input_shape(&mut self, sh: &[usize]) {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]  --> src/util/with_params.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn set_cfg(&mut self, args: &HashMap<String, Variant>) { }
[INFO] [stdout]   |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> src/models/sequential.rs:126:23
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut out = None;
[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: unreachable pattern
[INFO] [stdout]    --> src/models/sequential.rs:299:21
[INFO] [stdout]     |
[INFO] [stdout] 299 |                     _ => {
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/models/sequential.rs:299:21
[INFO] [stdout]     |
[INFO] [stdout] 285 |                     VariantParamArc::Array2(arr2) => {
[INFO] [stdout]     |                     ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 292 |                     VariantParamArc::Array1(arr1) => {
[INFO] [stdout]     |                     ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 299 |                     _ => {
[INFO] [stdout]     |                     ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]   --> src/layers/input_layer.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn set_input_shape(&mut self, sh: &[usize]) {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lp`
[INFO] [stdout]    --> src/layers/fc_layer_ocl.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn set_cpu_params(&mut self, lp: CpuParams) {}
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_lp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> src/models/sequential_ocl.rs:214:23
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let mut out = None;
[INFO] [stdout]     |                       ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lp`
[INFO] [stdout]   --> src/layers/input_layer_ocl.rs:56:34
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn set_cpu_params(&mut self, lp: CpuParams) {}
[INFO] [stdout]    |                                  ^^ help: if this is intentional, prefix it with an underscore: `_lp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]   --> src/layers/input_layer_ocl.rs:58:35
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn set_input_shape(&mut self, sh: &[usize]) {}
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/layers/input_layer_ocl.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn forward_ocl(&mut self, params: OclParamsBlob) -> LayerOclResult {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]    --> src/models/sequential_ocl.rs:444:30
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn clone_from(&mut self, source: &Self) {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |             OclActivationFunc::Sigmoid => OCL_ACTIVATION_SIGMOID,
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] 205 |             OclActivationFunc::Tanh => OCL_ACTIVATION_TANH,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 206 |             OclActivationFunc::ReLU => OCL_ACTIVATION_RELU,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 207 |             OclActivationFunc::Raw => OCL_ACTIVATION_RAW,
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] 208 |             OclActivationFunc::LeakyReLU => OCL_ACTIVATION_LEAKY_RELU,
[INFO] [stdout] 209 |             _ => todo!(),
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |             OclActivationFunc::Sigmoid => OCL_ACTIVATION_SIGMOID_DERIV,
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] 214 |             OclActivationFunc::Tanh => OCL_ACTIVATION_TANH_DERIV,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 215 |             OclActivationFunc::ReLU => OCL_ACTIVATION_RELU_DERIV,
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 216 |             OclActivationFunc::LeakyReLU => OCL_ACTIVATION_LEAKY_RELU_DERIV,
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] 217 |             OclActivationFunc::Raw => OCL_ACTIVATION_RAW_DERIV,
[INFO] [stdout] 218 |             _ => todo!(),
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]  --> src/util/with_params.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn set_cfg(&mut self, args: &HashMap<String, Variant>) { }
[INFO] [stdout]   |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> src/models/sequential.rs:126:23
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut out = None;
[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: unused variable: `queue`
[INFO] [stdout]   --> src/ocl.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn only_output(buf: Buffer<f32>, queue: Queue) -> Self {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_queue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/models/sequential.rs:299:21
[INFO] [stdout]     |
[INFO] [stdout] 299 |                     _ => {
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/models/sequential.rs:299:21
[INFO] [stdout]     |
[INFO] [stdout] 285 |                     VariantParamArc::Array2(arr2) => {
[INFO] [stdout]     |                     ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 292 |                     VariantParamArc::Array1(arr1) => {
[INFO] [stdout]     |                     ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 299 |                     _ => {
[INFO] [stdout]     |                     ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]   --> src/layers/dummy_layer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct DummyLayer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 10 |     output: DataVec,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DummyLayer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers/abstract_layer.rs:74:23
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/softmax_loss_layer.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers/input_layer.rs:58:23
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/fc_layer_ocl.rs:146:23
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers/input_layer_ocl.rs:48:23
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/softmax_loss_layer_ocl.rs:136:23
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out` is never read
[INFO] [stdout]    --> src/models/sequential_ocl.rs:214:23
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let mut out = None;
[INFO] [stdout]     |                       ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers_storage.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn iter_mut(&mut self) -> IterMut<Box<dyn AbstractLayer>>;
[INFO] [stdout]    |                 ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn iter_mut(&mut self) -> IterMut<'_, Box<dyn AbstractLayer>>;
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers_storage.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers_storage.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> std::slice::Iter<Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> std::slice::Iter<'_, Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]    --> src/models/sequential_ocl.rs:444:30
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn clone_from(&mut self, source: &Self) {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> examples/mnist/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::DerefMut;
[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: `print_sample_image`
[INFO] [stdout]   --> examples/mnist/main.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rust_mnist::{print_sample_image, Mnist};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue`
[INFO] [stdout]   --> src/ocl.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn only_output(buf: Buffer<f32>, queue: Queue) -> Self {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_queue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/bin/tool/test.rs:1:11
[INFO] [stdout]    |
[INFO] [stdout]  1 | use log::{error, info, warn};
[INFO] [stdout]    |           ^^^^^        ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> src/bin/tool/main.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub mod test;
[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::time::Instant`
[INFO] [stdout]   --> src/bin/tool/test.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> src/bin/tool/main.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub mod test;
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arg`
[INFO] [stdout]  --> src/bin/tool/train_tui.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{Arg, ArgMatches};
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/bin/tool/train_tui.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{error, info};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Corner` and `ListState`
[INFO] [stdout]   --> src/bin/tool/train_tui.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |     layout::{Constraint, Corner, Direction, Layout},
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     widgets::{Axis, Block, Borders, Chart, Dataset, GraphType, List, ListItem, ListState},
[INFO] [stdout]    |                                                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]   --> src/layers/dummy_layer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct DummyLayer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 10 |     output: DataVec,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DummyLayer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers/abstract_layer.rs:74:23
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/softmax_loss_layer.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers/input_layer.rs:58:23
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/fc_layer_ocl.rs:146:23
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers/input_layer_ocl.rs:48:23
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/euclidean_loss_layer_ocl.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/layers/softmax_loss_layer_ocl.rs:136:23
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn trainable_bufs(&self) -> TrainableBufsIds {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn trainable_bufs(&self) -> TrainableBufsIds<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers_storage.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn iter_mut(&mut self) -> IterMut<Box<dyn AbstractLayer>>;
[INFO] [stdout]    |                 ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn iter_mut(&mut self) -> IterMut<'_, Box<dyn AbstractLayer>>;
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers_storage.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/layers_storage.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> std::slice::Iter<Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> std::slice::Iter<'_, Box<dyn AbstractLayer>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/bin/tool/test.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{error, info, warn};
[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::time::Instant`
[INFO] [stdout]  --> src/bin/tool/test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arg`
[INFO] [stdout]  --> src/bin/tool/train_tui.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use clap::{Arg, ArgMatches};
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/bin/tool/train_tui.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{error, info};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Corner` and `ListState`
[INFO] [stdout]   --> src/bin/tool/train_tui.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |     layout::{Constraint, Corner, Direction, Layout},
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     widgets::{Axis, Block, Borders, Chart, Dataset, GraphType, List, ListItem, ListState},
[INFO] [stdout]    |                                                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Backend`
[INFO] [stdout]   --> src/bin/tool/train_tui.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     backend::{Backend, CrosstermBackend},
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Backend`
[INFO] [stdout]   --> src/bin/tool/train_tui.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     backend::{Backend, CrosstermBackend},
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         sender.send(NetMsg::InitInfo(epoch_size, train_batch_size));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let _ = sender.send(NetMsg::InitInfo(epoch_size, train_batch_size));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |             net.train_for_error_or_iter(*err, *max_iter);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let _ = net.train_for_error_or_iter(*err, *max_iter);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             net.train_for_error(*err);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let _ = net.train_for_error(*err);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |             net.train_for_n_times(*max_iter);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 360 |             let _ = net.train_for_n_times(*max_iter);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:402:5
[INFO] [stdout]     |
[INFO] [stdout] 402 |     join_handle.join().expect("Failed to join learning thread!");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 402 |     let _ = join_handle.join().expect("Failed to join learning thread!");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         sender.send(NetMsg::InitInfo(epoch_size, train_batch_size));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let _ = sender.send(NetMsg::InitInfo(epoch_size, train_batch_size));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |             net.train_for_error_or_iter(*err, *max_iter);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let _ = net.train_for_error_or_iter(*err, *max_iter);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:357:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             net.train_for_error(*err);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 357 |             let _ = net.train_for_error(*err);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |             net.train_for_n_times(*max_iter);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 360 |             let _ = net.train_for_n_times(*max_iter);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/tool/train_tui.rs:402:5
[INFO] [stdout]     |
[INFO] [stdout] 402 |     join_handle.join().expect("Failed to join learning thread!");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 402 |     let _ = join_handle.join().expect("Failed to join learning thread!");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.52s
[INFO] running `Command { std: "docker" "inspect" "ff8df6611478dba31e97f7622f6a24c70e9424c611b44ace8b45b00f13f49b13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff8df6611478dba31e97f7622f6a24c70e9424c611b44ace8b45b00f13f49b13", kill_on_drop: false }`
[INFO] [stdout] ff8df6611478dba31e97f7622f6a24c70e9424c611b44ace8b45b00f13f49b13
