[INFO] cloning repository https://github.com/kyunghyunHan/reinforcement_learning
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kyunghyunHan/reinforcement_learning" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FkyunghyunHan%2Freinforcement_learning", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FkyunghyunHan%2Freinforcement_learning'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 78d2dcb0f795cb10721f74f3fbc1d5dbac830f9d
[INFO] testing kyunghyunHan/reinforcement_learning against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FkyunghyunHan%2Freinforcement_learning" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kyunghyunHan/reinforcement_learning
[INFO] finished tweaking git repo https://github.com/kyunghyunHan/reinforcement_learning
[INFO] tweaked toml for git repo https://github.com/kyunghyunHan/reinforcement_learning written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kyunghyunHan/reinforcement_learning on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kyunghyunHan/reinforcement_learning 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fe84934d52884020cb11dfb3d838b5574ea5579abf324e4cf58e0eb5317452e8
[INFO] running `Command { std: "docker" "start" "-a" "fe84934d52884020cb11dfb3d838b5574ea5579abf324e4cf58e0eb5317452e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe84934d52884020cb11dfb3d838b5574ea5579abf324e4cf58e0eb5317452e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe84934d52884020cb11dfb3d838b5574ea5579abf324e4cf58e0eb5317452e8", kill_on_drop: false }`
[INFO] [stdout] fe84934d52884020cb11dfb3d838b5574ea5579abf324e4cf58e0eb5317452e8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cfb19fbb5ea014fb42d91d568551c9affcd9ef8bda281ac59bf6142a14c8f56b
[INFO] running `Command { std: "docker" "start" "-a" "cfb19fbb5ea014fb42d91d568551c9affcd9ef8bda281ac59bf6142a14c8f56b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.87
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling noisy_float v0.2.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling ndarray v0.17.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling ndarray-stats v0.6.0
[INFO] [stderr]    Compiling rl_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ndarray::s`
[INFO] [stdout]   --> src/model_free/bandit.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ndarray::s;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]   --> src/model_free/bandit.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray::{Array1, Array2};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model_free::bandit`
[INFO] [stdout]   --> src/model_free/bandit.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::model_free::bandit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread::yield_now`
[INFO] [stdout]  --> src/model_free/grid_word.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, thread::yield_now};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/model_free/bandit.rs:30:29
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/model_free/bandit.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/q_learning.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::thread_rng;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/q_learning.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut rng = thread_rng();
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:25:57
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let rates = Array1::from_shape_fn(arms, |_| rng.gen_range(0.0..1.0));
[INFO] [stdout]    |                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if rate > rng.gen_range(0.0..1.0) {
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:61:37
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let random_value: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             rng.gen_range(0..self.qs.len())
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/model_free/bandit.rs:117:31
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/model_free/bandit.rs:133:31
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/q_learning.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let action = if rng.gen::<f32>() < epsilon {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/model_free/bandit.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     for i in 0..3 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model_free/bandit.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let mut bandit = Bandit::new(20);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut new_v = v.clone();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_v`
[INFO] [stdout]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut new_v = v.clone();
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn test() {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test2` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn test2() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test3` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn test3() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Action` is never used
[INFO] [stdout]  --> src/model_free/grid_word.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Action {
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u32` and `to_str` are never used
[INFO] [stdout]   --> src/model_free/grid_word.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Action {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 12 |     fn from_u32(value: u32) -> Option<Action> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn to_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `action_meaning`, `goal_state`, `wall_state`, `start_state`, and `agent_state` are never read
[INFO] [stdout]   --> src/model_free/grid_word.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct GridWorld {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 33 |     action_space: Array1<i32>,
[INFO] [stdout] 34 |     action_meaning: HashMap<i32, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     reward_map: Array2<Option<f32>>,
[INFO] [stdout] 36 |     goal_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 37 |     wall_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     start_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     agent_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GridWorld` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meaning` is never constructed
[INFO] [stdout]   --> src/model_free/grid_word.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Meaning {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `dynamic_programming`, `grid_word`, and `q_learning`
[INFO] [stdout]  --> src/main.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rl_rs::{model_free::{bandit, dynamic_programming,grid_word}, q_learning};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^   ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.49s
[INFO] running `Command { std: "docker" "inspect" "cfb19fbb5ea014fb42d91d568551c9affcd9ef8bda281ac59bf6142a14c8f56b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cfb19fbb5ea014fb42d91d568551c9affcd9ef8bda281ac59bf6142a14c8f56b", kill_on_drop: false }`
[INFO] [stdout] cfb19fbb5ea014fb42d91d568551c9affcd9ef8bda281ac59bf6142a14c8f56b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bdf9e4364a8d82a056f3f4798e30f4b71079fac60719e7984ddb5f69ec1e859c
[INFO] running `Command { std: "docker" "start" "-a" "bdf9e4364a8d82a056f3f4798e30f4b71079fac60719e7984ddb5f69ec1e859c", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `ndarray::s`
[INFO] [stdout]   --> src/model_free/bandit.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ndarray::s;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]   --> src/model_free/bandit.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray::{Array1, Array2};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model_free::bandit`
[INFO] [stdout]   --> src/model_free/bandit.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::model_free::bandit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread::yield_now`
[INFO] [stdout]  --> src/model_free/grid_word.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, thread::yield_now};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/model_free/bandit.rs:30:29
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/model_free/bandit.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/q_learning.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::thread_rng;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/q_learning.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut rng = thread_rng();
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:25:57
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let rates = Array1::from_shape_fn(arms, |_| rng.gen_range(0.0..1.0));
[INFO] [stdout]    |                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if rate > rng.gen_range(0.0..1.0) {
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:61:37
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let random_value: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             rng.gen_range(0..self.qs.len())
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/model_free/bandit.rs:117:31
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/model_free/bandit.rs:133:31
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/q_learning.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let action = if rng.gen::<f32>() < epsilon {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/model_free/bandit.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     for i in 0..3 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rl_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model_free/bandit.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let mut bandit = Bandit::new(20);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut new_v = v.clone();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_v`
[INFO] [stdout]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut new_v = v.clone();
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn test() {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test2` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn test2() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test3` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn test3() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Action` is never used
[INFO] [stdout]  --> src/model_free/grid_word.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Action {
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u32` and `to_str` are never used
[INFO] [stdout]   --> src/model_free/grid_word.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Action {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 12 |     fn from_u32(value: u32) -> Option<Action> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn to_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `action_meaning`, `goal_state`, `wall_state`, `start_state`, and `agent_state` are never read
[INFO] [stdout]   --> src/model_free/grid_word.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct GridWorld {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 33 |     action_space: Array1<i32>,
[INFO] [stdout] 34 |     action_meaning: HashMap<i32, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     reward_map: Array2<Option<f32>>,
[INFO] [stdout] 36 |     goal_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 37 |     wall_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     start_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     agent_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GridWorld` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meaning` is never constructed
[INFO] [stdout]   --> src/model_free/grid_word.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Meaning {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::s`
[INFO] [stdout]   --> src/model_free/bandit.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ndarray::s;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array2`
[INFO] [stdout]   --> src/model_free/bandit.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ndarray::{Array1, Array2};
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model_free::bandit`
[INFO] [stdout]   --> src/model_free/bandit.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::model_free::bandit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread::yield_now`
[INFO] [stdout]  --> src/model_free/grid_word.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, thread::yield_now};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/model_free/bandit.rs:30:29
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/model_free/bandit.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/q_learning.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::thread_rng;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/q_learning.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut rng = thread_rng();
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `dynamic_programming`, `grid_word`, and `q_learning`
[INFO] [stdout]  --> src/main.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rl_rs::{model_free::{bandit, dynamic_programming,grid_word}, q_learning};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^   ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:25:57
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let rates = Array1::from_shape_fn(arms, |_| rng.gen_range(0.0..1.0));
[INFO] [stdout]    |                                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |         if rate > rng.gen_range(0.0..1.0) {
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:61:37
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let random_value: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/model_free/bandit.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             rng.gen_range(0..self.qs.len())
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/model_free/bandit.rs:117:31
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/model_free/bandit.rs:133:31
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/q_learning.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let action = if rng.gen::<f32>() < epsilon {
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/model_free/bandit.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     for i in 0..3 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model_free/bandit.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let mut bandit = Bandit::new(20);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut new_v = v.clone();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_v`
[INFO] [stdout]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let mut new_v = v.clone();
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn test() {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test2` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn test2() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test3` is never used
[INFO] [stdout]    --> src/model_free/bandit.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn test3() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Action` is never used
[INFO] [stdout]  --> src/model_free/grid_word.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Action {
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u32` and `to_str` are never used
[INFO] [stdout]   --> src/model_free/grid_word.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Action {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 12 |     fn from_u32(value: u32) -> Option<Action> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn to_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `action_meaning`, `goal_state`, `wall_state`, `start_state`, and `agent_state` are never read
[INFO] [stdout]   --> src/model_free/grid_word.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct GridWorld {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 33 |     action_space: Array1<i32>,
[INFO] [stdout] 34 |     action_meaning: HashMap<i32, String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     reward_map: Array2<Option<f32>>,
[INFO] [stdout] 36 |     goal_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 37 |     wall_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     start_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     agent_state: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GridWorld` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meaning` is never constructed
[INFO] [stdout]   --> src/model_free/grid_word.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Meaning {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] running `Command { std: "docker" "inspect" "bdf9e4364a8d82a056f3f4798e30f4b71079fac60719e7984ddb5f69ec1e859c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bdf9e4364a8d82a056f3f4798e30f4b71079fac60719e7984ddb5f69ec1e859c", kill_on_drop: false }`
[INFO] [stdout] bdf9e4364a8d82a056f3f4798e30f4b71079fac60719e7984ddb5f69ec1e859c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a35d02e52c38e6c1ccdcb00ce3872e124f24c1ad846dd1bb6bfda2d76d42d81e
[INFO] running `Command { std: "docker" "start" "-a" "a35d02e52c38e6c1ccdcb00ce3872e124f24c1ad846dd1bb6bfda2d76d42d81e", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `ndarray::s`
[INFO] [stderr]   --> src/model_free/bandit.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use ndarray::s;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Array2`
[INFO] [stderr]   --> src/model_free/bandit.rs:11:23
[INFO] [stderr]    |
[INFO] [stderr] 11 | use ndarray::{Array1, Array2};
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::model_free::bandit`
[INFO] [stderr]   --> src/model_free/bandit.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::model_free::bandit;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `thread::yield_now`
[INFO] [stderr]  --> src/model_free/grid_word.rs:2:33
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::{collections::HashMap, thread::yield_now};
[INFO] [stderr]   |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]   --> src/model_free/bandit.rs:30:29
[INFO] [stderr]    |
[INFO] [stderr] 30 |         let mut rng = rand::thread_rng();
[INFO] [stderr]    |                             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]   --> src/model_free/bandit.rs:60:29
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let mut rng = rand::thread_rng();
[INFO] [stderr]    |                             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]  --> src/q_learning.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | use rand::thread_rng;
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]   --> src/q_learning.rs:42:19
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let mut rng = thread_rng();
[INFO] [stderr]    |                   ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]   --> src/model_free/bandit.rs:25:57
[INFO] [stderr]    |
[INFO] [stderr] 25 |         let rates = Array1::from_shape_fn(arms, |_| rng.gen_range(0.0..1.0));
[INFO] [stderr]    |                                                         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]   --> src/model_free/bandit.rs:33:23
[INFO] [stderr]    |
[INFO] [stderr] 33 |         if rate > rng.gen_range(0.0..1.0) {
[INFO] [stderr]    |                       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]   --> src/model_free/bandit.rs:61:37
[INFO] [stderr]    |
[INFO] [stderr] 61 |         let random_value: f64 = rng.gen_range(0.0..1.0);
[INFO] [stderr]    |                                     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]   --> src/model_free/bandit.rs:65:17
[INFO] [stderr]    |
[INFO] [stderr] 65 |             rng.gen_range(0..self.qs.len())
[INFO] [stderr]    |                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]    --> src/model_free/bandit.rs:117:31
[INFO] [stderr]     |
[INFO] [stderr] 117 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stderr]     |                               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]    --> src/model_free/bandit.rs:133:31
[INFO] [stderr]     |
[INFO] [stderr] 133 |         let reward: f64 = rng.gen_range(0.0..1.0);
[INFO] [stderr]     |                               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stderr]   --> src/q_learning.rs:49:33
[INFO] [stderr]    |
[INFO] [stderr] 49 |             let action = if rng.gen::<f32>() < epsilon {
[INFO] [stderr]    |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/model_free/bandit.rs:144:9
[INFO] [stderr]     |
[INFO] [stderr] 144 |     for i in 0..3 {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/model_free/bandit.rs:154:9
[INFO] [stderr]     |
[INFO] [stderr] 154 |     let mut bandit = Bandit::new(20);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let mut new_v = v.clone();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_v`
[INFO] [stderr]  --> src/model_free/dynamic_programming.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let mut new_v = v.clone();
[INFO] [stderr]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_v`
[INFO] [stderr] 
[INFO] [stderr] warning: function `test` is never used
[INFO] [stderr]    --> src/model_free/bandit.rs:109:4
[INFO] [stderr]     |
[INFO] [stderr] 109 | fn test() {
[INFO] [stderr]     |    ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `test2` is never used
[INFO] [stderr]    --> src/model_free/bandit.rs:125:4
[INFO] [stderr]     |
[INFO] [stderr] 125 | fn test2() {
[INFO] [stderr]     |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `test3` is never used
[INFO] [stderr]    --> src/model_free/bandit.rs:142:4
[INFO] [stderr]     |
[INFO] [stderr] 142 | fn test3() {
[INFO] [stderr]     |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Action` is never used
[INFO] [stderr]  --> src/model_free/grid_word.rs:5:6
[INFO] [stderr]   |
[INFO] [stderr] 5 | enum Action {
[INFO] [stderr]   |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_u32` and `to_str` are never used
[INFO] [stderr]   --> src/model_free/grid_word.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl Action {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 12 |     fn from_u32(value: u32) -> Option<Action> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     fn to_str(&self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `action_meaning`, `goal_state`, `wall_state`, `start_state`, and `agent_state` are never read
[INFO] [stderr]   --> src/model_free/grid_word.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | struct GridWorld {
[INFO] [stderr]    |        --------- fields in this struct
[INFO] [stderr] 33 |     action_space: Array1<i32>,
[INFO] [stderr] 34 |     action_meaning: HashMap<i32, String>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 35 |     reward_map: Array2<Option<f32>>,
[INFO] [stderr] 36 |     goal_state: (i32, i32),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 37 |     wall_state: (i32, i32),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 38 |     start_state: (i32, i32),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 39 |     agent_state: (i32, i32),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GridWorld` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Meaning` is never constructed
[INFO] [stderr]   --> src/model_free/grid_word.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 41 | struct Meaning {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `rl_rs` (lib) generated 26 warnings (run `cargo fix --lib -p rl_rs` to apply 8 suggestions)
[INFO] [stderr] warning: `rl_rs` (lib test) generated 26 warnings (26 duplicates)
[INFO] [stderr] warning: unused imports: `dynamic_programming`, `grid_word`, and `q_learning`
[INFO] [stderr]  --> src/main.rs:1:34
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rl_rs::{model_free::{bandit, dynamic_programming,grid_word}, q_learning};
[INFO] [stderr]   |                                  ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^   ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rl_rs` (bin "rl_rs" test) generated 1 warning (run `cargo fix --bin "rl_rs" -p rl_rs --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rl_rs-c925b9eccd984737)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rl_rs-fc6ebec834b66652)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rl_rs
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a35d02e52c38e6c1ccdcb00ce3872e124f24c1ad846dd1bb6bfda2d76d42d81e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a35d02e52c38e6c1ccdcb00ce3872e124f24c1ad846dd1bb6bfda2d76d42d81e", kill_on_drop: false }`
[INFO] [stdout] a35d02e52c38e6c1ccdcb00ce3872e124f24c1ad846dd1bb6bfda2d76d42d81e
