[INFO] cloning repository https://github.com/cbl/robit
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cbl/robit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcbl%2Frobit", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcbl%2Frobit'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e694146298bd5b6658acac2daa4737dbf95573fd
[INFO] checking cbl/robit against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcbl%2Frobit" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/cbl/robit
[INFO] finished tweaking git repo https://github.com/cbl/robit
[INFO] tweaked toml for git repo https://github.com/cbl/robit written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/cbl/robit on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/cbl/robit already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rkyv_derive v0.7.39
[INFO] [stderr]   Downloaded bytecheck v0.6.9
[INFO] [stderr]   Downloaded bytecheck_derive v0.6.9
[INFO] [stderr]   Downloaded ndarray-rand v0.14.0
[INFO] [stderr]   Downloaded rust_decimal_macros v1.28.0
[INFO] [stderr]   Downloaded rend v0.3.6
[INFO] [stderr]   Downloaded mnist v0.5.0
[INFO] [stderr]   Downloaded bytemuck v1.13.0
[INFO] [stderr]   Downloaded simba v0.8.0
[INFO] [stderr]   Downloaded rkyv v0.7.39
[INFO] [stderr]   Downloaded rust_decimal v1.28.0
[INFO] [stderr]   Downloaded nalgebra v0.32.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4310e1c643c62b07ddae5e7d32c0718822c1ec0d3586a0c233f02ded49e38e22
[INFO] running `Command { std: "docker" "start" "-a" "4310e1c643c62b07ddae5e7d32c0718822c1ec0d3586a0c233f02ded49e38e22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4310e1c643c62b07ddae5e7d32c0718822c1ec0d3586a0c233f02ded49e38e22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4310e1c643c62b07ddae5e7d32c0718822c1ec0d3586a0c233f02ded49e38e22", kill_on_drop: false }`
[INFO] [stdout] 4310e1c643c62b07ddae5e7d32c0718822c1ec0d3586a0c233f02ded49e38e22
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b51fdd034ade39abe76fddab5fe2d6e0442ecaebf75001fa73b47c359991ba4c
[INFO] running `Command { std: "docker" "start" "-a" "b51fdd034ade39abe76fddab5fe2d6e0442ecaebf75001fa73b47c359991ba4c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libm v0.2.6
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling paste v1.0.11
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]     Checking bytemuck v1.13.0
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.50
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling rust_decimal v1.28.0
[INFO] [stderr]    Compiling arrayvec v0.7.2
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]     Checking mnist v0.5.0
[INFO] [stderr]     Checking matrixmultiply v0.3.2
[INFO] [stderr]     Checking safe_arch v0.6.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking wide v0.7.5
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num-complex v0.4.3
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling rust_decimal_macros v1.28.0
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking simba v0.8.0
[INFO] [stderr]    Compiling nalgebra-macros v0.2.0
[INFO] [stderr]     Checking ndarray-rand v0.14.0
[INFO] [stderr]     Checking nalgebra v0.32.1
[INFO] [stderr]     Checking robit v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ops::Div`
[INFO] [stdout]  --> src/activations/mod.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, ops::Div};
[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/activations/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array1, Array2};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Float`
[INFO] [stdout]  --> src/activations/mod.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_traits::{Float, One, Zero};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrideShape`
[INFO] [stdout]  --> src/initializers/ones.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{Array, Dimension, ShapeBuilder, StrideShape};
[INFO] [stdout]   |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Range`
[INFO] [stdout]  --> src/initializers/random_distr.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{marker::PhantomData, ops::Range};
[INFO] [stdout]   |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrideShape`
[INFO] [stdout]  --> src/initializers/random_distr.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array, Dimension, ShapeBuilder, StrideShape};
[INFO] [stdout]   |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng`, `rngs::ThreadRng`, and `thread_rng`
[INFO] [stdout]  --> src/initializers/random_distr.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::{rngs::ThreadRng, thread_rng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrideShape`
[INFO] [stdout]  --> src/initializers/zeros.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{Array, Dimension, ShapeBuilder, StrideShape};
[INFO] [stdout]   |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iter::Sum`
[INFO] [stdout]  --> src/losses/mse.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Array`, `Ix1`, `Ix2`, and `ViewRepr`
[INFO] [stdout]  --> src/losses/mse.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{Array, Array1, Array2, ArrayBase, Ix1, Ix2, ViewRepr, ScalarOperand};
[INFO] [stdout]   |               ^^^^^                  ^^^^^^^^^  ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Pow`
[INFO] [stdout]  --> src/losses/mse.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use num_traits::{FromPrimitive, One, Pow, Zero};
[INFO] [stdout]   |                                 ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Ix1`, `Ix2`, and `ViewRepr`
[INFO] [stdout]  --> src/losses/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array1, Array2, ArrayBase, Ix1, Ix2, ViewRepr};
[INFO] [stdout]   |                               ^^^^^^^^^  ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Div`, `Sub`, `iter::Sum`, and `process::Output`
[INFO] [stdout]  --> src/model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 4 |     ops::{Div, Mul, Sub, SubAssign},
[INFO] [stdout]   |           ^^^       ^^^
[INFO] [stdout] 5 |     process::Output,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix1` and `Ix2`
[INFO] [stdout]  --> src/model.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 |     s, Array1, Array2, Axis, Ix1, Ix2, LinalgScalar,
[INFO] [stdout]   |                              ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model.rs:57:75
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn add_layer<I: Initializer<T>>(&mut self, shape: (usize, usize), mut init: I) {
[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: `n_features`
[INFO] [stdout]   --> src/model.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let n_features = X.shape()[1];
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_features`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> src/model.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn fit(&mut self, X: &Array2<T>, Y: &Array2<T>) {
[INFO] [stdout]    |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Y` should have a snake case name
[INFO] [stdout]   --> src/model.rs:81:42
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn fit(&mut self, X: &Array2<T>, Y: &Array2<T>) {
[INFO] [stdout]    |                                          ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/model.rs:104:33
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn backpropagate(&mut self, X: Array2<T>, error: Array1<T>) {
[INFO] [stdout]     |                                 ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Div`
[INFO] [stdout]  --> src/activations/mod.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, ops::Div};
[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/activations/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array1, Array2};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Float`
[INFO] [stdout]  --> src/activations/mod.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_traits::{Float, One, Zero};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrideShape`
[INFO] [stdout]  --> src/initializers/ones.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{Array, Dimension, ShapeBuilder, StrideShape};
[INFO] [stdout]   |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Range`
[INFO] [stdout]  --> src/initializers/random_distr.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{marker::PhantomData, ops::Range};
[INFO] [stdout]   |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrideShape`
[INFO] [stdout]  --> src/initializers/random_distr.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array, Dimension, ShapeBuilder, StrideShape};
[INFO] [stdout]   |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng`, `rngs::ThreadRng`, and `thread_rng`
[INFO] [stdout]  --> src/initializers/random_distr.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::{rngs::ThreadRng, thread_rng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrideShape`
[INFO] [stdout]  --> src/initializers/zeros.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{Array, Dimension, ShapeBuilder, StrideShape};
[INFO] [stdout]   |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iter::Sum`
[INFO] [stdout]  --> src/losses/mse.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Array`, `Ix1`, `Ix2`, and `ViewRepr`
[INFO] [stdout]  --> src/losses/mse.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ndarray::{Array, Array1, Array2, ArrayBase, Ix1, Ix2, ViewRepr, ScalarOperand};
[INFO] [stdout]   |               ^^^^^                  ^^^^^^^^^  ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Pow`
[INFO] [stdout]  --> src/losses/mse.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use num_traits::{FromPrimitive, One, Pow, Zero};
[INFO] [stdout]   |                                 ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Ix1`, `Ix2`, and `ViewRepr`
[INFO] [stdout]  --> src/losses/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array1, Array2, ArrayBase, Ix1, Ix2, ViewRepr};
[INFO] [stdout]   |                               ^^^^^^^^^  ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Div`, `Sub`, `iter::Sum`, and `process::Output`
[INFO] [stdout]  --> src/model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     iter::Sum,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 4 |     ops::{Div, Mul, Sub, SubAssign},
[INFO] [stdout]   |           ^^^       ^^^
[INFO] [stdout] 5 |     process::Output,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix1` and `Ix2`
[INFO] [stdout]  --> src/model.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 |     s, Array1, Array2, Axis, Ix1, Ix2, LinalgScalar,
[INFO] [stdout]   |                              ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_true`
[INFO] [stdout]   --> src/losses/mse.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let y_true = [0.6, 0.3];
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_true`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_pred`
[INFO] [stdout]   --> src/losses/mse.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let y_pred = [0.3, 0.1];
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_pred`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mse`
[INFO] [stdout]   --> src/losses/mse.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mse = MeanSquaredError::default();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_true`
[INFO] [stdout]   --> src/losses/mse.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let y_true = [0.6, 0.3];
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_pred`
[INFO] [stdout]   --> src/losses/mse.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let y_pred = [0.6, 0.3];
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_pred`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mse`
[INFO] [stdout]   --> src/losses/mse.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mse = MeanSquaredError::default();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_true`
[INFO] [stdout]   --> src/losses/mse.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let y_true = [dec!(0.6), dec!(0.3)];
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_pred`
[INFO] [stdout]   --> src/losses/mse.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let y_pred = [dec!(0.3), dec!(0.1)];
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_pred`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mse`
[INFO] [stdout]   --> src/losses/mse.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mse = MeanSquaredError::default();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model.rs:57:75
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn add_layer<I: Initializer<T>>(&mut self, shape: (usize, usize), mut init: I) {
[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 imports: `marker::PhantomData` and `ops::SubAssign`
[INFO] [stdout]  --> src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{marker::PhantomData, ops::SubAssign, time::Instant};
[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: `itertools::Itertools`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Array3`, `ArrayBase`, `ArrayD`, `Array`, `Axis`, `Data`, `Ix1`, `Ix2`, `LinalgScalar`, `arr1`, `arr2`, `linalg::Dot`, and `s`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     arr1, arr2, linalg::Dot, s, Array, Array1, Array2, Array3, ArrayBase, ArrayD, Axis, Data, Ix1,
[INFO] [stdout]   |     ^^^^  ^^^^  ^^^^^^^^^^^  ^  ^^^^^  ^^^^^^          ^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^  ^^^^  ^^^
[INFO] [stdout] 7 |     Ix2, LinalgScalar,
[INFO] [stdout]   |     ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::One`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num_traits::One;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StandardNormal`
[INFO] [stdout]   --> src/main.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand_distr::{Normal, StandardNormal};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_features`
[INFO] [stdout]   --> src/model.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let n_features = X.shape()[1];
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_features`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> src/model.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn fit(&mut self, X: &Array2<T>, Y: &Array2<T>) {
[INFO] [stdout]    |                           ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Y` should have a snake case name
[INFO] [stdout]   --> src/model.rs:81:42
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn fit(&mut self, X: &Array2<T>, Y: &Array2<T>) {
[INFO] [stdout]    |                                          ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]    --> src/model.rs:104:33
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn backpropagate(&mut self, X: Array2<T>, error: Array1<T>) {
[INFO] [stdout]     |                                 ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `marker::PhantomData` and `ops::SubAssign`
[INFO] [stdout]  --> src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{marker::PhantomData, ops::SubAssign, time::Instant};
[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: `itertools::Itertools`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1`, `Array3`, `ArrayBase`, `ArrayD`, `Array`, `Axis`, `Data`, `Ix1`, `Ix2`, `LinalgScalar`, `arr1`, `arr2`, `linalg::Dot`, and `s`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     arr1, arr2, linalg::Dot, s, Array, Array1, Array2, Array3, ArrayBase, ArrayD, Axis, Data, Ix1,
[INFO] [stdout]   |     ^^^^  ^^^^  ^^^^^^^^^^^  ^  ^^^^^  ^^^^^^          ^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^  ^^^^  ^^^
[INFO] [stdout] 7 |     Ix2, LinalgScalar,
[INFO] [stdout]   |     ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::One`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num_traits::One;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StandardNormal`
[INFO] [stdout]   --> src/main.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand_distr::{Normal, StandardNormal};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.61s
[INFO] running `Command { std: "docker" "inspect" "b51fdd034ade39abe76fddab5fe2d6e0442ecaebf75001fa73b47c359991ba4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b51fdd034ade39abe76fddab5fe2d6e0442ecaebf75001fa73b47c359991ba4c", kill_on_drop: false }`
[INFO] [stdout] b51fdd034ade39abe76fddab5fe2d6e0442ecaebf75001fa73b47c359991ba4c
