[INFO] cloning repository https://github.com/418teepot/rengine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/418teepot/rengine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F418teepot%2Frengine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F418teepot%2Frengine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6f0512ac5897c08b5478b3a83df248cebc556ba2
[INFO] checking 418teepot/rengine against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F418teepot%2Frengine" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/418teepot/rengine
[INFO] finished tweaking git repo https://github.com/418teepot/rengine
[INFO] tweaked toml for git repo https://github.com/418teepot/rengine written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/418teepot/rengine on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/418teepot/rengine 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" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-ident v1.0.12
[INFO] [stderr]   Downloaded heck v0.4.1
[INFO] [stderr]   Downloaded clap_lex v0.6.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.70
[INFO] [stderr]   Downloaded quote v1.0.33
[INFO] [stderr]   Downloaded anstyle-parse v0.2.3
[INFO] [stderr]   Downloaded anstyle-query v1.0.2
[INFO] [stderr]   Downloaded windows-targets v0.52.0
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.2
[INFO] [stderr]   Downloaded colorchoice v1.0.0
[INFO] [stderr]   Downloaded utf8parse v0.2.1
[INFO] [stderr]   Downloaded anstream v0.6.7
[INFO] [stderr]   Downloaded anstyle v1.0.4
[INFO] [stderr]   Downloaded clap_derive v4.4.7
[INFO] [stderr]   Downloaded clap v4.4.16
[INFO] [stderr]   Downloaded getrandom v0.2.10
[INFO] [stderr]   Downloaded syn v2.0.39
[INFO] [stderr]   Downloaded clap_builder v4.4.16
[INFO] [stderr]   Downloaded libc v0.2.148
[INFO] [stderr]   Downloaded windows_x86_64_gnullvm v0.52.0
[INFO] [stderr]   Downloaded windows_aarch64_gnullvm v0.52.0
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.52.0
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.52.0
[INFO] [stderr]   Downloaded windows_i686_gnu v0.52.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.52.0
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.52.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d319d48cdeecf0f3e1dae34048b3d7bdd86cd55894864be03c68d4435e0b89b1
[INFO] running `Command { std: "docker" "start" "-a" "d319d48cdeecf0f3e1dae34048b3d7bdd86cd55894864be03c68d4435e0b89b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d319d48cdeecf0f3e1dae34048b3d7bdd86cd55894864be03c68d4435e0b89b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d319d48cdeecf0f3e1dae34048b3d7bdd86cd55894864be03c68d4435e0b89b1", kill_on_drop: false }`
[INFO] [stdout] d319d48cdeecf0f3e1dae34048b3d7bdd86cd55894864be03c68d4435e0b89b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62605582eab27d18288156e26e8574b3fad2147a6be615c2f99e994d414740ec
[INFO] running `Command { std: "docker" "start" "-a" "62605582eab27d18288156e26e8574b3fad2147a6be615c2f99e994d414740ec", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking clap_lex v0.6.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking anstyle-parse v0.2.3
[INFO] [stderr]     Checking anstream v0.6.7
[INFO] [stderr]     Checking clap_builder v4.4.16
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]     Checking getrandom v0.2.10
[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]    Compiling clap_derive v4.4.7
[INFO] [stderr]     Checking clap v4.4.16
[INFO] [stderr]     Checking rengine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cell::SyncUnsafeCell`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::SyncUnsafeCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `eval::relevant_eval_params`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use eval::relevant_eval_params;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GameState` and `ROOK`
[INFO] [stdout]   --> src/main.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | use gamestate::{GameState, ROOK};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LockLessTransTable` and `LockLessValue`
[INFO] [stdout]   --> src/main.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | use lockless::{LockLessTransTable, LockLessValue};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r#move::Move`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use r#move::Move;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `smpsearch::INFINITY`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use smpsearch::INFINITY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `find_smallest_k`, `mean_square_error`, `optimize_params`, and `read_texel_sample_file`
[INFO] [stdout]   --> src/main.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use texel::{read_texel_sample_file, find_smallest_k, mean_square_error, optimize_params};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_texel_sample_threaded` and `generate_texel_sample`
[INFO] [stdout]   --> src/main.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::texel::{generate_texel_sample, generate_texel_sample_threaded};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::uci::uci_loop`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::uci::uci_loop;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MATERIAL_VALUE`
[INFO] [stdout]  --> src/gamestate.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::eval::{MATERIAL_VALUE, PHASE_WEIGHT, EVAL_PARAMS};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gamestate::KING`
[INFO] [stdout]   --> src/uci.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::gamestate::KING;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::SyncUnsafeCell`
[INFO] [stdout]  --> src/eval.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::SyncUnsafeCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KING_MOVES` and `KNIGHT_MOVES`
[INFO] [stdout]  --> src/eval.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::movegen::{KING_MOVES, rook_move_bitboard, bishop_move_bitboard, KNIGHT_MOVES, queen_move_bitboard, FILE_BITMASK, RANK_BITMASK,...
[INFO] [stdout]   |                      ^^^^^^^^^^                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AB_BOUND`
[INFO] [stdout]  --> src/eval.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::smpsearch::{Eval, AB_BOUND};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::Parser`
[INFO] [stdout]  --> src/eval.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use clap::Parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read_to_string`
[INFO] [stdout]  --> src/book.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex`, `UnsafeCell`, and `arch::x86_64::_MM_FROUND_NINT`
[INFO] [stdout]  --> src/texel.rs:1:50
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...nt}, sync::{Arc, Mutex}, fs::File, io::{Write, BufReader, BufRead}, arch::x86_64::_MM_FROUND_NINT, cell::{UnsafeCell, SyncUnsafeCell},...
[INFO] [stdout]   |                     ^^^^^                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `distributions::WeightedIndex`, `prelude::*`, and `thread_rng`
[INFO] [stdout]  --> src/texel.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distributions::WeightedIndex, thread_rng, prelude::*};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AB_BOUND`, `ISMATE`, `book::OPENING_BOOK`, `iterative_deepening`, and `r#move::Move`
[INFO] [stdout]  --> src/texel.rs:7:57
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...}, book::OPENING_BOOK, r#move::Move, smpsearch::{Eval, iterative_deepening, SearchProtocol, search, quiescent_search, AB_BOUND, SearchInfo, INFINITY, UciMode, ISMATE}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^                    ^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval`
[INFO] [stdout]  --> src/lockless.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::eval;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LockLessValue`
[INFO] [stdout]  --> src/smpsearch.rs:5:157
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...AYERS, Side, NUM_OF_PIECES}, lockless::{LockLessTransTable, LockLessValue, LockLessFlag}, book::OPENING_BOOK};
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/smpsearch.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 |     if (state.has_repitition() || state.fifty_move_rule >= 100) {
[INFO] [stdout]     |        ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -     if (state.has_repitition() || state.fifty_move_rule >= 100) {
[INFO] [stdout] 243 +     if state.has_repitition() || state.fifty_move_rule >= 100 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env`, `fs`, and `io::Write`
[INFO] [stdout]  --> src/smac.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs, io::Write, env};
[INFO] [stdout]   |           ^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EvalParams`
[INFO] [stdout]  --> src/smac.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{smpsearch::Eval, eval::{EvalParams, EVAL_PARAMS}, gamestate::{PAWN, ROOK, KNIGHT, BISHOP, QUEEN}, texel::{read_texel_sample_f...
[INFO] [stdout]   |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::SyncUnsafeCell`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::SyncUnsafeCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `eval::relevant_eval_params`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use eval::relevant_eval_params;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GameState` and `ROOK`
[INFO] [stdout]   --> src/main.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | use gamestate::{GameState, ROOK};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LockLessTransTable` and `LockLessValue`
[INFO] [stdout]   --> src/main.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | use lockless::{LockLessTransTable, LockLessValue};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r#move::Move`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use r#move::Move;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `smpsearch::INFINITY`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use smpsearch::INFINITY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `find_smallest_k`, `mean_square_error`, `optimize_params`, and `read_texel_sample_file`
[INFO] [stdout]   --> src/main.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use texel::{read_texel_sample_file, find_smallest_k, mean_square_error, optimize_params};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_texel_sample_threaded` and `generate_texel_sample`
[INFO] [stdout]   --> src/main.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::texel::{generate_texel_sample, generate_texel_sample_threaded};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::uci::uci_loop`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::uci::uci_loop;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MATERIAL_VALUE`
[INFO] [stdout]  --> src/gamestate.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::eval::{MATERIAL_VALUE, PHASE_WEIGHT, EVAL_PARAMS};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gamestate::KING`
[INFO] [stdout]   --> src/uci.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::gamestate::KING;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::SyncUnsafeCell`
[INFO] [stdout]  --> src/eval.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::SyncUnsafeCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KING_MOVES` and `KNIGHT_MOVES`
[INFO] [stdout]  --> src/eval.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::movegen::{KING_MOVES, rook_move_bitboard, bishop_move_bitboard, KNIGHT_MOVES, queen_move_bitboard, FILE_BITMASK, RANK_BITMASK,...
[INFO] [stdout]   |                      ^^^^^^^^^^                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AB_BOUND`
[INFO] [stdout]  --> src/eval.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::smpsearch::{Eval, AB_BOUND};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::Parser`
[INFO] [stdout]  --> src/eval.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use clap::Parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read_to_string`
[INFO] [stdout]  --> src/book.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex`, `UnsafeCell`, and `arch::x86_64::_MM_FROUND_NINT`
[INFO] [stdout]  --> src/texel.rs:1:50
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...nt}, sync::{Arc, Mutex}, fs::File, io::{Write, BufReader, BufRead}, arch::x86_64::_MM_FROUND_NINT, cell::{UnsafeCell, SyncUnsafeCell},...
[INFO] [stdout]   |                     ^^^^^                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `distributions::WeightedIndex`, `prelude::*`, and `thread_rng`
[INFO] [stdout]  --> src/texel.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distributions::WeightedIndex, thread_rng, prelude::*};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AB_BOUND`, `ISMATE`, `book::OPENING_BOOK`, `iterative_deepening`, and `r#move::Move`
[INFO] [stdout]  --> src/texel.rs:7:57
[INFO] [stdout]   |
[INFO] [stdout] 7 | ...}, book::OPENING_BOOK, r#move::Move, smpsearch::{Eval, iterative_deepening, SearchProtocol, search, quiescent_search, AB_BOUND, SearchInfo, INFINITY, UciMode, ISMATE}, ...
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^                    ^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval`
[INFO] [stdout]  --> src/lockless.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::eval;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LockLessValue`
[INFO] [stdout]  --> src/smpsearch.rs:5:157
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...AYERS, Side, NUM_OF_PIECES}, lockless::{LockLessTransTable, LockLessValue, LockLessFlag}, book::OPENING_BOOK};
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/smpsearch.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 |     if (state.has_repitition() || state.fifty_move_rule >= 100) {
[INFO] [stdout]     |        ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -     if (state.has_repitition() || state.fifty_move_rule >= 100) {
[INFO] [stdout] 243 +     if state.has_repitition() || state.fifty_move_rule >= 100 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env`, `fs`, and `io::Write`
[INFO] [stdout]  --> src/smac.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs, io::Write, env};
[INFO] [stdout]   |           ^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EvalParams`
[INFO] [stdout]  --> src/smac.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{smpsearch::Eval, eval::{EvalParams, EVAL_PARAMS}, gamestate::{PAWN, ROOK, KNIGHT, BISHOP, QUEEN}, texel::{read_texel_sample_f...
[INFO] [stdout]   |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `lazy_cell` has been stable since 1.80.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(lazy_cell)]
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `float_next_up_down` has been stable since 1.86.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(float_next_up_down)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `lazy_cell` has been stable since 1.80.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(lazy_cell)]
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `float_next_up_down` has been stable since 1.86.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(float_next_up_down)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/texel.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         panic!("This shouldn't ever happen");
[INFO] [stdout]    |         ------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 93 |         1.0
[INFO] [stdout]    |         ^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/texel.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         panic!("This shouldn't ever happen");
[INFO] [stdout]    |         ------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 96 |         0.0
[INFO] [stdout]    |         ^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/texel.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |         panic!("This shouldnt ever happen");
[INFO] [stdout]    |         ----------------------------------- any code following this expression is unreachable
[INFO] [stdout] 99 |         0.5
[INFO] [stdout]    |         ^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/texel.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         panic!("This shouldn't ever happen");
[INFO] [stdout]    |         ------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 93 |         1.0
[INFO] [stdout]    |         ^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/texel.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         panic!("This shouldn't ever happen");
[INFO] [stdout]    |         ------------------------------------ any code following this expression is unreachable
[INFO] [stdout] 96 |         0.0
[INFO] [stdout]    |         ^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/texel.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |         panic!("This shouldnt ever happen");
[INFO] [stdout]    |         ----------------------------------- any code following this expression is unreachable
[INFO] [stdout] 99 |         0.5
[INFO] [stdout]    |         ^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ply_clock`
[INFO] [stdout]   --> src/gamestate.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let ply_clock = parts[5];
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ply_clock`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ply_clock`
[INFO] [stdout]   --> src/gamestate.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let ply_clock = parts[5];
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ply_clock`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movetime`
[INFO] [stdout]  --> src/texel.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn generate_texel_sample_threaded(samples: u32, movetime: Duration, simul_threads: u8) -> String {
[INFO] [stdout]   |                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movetime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/texel.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut texel_samples = String::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movetime`
[INFO] [stdout]   --> src/texel.rs:33:44
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn generate_texel_sample(samples: u32, movetime: Duration) -> String {
[INFO] [stdout]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movetime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/texel.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 |     for (n, (fen, value)) in fen_and_values.iter().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movetime`
[INFO] [stdout]  --> src/texel.rs:9:53
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn generate_texel_sample_threaded(samples: u32, movetime: Duration, simul_threads: u8) -> String {
[INFO] [stdout]   |                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movetime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/texel.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut texel_samples = String::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movetime`
[INFO] [stdout]   --> src/texel.rs:33:44
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn generate_texel_sample(samples: u32, movetime: Duration) -> String {
[INFO] [stdout]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movetime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/texel.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 |     for (n, (fen, value)) in fen_and_values.iter().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/smac.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut best_e = mean_square_error(K, &fen_and_values);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_lazy` is never used
[INFO] [stdout]   --> src/main.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn initialize_lazy() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_text_move` is never used
[INFO] [stdout]    --> src/move.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 57  | impl Move {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn from_text_move(gamestate: &GameState, r#move: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/gamestate.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 67  | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn to_reduced_book_fen(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn find_first_legal_move(&mut self) -> Move {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn make_null_move(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn undo_null_move(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 549 |     pub fn is_game_over(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     pub fn unavoidable_game_over(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 576 |     pub fn dump_panic_debug(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `piece_to_char` is never used
[INFO] [stdout]    --> src/gamestate.rs:712:4
[INFO] [stdout]     |
[INFO] [stdout] 712 | fn piece_to_char(side: Side, piece: Piece) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_pseudo_legal_moves` and `is_in_check` are never used
[INFO] [stdout]    --> src/movegen.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 24  | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn generate_pseudo_legal_moves(&self) -> MoveList {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 751 |     pub fn is_in_check(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENGINE_NAME` is never used
[INFO] [stdout]   --> src/uci.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const ENGINE_NAME: &str = "engine";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUTHOR_NAME` is never used
[INFO] [stdout]   --> src/uci.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const AUTHOR_NAME: &str = "418teapot";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uci_loop` is never used
[INFO] [stdout]   --> src/uci.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn uci_loop() {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_debug_game` is never used
[INFO] [stdout]    --> src/uci.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn run_debug_game(state: &GameState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zobrist_history` is never used
[INFO] [stdout]    --> src/uci.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn zobrist_history(state: &GameState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_go` is never used
[INFO] [stdout]    --> src/uci.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn cmd_go(parts: &[&str], gamestate: GameState, stop_flag: &Arc<SyncUnsafeCell<bool>>, trans_table: &Arc<SyncUnsafeCell<LockLessTrans...
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_uci` is never used
[INFO] [stdout]    --> src/uci.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn cmd_uci(_parts: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_isready` is never used
[INFO] [stdout]    --> src/uci.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn cmd_isready(_parts: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_position` is never used
[INFO] [stdout]    --> src/uci.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn cmd_position(parts: &[&str]) -> GameState {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_newline` is never used
[INFO] [stdout]    --> src/uci.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn trim_newline(s: &mut String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pv` is never used
[INFO] [stdout]    --> src/uci.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn extract_pv(state: &mut GameState, t_table: &TranspositionTable) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const PAWN_VALUE: Eval = 100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const ROOK_VALUE: Eval = 500;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const KNIGHT_VALUE: Eval = 300;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const BISHOP_VALUE: Eval = 320;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUEEN_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const QUEEN_VALUE: Eval = 900;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEMPO_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const TEMPO_VALUE: Eval = 20;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MATERIAL_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static MATERIAL_VALUE: [Eval; NUM_OF_PIECES] = [PAWN_VALUE, ROOK_VALUE, KNIGHT_VALUE, BISHOP_VALUE, QUEEN_VALUE, KNIGHT_VALUE];
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `king_safety_mg`, `calculate_movetime`, `calculate_movetime_simple_side`, `midgame_scale`, `moves_left`, and `is_connected` are never used
[INFO] [stdout]    --> src/eval.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 63  | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn king_safety_mg(&self, our_side: Side) -> Eval {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn calculate_movetime(&self, wtime: u64, btime: u64, winc: u64, binc: u64) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn calculate_movetime_simple_side(&self, time_left: i64, inc: i64) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     fn midgame_scale(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     fn moves_left(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     fn is_connected(&self, our_side: Side, square: Square) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open_king_file_punish_mg` is never read
[INFO] [stdout]    --> src/eval.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub struct EvalParams {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub open_king_file_punish_mg: Eval,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relevant_eval_params` is never used
[INFO] [stdout]    --> src/eval.rs:559:8
[INFO] [stdout]     |
[INFO] [stdout] 559 | pub fn relevant_eval_params() -> Vec<*mut Eval> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_relevant_params` is never used
[INFO] [stdout]    --> src/eval.rs:580:8
[INFO] [stdout]     |
[INFO] [stdout] 580 | pub fn print_relevant_params() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranspositionTable` is never constructed
[INFO] [stdout]  --> src/tt.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TranspositionTable {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `index`, and `probe` are never used
[INFO] [stdout]   --> src/tt.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl TranspositionTable {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn insert(&mut self, key: ZobristHash, value: Eval, flag: TTEntryFlag, depth: u8, best_move: Move) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn index(&self, key: ZobristHash) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn probe(&self, key: ZobristHash) -> Option<TTEntry> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TTEntryFlag` is never used
[INFO] [stdout]   --> src/tt.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum TTEntryFlag {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TTEntry` is never constructed
[INFO] [stdout]   --> src/tt.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct TTEntry {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_texel_sample_threaded` is never used
[INFO] [stdout]  --> src/texel.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn generate_texel_sample_threaded(samples: u32, movetime: Duration, simul_threads: u8) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_texel_sample` is never used
[INFO] [stdout]   --> src/texel.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn generate_texel_sample(samples: u32, movetime: Duration) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `texel_game` is never used
[INFO] [stdout]   --> src/texel.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn texel_game(total_time: u64, increment: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_into_white_viewpoint` is never used
[INFO] [stdout]    --> src/texel.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn eval_into_white_viewpoint(value: Eval, side_to_move: Side) -> Eval {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimize_params` is never used
[INFO] [stdout]    --> src/texel.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn optimize_params(params: Vec<*mut Eval>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELTA_K` is never used
[INFO] [stdout]    --> src/texel.rs:188:7
[INFO] [stdout]     |
[INFO] [stdout] 188 | const DELTA_K: f64 = 0.0001_f64;
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_k` is never used
[INFO] [stdout]    --> src/texel.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn find_smallest_k(fen_and_values: &Vec<(String, f64)>) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANS_TABLE_SIZE` is never used
[INFO] [stdout]  --> src/lockless.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const TRANS_TABLE_SIZE: usize = 1_000_000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LockLessTransTable` is never constructed
[INFO] [stdout]  --> src/lockless.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct LockLessTransTable {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `insert`, `get`, `new`, `clear`, and `advance_age` are never used
[INFO] [stdout]   --> src/lockless.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl LockLessTransTable {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn insert(&mut self, key: ZobristHash, state: &GameState, eval: Eval, r#move: Move, flag: LockLessFlag, depth: u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn get(&self, key: ZobristHash) -> Option<LockLessValue> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn advance_age(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LockLessEntry` is never constructed
[INFO] [stdout]   --> src/lockless.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct LockLessEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LockLessValue` is never constructed
[INFO] [stdout]   --> src/lockless.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct LockLessValue(pub u64);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `value`, `depth`, `flag`, and `best_move` are never used
[INFO] [stdout]   --> src/lockless.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl LockLessValue {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 77 |     pub fn new(r#move: Move, flag: LockLessFlag, value: Eval, depth: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn value(&self) -> Eval {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn depth(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn flag(&self) -> LockLessFlag {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn best_move(&self) -> Move {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_QUIESCENT_DEPTH` is never used
[INFO] [stdout]   --> src/smpsearch.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const MAX_QUIESCENT_DEPTH: u8 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CHECK_EXTENSIONS` is never used
[INFO] [stdout]   --> src/smpsearch.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_CHECK_EXTENSIONS: u8 = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AB_BOUND` is never used
[INFO] [stdout]   --> src/smpsearch.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const AB_BOUND: Eval = INFINITY - 3000;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ISMATE` is never used
[INFO] [stdout]   --> src/smpsearch.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const ISMATE: Eval = AB_BOUND - MAX_DEPTH as Eval;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_DEPTH` is never used
[INFO] [stdout]   --> src/smpsearch.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const MAX_DEPTH: usize = 50;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadData` is never constructed
[INFO] [stdout]   --> src/smpsearch.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ThreadData {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear_for_search` is never used
[INFO] [stdout]   --> src/smpsearch.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ThreadData {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 31 |     pub fn clear_for_search(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `killer_table`, `history_table`, and `search_depth` are never read
[INFO] [stdout]   --> src/smpsearch.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct SearchInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     killer_table: KillerTable,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 41 |     history_table: [[[u32; NUM_OF_SQUARES]; NUM_OF_SQUARES]; NUM_OF_PLAYERS],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 42 |     stop_flag: Arc<SyncUnsafeCell<bool>>,
[INFO] [stdout] 43 |     search_depth: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_for_search` and `nps` are never used
[INFO] [stdout]   --> src/smpsearch.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl SearchInfo {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn clear_for_search(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn nps(&self) -> u64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/smpsearch.rs:66:20
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct KillerTable([[Move; MAX_KILLER_MOVES]; MAX_SEARCH_DEPTH as usize]);
[INFO] [stdout]    |        ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_killer` and `is_killer` are never used
[INFO] [stdout]   --> src/smpsearch.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl KillerTable {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 69 |     fn store_killer(&mut self, depth: u8, r#move: Move) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn is_killer(&mut self, depth: u8, r#move: Move) -> Option<u8> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Debug` is never constructed
[INFO] [stdout]   --> src/smpsearch.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub enum SearchProtocol {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     Debug,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]    --> src/smpsearch.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn search<const SEARCHMODE: SearchProtocol>(threads: usize, max_time: Duration, state: GameState, stop_flag: Arc<SyncUnsafeCell<bool>...
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pv` is never used
[INFO] [stdout]    --> src/smpsearch.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn extract_pv(state: &GameState, t_table: *mut LockLessTransTable) -> Vec<Move> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pv_to_string` is never used
[INFO] [stdout]    --> src/smpsearch.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn pv_to_string(pv: &Vec<Move>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iterative_deepening` is never used
[INFO] [stdout]    --> src/smpsearch.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn iterative_deepening<const SEARCHMODE: SearchProtocol>(mut thread_data: ThreadData) -> (Move, Eval) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alpha_beta` is never used
[INFO] [stdout]    --> src/smpsearch.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn alpha_beta<const SEARCHMODE: SearchProtocol>(alpha: Eval, beta: Eval, state: &mut GameState, depth: u8, search_info: &mut SearchInfo, ...
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KILLER_VALUE` is never used
[INFO] [stdout]    --> src/smpsearch.rs:473:7
[INFO] [stdout]     |
[INFO] [stdout] 473 | const KILLER_VALUE: u32 = MVV_LVA_VALUE - 1000;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SECONDARY_KILLER_VALUE` is never used
[INFO] [stdout]    --> src/smpsearch.rs:474:7
[INFO] [stdout]     |
[INFO] [stdout] 474 | const SECONDARY_KILLER_VALUE: u32 = KILLER_VALUE - 1000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value_moves` is never used
[INFO] [stdout]    --> src/smpsearch.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 476 | impl MoveList {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 477 |     fn value_moves(&mut self, search_info: &mut SearchInfo, depth: u8, side_to_move: Side) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BOOK_DATA` is never used
[INFO] [stdout]  --> src/book_data.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub static BOOK_DATA: &str = 
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/smac.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut best_e = mean_square_error(K, &fen_and_values);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:568:21
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for n in 0..EVAL_PARAMS.mg_piece_value.len() - 1 {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:572:21
[INFO] [stdout]     |
[INFO] [stdout] 572 |         for n in 1..EVAL_PARAMS.mg_passed.len() - 1 {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:602:46
[INFO] [stdout]     |
[INFO] [stdout] 602 |         println!("ISOLATED (MG, EG): {} {}", EVAL_PARAMS.mg_isolated_penalty, EVAL_PARAMS.eg_isolated_penalty);
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:602:79
[INFO] [stdout]     |
[INFO] [stdout] 602 |         println!("ISOLATED (MG, EG): {} {}", EVAL_PARAMS.mg_isolated_penalty, EVAL_PARAMS.eg_isolated_penalty);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:603:45
[INFO] [stdout]     |
[INFO] [stdout] 603 |         println!("DOUBLED (MG, EG): {} {}", EVAL_PARAMS.mg_doubled_penalty, EVAL_PARAMS.eg_doubled_penalty);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:603:77
[INFO] [stdout]     |
[INFO] [stdout] 603 |         println!("DOUBLED (MG, EG): {} {}", EVAL_PARAMS.mg_doubled_penalty, EVAL_PARAMS.eg_doubled_penalty);
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_lazy` is never used
[INFO] [stdout]   --> src/main.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn initialize_lazy() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_text_move` is never used
[INFO] [stdout]    --> src/move.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 57  | impl Move {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn from_text_move(gamestate: &GameState, r#move: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/gamestate.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 67  | impl GameState {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn to_reduced_book_fen(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn new_starting_pos() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn find_first_legal_move(&mut self) -> Move {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn make_null_move(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn undo_null_move(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 549 |     pub fn is_game_over(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     pub fn unavoidable_game_over(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 576 |     pub fn dump_panic_debug(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `piece_to_char` is never used
[INFO] [stdout]    --> src/gamestate.rs:712:4
[INFO] [stdout]     |
[INFO] [stdout] 712 | fn piece_to_char(side: Side, piece: Piece) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_pseudo_legal_moves` and `is_in_check` are never used
[INFO] [stdout]    --> src/movegen.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 24  | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn generate_pseudo_legal_moves(&self) -> MoveList {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 751 |     pub fn is_in_check(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENGINE_NAME` is never used
[INFO] [stdout]   --> src/uci.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const ENGINE_NAME: &str = "engine";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUTHOR_NAME` is never used
[INFO] [stdout]   --> src/uci.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const AUTHOR_NAME: &str = "418teapot";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uci_loop` is never used
[INFO] [stdout]   --> src/uci.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn uci_loop() {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_debug_game` is never used
[INFO] [stdout]    --> src/uci.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn run_debug_game(state: &GameState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zobrist_history` is never used
[INFO] [stdout]    --> src/uci.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn zobrist_history(state: &GameState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_go` is never used
[INFO] [stdout]    --> src/uci.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn cmd_go(parts: &[&str], gamestate: GameState, stop_flag: &Arc<SyncUnsafeCell<bool>>, trans_table: &Arc<SyncUnsafeCell<LockLessTrans...
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_uci` is never used
[INFO] [stdout]    --> src/uci.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn cmd_uci(_parts: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_isready` is never used
[INFO] [stdout]    --> src/uci.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn cmd_isready(_parts: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_position` is never used
[INFO] [stdout]    --> src/uci.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn cmd_position(parts: &[&str]) -> GameState {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_newline` is never used
[INFO] [stdout]    --> src/uci.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn trim_newline(s: &mut String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pv` is never used
[INFO] [stdout]    --> src/uci.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn extract_pv(state: &mut GameState, t_table: &TranspositionTable) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const PAWN_VALUE: Eval = 100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const ROOK_VALUE: Eval = 500;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const KNIGHT_VALUE: Eval = 300;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const BISHOP_VALUE: Eval = 320;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUEEN_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const QUEEN_VALUE: Eval = 900;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEMPO_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const TEMPO_VALUE: Eval = 20;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MATERIAL_VALUE` is never used
[INFO] [stdout]   --> src/eval.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static MATERIAL_VALUE: [Eval; NUM_OF_PIECES] = [PAWN_VALUE, ROOK_VALUE, KNIGHT_VALUE, BISHOP_VALUE, QUEEN_VALUE, KNIGHT_VALUE];
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `king_safety_mg`, `calculate_movetime`, `calculate_movetime_simple_side`, `midgame_scale`, `moves_left`, and `is_connected` are never used
[INFO] [stdout]    --> src/eval.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 63  | impl GameState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn king_safety_mg(&self, our_side: Side) -> Eval {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn calculate_movetime(&self, wtime: u64, btime: u64, winc: u64, binc: u64) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn calculate_movetime_simple_side(&self, time_left: i64, inc: i64) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     fn midgame_scale(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     fn moves_left(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     fn is_connected(&self, our_side: Side, square: Square) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open_king_file_punish_mg` is never read
[INFO] [stdout]    --> src/eval.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub struct EvalParams {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub open_king_file_punish_mg: Eval,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relevant_eval_params` is never used
[INFO] [stdout]    --> src/eval.rs:559:8
[INFO] [stdout]     |
[INFO] [stdout] 559 | pub fn relevant_eval_params() -> Vec<*mut Eval> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_relevant_params` is never used
[INFO] [stdout]    --> src/eval.rs:580:8
[INFO] [stdout]     |
[INFO] [stdout] 580 | pub fn print_relevant_params() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranspositionTable` is never constructed
[INFO] [stdout]  --> src/tt.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TranspositionTable {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `index`, and `probe` are never used
[INFO] [stdout]   --> src/tt.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl TranspositionTable {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn insert(&mut self, key: ZobristHash, value: Eval, flag: TTEntryFlag, depth: u8, best_move: Move) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn index(&self, key: ZobristHash) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn probe(&self, key: ZobristHash) -> Option<TTEntry> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TTEntryFlag` is never used
[INFO] [stdout]   --> src/tt.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum TTEntryFlag {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TTEntry` is never constructed
[INFO] [stdout]   --> src/tt.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct TTEntry {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_texel_sample_threaded` is never used
[INFO] [stdout]  --> src/texel.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn generate_texel_sample_threaded(samples: u32, movetime: Duration, simul_threads: u8) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_texel_sample` is never used
[INFO] [stdout]   --> src/texel.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn generate_texel_sample(samples: u32, movetime: Duration) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `texel_game` is never used
[INFO] [stdout]   --> src/texel.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn texel_game(total_time: u64, increment: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_into_white_viewpoint` is never used
[INFO] [stdout]    --> src/texel.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn eval_into_white_viewpoint(value: Eval, side_to_move: Side) -> Eval {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimize_params` is never used
[INFO] [stdout]    --> src/texel.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn optimize_params(params: Vec<*mut Eval>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELTA_K` is never used
[INFO] [stdout]    --> src/texel.rs:188:7
[INFO] [stdout]     |
[INFO] [stdout] 188 | const DELTA_K: f64 = 0.0001_f64;
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_k` is never used
[INFO] [stdout]    --> src/texel.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn find_smallest_k(fen_and_values: &Vec<(String, f64)>) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANS_TABLE_SIZE` is never used
[INFO] [stdout]  --> src/lockless.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const TRANS_TABLE_SIZE: usize = 1_000_000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LockLessTransTable` is never constructed
[INFO] [stdout]  --> src/lockless.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct LockLessTransTable {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `insert`, `get`, `new`, `clear`, and `advance_age` are never used
[INFO] [stdout]   --> src/lockless.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl LockLessTransTable {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn insert(&mut self, key: ZobristHash, state: &GameState, eval: Eval, r#move: Move, flag: LockLessFlag, depth: u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn get(&self, key: ZobristHash) -> Option<LockLessValue> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn advance_age(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LockLessEntry` is never constructed
[INFO] [stdout]   --> src/lockless.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct LockLessEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LockLessValue` is never constructed
[INFO] [stdout]   --> src/lockless.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct LockLessValue(pub u64);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `value`, `depth`, `flag`, and `best_move` are never used
[INFO] [stdout]   --> src/lockless.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl LockLessValue {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 77 |     pub fn new(r#move: Move, flag: LockLessFlag, value: Eval, depth: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn value(&self) -> Eval {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn depth(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn flag(&self) -> LockLessFlag {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn best_move(&self) -> Move {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_QUIESCENT_DEPTH` is never used
[INFO] [stdout]   --> src/smpsearch.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const MAX_QUIESCENT_DEPTH: u8 = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CHECK_EXTENSIONS` is never used
[INFO] [stdout]   --> src/smpsearch.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_CHECK_EXTENSIONS: u8 = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AB_BOUND` is never used
[INFO] [stdout]   --> src/smpsearch.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const AB_BOUND: Eval = INFINITY - 3000;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ISMATE` is never used
[INFO] [stdout]   --> src/smpsearch.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const ISMATE: Eval = AB_BOUND - MAX_DEPTH as Eval;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_DEPTH` is never used
[INFO] [stdout]   --> src/smpsearch.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const MAX_DEPTH: usize = 50;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadData` is never constructed
[INFO] [stdout]   --> src/smpsearch.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ThreadData {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear_for_search` is never used
[INFO] [stdout]   --> src/smpsearch.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ThreadData {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 31 |     pub fn clear_for_search(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `killer_table`, `history_table`, and `search_depth` are never read
[INFO] [stdout]   --> src/smpsearch.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct SearchInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     killer_table: KillerTable,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 41 |     history_table: [[[u32; NUM_OF_SQUARES]; NUM_OF_SQUARES]; NUM_OF_PLAYERS],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 42 |     stop_flag: Arc<SyncUnsafeCell<bool>>,
[INFO] [stdout] 43 |     search_depth: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_for_search` and `nps` are never used
[INFO] [stdout]   --> src/smpsearch.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl SearchInfo {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn clear_for_search(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn nps(&self) -> u64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/smpsearch.rs:66:20
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct KillerTable([[Move; MAX_KILLER_MOVES]; MAX_SEARCH_DEPTH as usize]);
[INFO] [stdout]    |        ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_killer` and `is_killer` are never used
[INFO] [stdout]   --> src/smpsearch.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl KillerTable {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 69 |     fn store_killer(&mut self, depth: u8, r#move: Move) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn is_killer(&mut self, depth: u8, r#move: Move) -> Option<u8> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Debug` is never constructed
[INFO] [stdout]   --> src/smpsearch.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub enum SearchProtocol {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     Debug,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]    --> src/smpsearch.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn search<const SEARCHMODE: SearchProtocol>(threads: usize, max_time: Duration, state: GameState, stop_flag: Arc<SyncUnsafeCell<bool>...
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pv` is never used
[INFO] [stdout]    --> src/smpsearch.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn extract_pv(state: &GameState, t_table: *mut LockLessTransTable) -> Vec<Move> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pv_to_string` is never used
[INFO] [stdout]    --> src/smpsearch.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn pv_to_string(pv: &Vec<Move>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iterative_deepening` is never used
[INFO] [stdout]    --> src/smpsearch.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn iterative_deepening<const SEARCHMODE: SearchProtocol>(mut thread_data: ThreadData) -> (Move, Eval) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alpha_beta` is never used
[INFO] [stdout]    --> src/smpsearch.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn alpha_beta<const SEARCHMODE: SearchProtocol>(alpha: Eval, beta: Eval, state: &mut GameState, depth: u8, search_info: &mut SearchInfo, ...
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KILLER_VALUE` is never used
[INFO] [stdout]    --> src/smpsearch.rs:473:7
[INFO] [stdout]     |
[INFO] [stdout] 473 | const KILLER_VALUE: u32 = MVV_LVA_VALUE - 1000;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SECONDARY_KILLER_VALUE` is never used
[INFO] [stdout]    --> src/smpsearch.rs:474:7
[INFO] [stdout]     |
[INFO] [stdout] 474 | const SECONDARY_KILLER_VALUE: u32 = KILLER_VALUE - 1000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value_moves` is never used
[INFO] [stdout]    --> src/smpsearch.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 476 | impl MoveList {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 477 |     fn value_moves(&mut self, search_info: &mut SearchInfo, depth: u8, side_to_move: Side) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BOOK_DATA` is never used
[INFO] [stdout]  --> src/book_data.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub static BOOK_DATA: &str = 
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:568:21
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for n in 0..EVAL_PARAMS.mg_piece_value.len() - 1 {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:572:21
[INFO] [stdout]     |
[INFO] [stdout] 572 |         for n in 1..EVAL_PARAMS.mg_passed.len() - 1 {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:602:46
[INFO] [stdout]     |
[INFO] [stdout] 602 |         println!("ISOLATED (MG, EG): {} {}", EVAL_PARAMS.mg_isolated_penalty, EVAL_PARAMS.eg_isolated_penalty);
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:602:79
[INFO] [stdout]     |
[INFO] [stdout] 602 |         println!("ISOLATED (MG, EG): {} {}", EVAL_PARAMS.mg_isolated_penalty, EVAL_PARAMS.eg_isolated_penalty);
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:603:45
[INFO] [stdout]     |
[INFO] [stdout] 603 |         println!("DOUBLED (MG, EG): {} {}", EVAL_PARAMS.mg_doubled_penalty, EVAL_PARAMS.eg_doubled_penalty);
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/eval.rs:603:77
[INFO] [stdout]     |
[INFO] [stdout] 603 |         println!("DOUBLED (MG, EG): {} {}", EVAL_PARAMS.mg_doubled_penalty, EVAL_PARAMS.eg_doubled_penalty);
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.55s
[INFO] running `Command { std: "docker" "inspect" "62605582eab27d18288156e26e8574b3fad2147a6be615c2f99e994d414740ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62605582eab27d18288156e26e8574b3fad2147a6be615c2f99e994d414740ec", kill_on_drop: false }`
[INFO] [stdout] 62605582eab27d18288156e26e8574b3fad2147a6be615c2f99e994d414740ec
