[INFO] cloning repository https://github.com/chessvector/chess-vector-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chessvector/chess-vector-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchessvector%2Fchess-vector-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchessvector%2Fchess-vector-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3280d8c4147b64fb861248e35abd06f1f1643216
[INFO] checking chessvector/chess-vector-engine/3280d8c4147b64fb861248e35abd06f1f1643216 against 1.94.0 for beta-1.95-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchessvector%2Fchess-vector-engine" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/chessvector/chess-vector-engine
[INFO] finished tweaking git repo https://github.com/chessvector/chess-vector-engine
[INFO] tweaked toml for git repo https://github.com/chessvector/chess-vector-engine written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/chessvector/chess-vector-engine on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/chessvector/chess-vector-engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded circular v0.3.0
[INFO] [stderr]   Downloaded zip v1.1.4
[INFO] [stderr]   Downloaded shakmaty v0.27.3
[INFO] [stderr]   Downloaded gemm-f32 v0.18.2
[INFO] [stderr]   Downloaded derive_arbitrary v1.4.1
[INFO] [stderr]   Downloaded ndarray-rand v0.15.0
[INFO] [stderr]   Downloaded sysctl v0.5.5
[INFO] [stderr]   Downloaded pgn-reader v0.22.0
[INFO] [stderr]   Downloaded safetensors v0.4.5
[INFO] [stderr]   Downloaded dyn-stack v0.10.0
[INFO] [stderr]   Downloaded gemm-c64 v0.18.2
[INFO] [stderr]   Downloaded gemm v0.17.1
[INFO] [stderr]   Downloaded gemm-f16 v0.18.2
[INFO] [stderr]   Downloaded gemm-c64 v0.17.1
[INFO] [stderr]   Downloaded gemm-f64 v0.17.1
[INFO] [stderr]   Downloaded pulp v0.21.5
[INFO] [stderr]   Downloaded gemm-f16 v0.17.1
[INFO] [stderr]   Downloaded gemm-f32 v0.17.1
[INFO] [stderr]   Downloaded candle-core v0.9.1
[INFO] [stderr]   Downloaded pulp v0.18.22
[INFO] [stderr]   Downloaded dyn-stack v0.13.0
[INFO] [stderr]   Downloaded gemm-f64 v0.18.2
[INFO] [stderr]   Downloaded gemm-common v0.17.1
[INFO] [stderr]   Downloaded gemm-c32 v0.17.1
[INFO] [stderr]   Downloaded shakmaty v0.23.1
[INFO] [stderr]   Downloaded candle-nn v0.9.1
[INFO] [stderr]   Downloaded reborrow v0.5.5
[INFO] [stderr]   Downloaded twox-hash v2.1.1
[INFO] [stderr]   Downloaded btoi v0.4.3
[INFO] [stderr]   Downloaded shakmaty-syzygy v0.25.3
[INFO] [stderr]   Downloaded shakmaty v0.25.0
[INFO] [stderr]   Downloaded ug v0.4.0
[INFO] [stderr]   Downloaded chess v3.2.0
[INFO] [stderr]   Downloaded gemm-c32 v0.18.2
[INFO] [stderr]   Downloaded sysctl v0.6.0
[INFO] [stderr]   Downloaded gemm-common v0.18.2
[INFO] [stderr]   Downloaded gemm v0.18.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] afe5a6eec9e26667dedd58738213e31b51a300cb50c1c74c752338dbc194dd6a
[INFO] running `Command { std: "docker" "start" "-a" "afe5a6eec9e26667dedd58738213e31b51a300cb50c1c74c752338dbc194dd6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "afe5a6eec9e26667dedd58738213e31b51a300cb50c1c74c752338dbc194dd6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afe5a6eec9e26667dedd58738213e31b51a300cb50c1c74c752338dbc194dd6a", kill_on_drop: false }`
[INFO] [stdout] afe5a6eec9e26667dedd58738213e31b51a300cb50c1c74c752338dbc194dd6a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 777e29bd33540fd7ffb003eeb1ea0e40b0537177b933fa72fc5f79af81f18355
[INFO] running `Command { std: "docker" "start" "-a" "777e29bd33540fd7ffb003eeb1ea0e40b0537177b933fa72fc5f79af81f18355", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking reborrow v0.5.5
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling pulp v0.21.5
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling gimli v0.31.1
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling rustc-demangle v0.1.25
[INFO] [stderr]     Checking raw-cpuid v11.5.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling zip v1.1.4
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking btoi v0.4.3
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking libloading v0.8.8
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling shakmaty v0.23.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking clap_builder v4.5.40
[INFO] [stderr]    Compiling shakmaty v0.25.0
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]    Compiling addr2line v0.24.2
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking shakmaty v0.27.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking rmp v0.8.14
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]     Checking twox-hash v2.1.1
[INFO] [stderr]     Checking circular v0.3.0
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]     Checking lz4_flex v0.11.5
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking pgn-reader v0.22.0
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling backtrace v0.3.74
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling num_enum_derive v0.7.4
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling chess v3.2.0
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking num_enum v0.7.4
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking dyn-stack v0.13.0
[INFO] [stderr]     Checking dyn-stack v0.10.0
[INFO] [stderr]     Checking pulp v0.18.22
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking gemm-common v0.17.1
[INFO] [stderr]     Checking gemm-f32 v0.17.1
[INFO] [stderr]     Checking gemm-f64 v0.17.1
[INFO] [stderr]     Checking gemm-c32 v0.17.1
[INFO] [stderr]     Checking gemm-c64 v0.17.1
[INFO] [stderr]     Checking gemm-f16 v0.17.1
[INFO] [stderr]     Checking gemm v0.17.1
[INFO] [stderr]     Checking gemm-common v0.18.2
[INFO] [stderr]     Checking gemm-f32 v0.18.2
[INFO] [stderr]     Checking gemm-c64 v0.18.2
[INFO] [stderr]     Checking gemm-c32 v0.18.2
[INFO] [stderr]     Checking gemm-f64 v0.18.2
[INFO] [stderr]     Checking ndarray-rand v0.15.0
[INFO] [stderr]     Checking gemm-f16 v0.18.2
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking rmp-serde v1.3.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking gemm v0.18.2
[INFO] [stderr]     Checking safetensors v0.4.5
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking ug v0.4.0
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking shakmaty-syzygy v0.25.3
[INFO] [stderr]     Checking candle-core v0.9.1
[INFO] [stderr]     Checking rusqlite v0.32.1
[INFO] [stderr]     Checking candle-nn v0.9.1
[INFO] [stderr]     Checking chess-vector-engine v0.5.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/utils/object_pool.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | /// Thread-local vector pool instance
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/utils/object_pool.rs:262:1
[INFO] [stdout]     |
[INFO] [stdout] 262 | /// Thread-local vector pool for efficient reuse
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Mutex`
[INFO] [stdout]    --> src/utils/lazy.rs:623:32
[INFO] [stdout]     |
[INFO] [stdout] 623 |         let counter = Arc::new(Mutex::new(0));
[INFO] [stdout]     |                                ^^^^^ use of undeclared type `Mutex`
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `crate::ultra_fast_loader::tests::Mutex` exists but is inaccessible
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::nonpoison::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use tokio::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Mutex`
[INFO] [stdout]    --> src/utils/lazy.rs:678:49
[INFO] [stdout]     |
[INFO] [stdout] 678 |         manager.register("counter", || Arc::new(Mutex::new(42)));
[INFO] [stdout]     |                                                 ^^^^^ use of undeclared type `Mutex`
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `crate::ultra_fast_loader::tests::Mutex` exists but is inaccessible
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::nonpoison::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use tokio::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Mutex` in this scope
[INFO] [stdout]    --> src/utils/lazy.rs:680:27
[INFO] [stdout]     |
[INFO] [stdout] 680 |         let counter1: Arc<Mutex<i32>> = manager.get("counter").unwrap();
[INFO] [stdout]     |                           ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `crate::ultra_fast_loader::tests::Mutex` exists but is inaccessible
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::nonpoison::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use tokio::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Mutex` in this scope
[INFO] [stdout]    --> src/utils/lazy.rs:681:27
[INFO] [stdout]     |
[INFO] [stdout] 681 |         let counter2: Arc<Mutex<i32>> = manager.get("counter").unwrap();
[INFO] [stdout]     |                           ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `crate::ultra_fast_loader::tests::Mutex` exists but is inaccessible
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use std::sync::nonpoison::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 617 +     use tokio::sync::Mutex;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]    --> src/utils/lazy_motifs.rs:549:9
[INFO] [stdout]     |
[INFO] [stdout] 549 |     use tempfile::TempDir;
[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 doc comment
[INFO] [stdout]    --> src/utils/object_pool.rs:257:1
[INFO] [stdout]     |
[INFO] [stdout] 257 | /// Thread-local vector pool instance
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/utils/object_pool.rs:262:1
[INFO] [stdout]     |
[INFO] [stdout] 262 | /// Thread-local vector pool for efficient reuse
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
[INFO] [stdout]    --> src/utils/lazy.rs:624:13
[INFO] [stdout]     |
[INFO] [stdout] 624 |         let counter_clone = Arc::clone(&counter);
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 627 |             let mut count = counter_clone.lock().unwrap();
[INFO] [stdout]     |                             ------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `counter_clone` an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 624 |         let counter_clone: std::sync::Arc<T, A> = Arc::clone(&counter);
[INFO] [stdout]     |                          ++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `nnue_weight` is never read
[INFO] [stdout]    --> src/nnue.rs:436:31
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let mut nnue_weight = 0.7; // Base NNUE weight
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vector_weight` is never read
[INFO] [stdout]    --> src/nnue.rs:437:33
[INFO] [stdout]     |
[INFO] [stdout] 437 |         let mut vector_weight = 0.2; // Base vector weight  
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tactical_weight` is never read
[INFO] [stdout]    --> src/nnue.rs:438:35
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let mut tactical_weight = 0.1; // Base tactical weight
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/position_encoder.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let mut idx = offset;
[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/position_encoder.rs:702:13
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut idx = offset;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/position_encoder.rs:720:13
[INFO] [stdout]     |
[INFO] [stdout] 720 |         let mut idx = offset;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tactical_search.rs:823:13
[INFO] [stdout]     |
[INFO] [stdout] 823 |         let mut moves: Vec<ChessMove> = MoveGen::new_legal(board).collect();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tactical_search.rs:925:9
[INFO] [stdout]     |
[INFO] [stdout] 925 |         mut alpha: f32,
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `space_score` is never read
[INFO] [stdout]     --> src/tactical_search.rs:6454:31
[INFO] [stdout]      |
[INFO] [stdout] 6454 |         let mut space_score = 0.0;
[INFO] [stdout]      |                               ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]     --> src/tactical_search.rs:6741:50
[INFO] [stdout]      |
[INFO] [stdout] 6741 |     fn count_forcing_moves(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_piece`
[INFO] [stdout]     --> src/tactical_search.rs:6917:25
[INFO] [stdout]      |
[INFO] [stdout] 6917 |             if let Some(target_piece) = board.piece_on(target_square) {
[INFO] [stdout]      |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]     --> src/tactical_search.rs:7831:13
[INFO] [stdout]      |
[INFO] [stdout] 7831 |         let piece = moving_piece.unwrap();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moving_color`
[INFO] [stdout]     --> src/tactical_search.rs:7832:13
[INFO] [stdout]      |
[INFO] [stdout] 7832 |         let moving_color = board.side_to_move();
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moving_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source_square`
[INFO] [stdout]     --> src/tactical_search.rs:7988:13
[INFO] [stdout]      |
[INFO] [stdout] 7988 |         let source_square = chess_move.get_source();
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `nnue_weight` is never read
[INFO] [stdout]    --> src/nnue.rs:436:31
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let mut nnue_weight = 0.7; // Base NNUE weight
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vector_weight` is never read
[INFO] [stdout]    --> src/nnue.rs:437:33
[INFO] [stdout]     |
[INFO] [stdout] 437 |         let mut vector_weight = 0.2; // Base vector weight  
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tactical_weight` is never read
[INFO] [stdout]    --> src/nnue.rs:438:35
[INFO] [stdout]     |
[INFO] [stdout] 438 |         let mut tactical_weight = 0.1; // Base tactical weight
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/position_encoder.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let mut idx = offset;
[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/position_encoder.rs:702:13
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut idx = offset;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/position_encoder.rs:720:13
[INFO] [stdout]     |
[INFO] [stdout] 720 |         let mut idx = offset;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hybrid_evaluation.rs:388:13
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let mut eval_results = EvaluationResults::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicted_evaluation`
[INFO] [stdout]    --> src/hybrid_evaluation.rs:379:9
[INFO] [stdout]     |
[INFO] [stdout] 379 |         predicted_evaluation: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicted_evaluation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/hybrid_evaluation.rs:952:36
[INFO] [stdout]     |
[INFO] [stdout] 952 |     fn count_isolated_pawns(&self, board: &Board) -> u8 {
[INFO] [stdout]     |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:1672:9
[INFO] [stdout]      |
[INFO] [stdout] 1672 |         piece: Piece,
[INFO] [stdout]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/strategic_initiative.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let start_time = std::time::Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stockfish_testing.rs:194:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let mut best_move = None;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/uci.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let mut engine = self.engine.clone(); // Clone the engine for threaded evaluation
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SearchMetrics` is more private than the item `ChessMetrics::search_metrics`
[INFO] [stdout]    --> src/utils/profiler.rs:526:5
[INFO] [stdout]     |
[INFO] [stdout] 526 |     pub search_metrics: SearchMetrics,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ChessMetrics::search_metrics` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SearchMetrics` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/utils/profiler.rs:380:1
[INFO] [stdout]     |
[INFO] [stdout] 380 | struct SearchMetrics {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationMetrics` is more private than the item `ChessMetrics::evaluation_metrics`
[INFO] [stdout]    --> src/utils/profiler.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub evaluation_metrics: EvaluationMetrics,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ChessMetrics::evaluation_metrics` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EvaluationMetrics` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/utils/profiler.rs:390:1
[INFO] [stdout]     |
[INFO] [stdout] 390 | struct EvaluationMetrics {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `hybrid_evaluation::EvaluationBlender::compute_blend_weights`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:1767:5
[INFO] [stdout]      |
[INFO] [stdout] 1767 | /     pub fn compute_blend_weights(
[INFO] [stdout] 1768 | |         &self,
[INFO] [stdout] 1769 | |         complexity_score: f32,
[INFO] [stdout] 1770 | |         game_phase: &GamePhase,
[INFO] [stdout] 1771 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 1772 | |     ) -> BlendWeights {
[INFO] [stdout]      | |_____________________^ method `hybrid_evaluation::EvaluationBlender::compute_blend_weights` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `hybrid_evaluation::EvaluationBlender::blend_evaluations`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:1934:5
[INFO] [stdout]      |
[INFO] [stdout] 1934 | /     pub fn blend_evaluations(
[INFO] [stdout] 1935 | |         &self,
[INFO] [stdout] 1936 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 1937 | |         weights: &BlendWeights,
[INFO] [stdout] 1938 | |     ) -> f32 {
[INFO] [stdout]      | |____________^ method `hybrid_evaluation::EvaluationBlender::blend_evaluations` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `ConfidenceScorer::compute_confidence`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:2019:5
[INFO] [stdout]      |
[INFO] [stdout] 2019 | /     pub fn compute_confidence(
[INFO] [stdout] 2020 | |         &self,
[INFO] [stdout] 2021 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 2022 | |         blend_weights: &BlendWeights,
[INFO] [stdout] 2023 | |         complexity_score: f32,
[INFO] [stdout] 2024 | |         position_context: &PositionContext,
[INFO] [stdout] 2025 | |     ) -> ConfidenceAnalysisResult {
[INFO] [stdout]      | |_________________________________^ method `ConfidenceScorer::compute_confidence` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `ConfidenceScorer::compute_simple_confidence`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:2090:5
[INFO] [stdout]      |
[INFO] [stdout] 2090 | /     pub fn compute_simple_confidence(
[INFO] [stdout] 2091 | |         &self,
[INFO] [stdout] 2092 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 2093 | |         blend_weights: &BlendWeights,
[INFO] [stdout] 2094 | |         complexity_score: f32,
[INFO] [stdout] 2095 | |     ) -> f32 {
[INFO] [stdout]      | |____________^ method `ConfidenceScorer::compute_simple_confidence` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `ConfidenceScorer::update_accuracy_history`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:2481:5
[INFO] [stdout]      |
[INFO] [stdout] 2481 | /     pub fn update_accuracy_history(
[INFO] [stdout] 2482 | |         &self,
[INFO] [stdout] 2483 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 2484 | |         blend_weights: &BlendWeights,
[INFO] [stdout] ...    |
[INFO] [stdout] 2487 | |         predicted_outcome: f32,
[INFO] [stdout] 2488 | |     ) {
[INFO] [stdout]      | |_____^ method `ConfidenceScorer::update_accuracy_history` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `PatternClarityAnalyzer::analyze_pattern_clarity`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:2955:5
[INFO] [stdout]      |
[INFO] [stdout] 2955 | /     pub fn analyze_pattern_clarity(
[INFO] [stdout] 2956 | |         &self,
[INFO] [stdout] 2957 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 2958 | |         position_context: &PositionContext,
[INFO] [stdout] 2959 | |     ) -> PatternClarityResult {
[INFO] [stdout]      | |_____________________________^ method `PatternClarityAnalyzer::analyze_pattern_clarity` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EvaluationResults` is more private than the item `EvaluatorCombination::from_results`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:3244:5
[INFO] [stdout]      |
[INFO] [stdout] 3244 | /     pub fn from_results(
[INFO] [stdout] 3245 | |         evaluation_results: &EvaluationResults,
[INFO] [stdout] 3246 | |         blend_weights: &BlendWeights,
[INFO] [stdout] 3247 | |     ) -> Self {
[INFO] [stdout]      | |_____________^ associated function `EvaluatorCombination::from_results` is reachable at visibility `pub`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `EvaluationResults` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:467:1
[INFO] [stdout]      |
[INFO] [stdout]  467 | struct EvaluationResults {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_adaptive_search_depth` is never used
[INFO] [stdout]     --> src/lib.rs:1170:8
[INFO] [stdout]      |
[INFO] [stdout]  341 | impl ChessVectorEngine {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1170 |     fn calculate_adaptive_search_depth(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format_parsers` is never read
[INFO] [stdout]    --> src/utils/lazy.rs:340:5
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub struct LazyPositionDataset {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 340 |     format_parsers:
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_positions_impl` is never used
[INFO] [stdout]    --> src/utils/lazy.rs:387:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl LazyPositionDataset {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 387 |     fn load_positions_impl(&self, filename: &str) -> Result<Vec<(Array1<f32>, f32)>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `access_count` is never read
[INFO] [stdout]   --> src/utils/lazy_motifs.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct CachedMotif {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |     access_count: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CachedMotif` 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: fields `last_accessed` and `max_handles` are never read
[INFO] [stdout]   --> src/utils/lazy_motifs.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct FileHandleCache {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 81 |     handles: HashMap<PathBuf, Box<dyn std::io::Read + Send>>,
[INFO] [stdout] 82 |     last_accessed: HashMap<PathBuf, Instant>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 83 |     max_handles: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_old_handles` is never used
[INFO] [stdout]   --> src/utils/lazy_motifs.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | impl FileHandleCache {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn evict_old_handles(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/utils/lazy_motifs.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct MotifSegmentBuilder {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] 441 |     config: LazyLoadConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `deallocate` is never used
[INFO] [stdout]   --> src/utils/memory_pool.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl FixedSizeMemoryPool {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn deallocate(&self, ptr: NonNull<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file` is never read
[INFO] [stdout]   --> src/utils/mmap_loader.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct MmapLoader {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 11 |     file: File,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/utils/parallel.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct WorkerHandle {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 37 |     handle: thread::JoinHandle<()>,
[INFO] [stdout] 38 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pruned_branches` and `transposition_hits` are never read
[INFO] [stdout]    --> src/utils/profiler.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 380 | struct SearchMetrics {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 385 |     pruned_branches: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 386 |     transposition_hits: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchMetrics` 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: field `initiative_factors` is never read
[INFO] [stdout]    --> src/core_evaluation.rs:335:5
[INFO] [stdout]     |
[INFO] [stdout] 334 | pub struct StrategicAnalyzer {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 335 |     initiative_factors: InitiativeFactors,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `development_weight`, `center_weight`, and `activity_weight` are never read
[INFO] [stdout]    --> src/core_evaluation.rs:496:5
[INFO] [stdout]     |
[INFO] [stdout] 495 | struct InitiativeFactors {
[INFO] [stdout]     |        ----------------- fields in this struct
[INFO] [stdout] 496 |     development_weight: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 497 |     center_weight: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 498 |     activity_weight: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InitiativeFactors` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LichessPuzzle` is never constructed
[INFO] [stdout]   --> src/lichess_loader.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct LichessPuzzle {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/motif_extractor.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl MotifExtractor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn extract_pawn_patterns(&mut self, board: &Board, evaluation: f32, game_phase: &GamePhase) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn extract_piece_patterns(&mut self, board: &Board, evaluation: f32, game_phase: &GamePhase) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn extract_king_safety_patterns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     fn extract_initiative_patterns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     fn find_isolated_pawns(&self, board: &Board, color: Color) -> Vec<(File, Square)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     fn find_passed_pawns(&self, _board: &Board, _color: Color) -> Vec<(Square, f32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     fn find_doubled_pawns(&self, board: &Board, color: Color) -> Vec<(File, u8)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 551 |     fn find_knight_outposts(&self, _board: &Board, _color: Color) -> Vec<(Square, f32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 556 |     fn has_bishop_pair(&self, board: &Board, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     fn count_open_diagonals(&self, _board: &Board, _color: Color) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     fn analyze_rook_activity(&self, _board: &Board, _color: Color) -> Vec<(String, Square)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 571 |     fn evaluate_castling_safety(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 581 |     fn analyze_pawn_shield(&self, _board: &Board, _color: Color, _king_square: Square) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     fn calculate_space_advantage(&self, _board: &Board, _color: Color) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 591 |     fn calculate_development_score(&self, _board: &Board, _color: Color) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 679 |     fn hash_isolated_pawn_pattern(&self, file: File, color: Color) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 686 |     fn hash_passed_pawn_pattern(&self, square: Square, color: Color, advancement: f32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     fn hash_doubled_pawn_pattern(&self, file: File, color: Color, count: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 702 |     fn hash_knight_outpost_pattern(&self, square: Square, color: Color, strength: f32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 710 |     fn hash_bishop_pair_pattern(&self, color: Color, open_diagonals: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 717 |     fn hash_rook_pattern(&self, pattern_type: String, square: Square, color: Color) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     fn hash_king_safety_pattern(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 738 |     fn hash_pawn_shield_pattern(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 751 |     fn hash_space_pattern(&self, color: Color, space_value: f32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 758 |     fn hash_development_pattern(&self, color: Color, development_score: f32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `extract_features_optimized` and `get_feature_index_fast` are never used
[INFO] [stdout]    --> src/nnue.rs:619:8
[INFO] [stdout]     |
[INFO] [stdout] 586 | impl NNUE {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 619 |     fn extract_features_optimized(&self, board: &Board) -> CandleResult<Tensor> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     fn get_feature_index_fast(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_accumulator` is never used
[INFO] [stdout]     --> src/nnue.rs:1304:8
[INFO] [stdout]      |
[INFO] [stdout] 1196 | impl FeatureTransformer {
[INFO] [stdout]      | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1304 |     fn reset_accumulator(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/position_encoder.rs:48:8
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl PositionEncoder {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     fn encode_piece_positions(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     fn encode_piece_interactions(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn encode_game_state(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn encode_material_balance(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn encode_positional_features(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn distance_to_center(&self, square: Square) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn count_surrounding_pieces(&self, board: &Board, center: Square) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn calculate_mobility(&self, board: &Board, color: Color) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn encode_pawn_structure(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn encode_tactical_patterns(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     fn encode_center_control(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 451 |     fn encode_piece_coordination(&self, board: &Board, features: &mut Vec<f32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_INDICES` is never used
[INFO] [stdout]    --> src/position_encoder.rs:627:15
[INFO] [stdout]     |
[INFO] [stdout] 627 |         const PIECE_INDICES: [usize; 6] = [0, 1, 2, 3, 4, 5]; // pawn, knight, bishop, rook, queen, king
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cosine_similarity_fast` is never used
[INFO] [stdout]    --> src/similarity_search.rs:464:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl SimilaritySearch {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 464 |     fn cosine_similarity_fast(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lazy_config` is never read
[INFO] [stdout]   --> src/strategic_evaluator_lazy.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct LazyStrategicEvaluator {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     lazy_config: LazyLoadConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileType` is never used
[INFO] [stdout]   --> src/tactical_search.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum FileType {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `strategic_evaluator` is never read
[INFO] [stdout]    --> src/tactical_search.rs:649:5
[INFO] [stdout]     |
[INFO] [stdout] 635 | pub struct TacticalSearch {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 649 |     strategic_evaluator: StrategicEvaluator,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TacticalSearch` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/tactical_search.rs:1493:8
[INFO] [stdout]      |
[INFO] [stdout]  652 | impl TacticalSearch {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1493 |     fn calculate_position_complexity(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2025 |     fn is_obvious_blunder(&self, board: &Board, chess_move: ChessMove) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2126 |     fn is_near_enemy_king(&self, board: &Board, square: Square) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2143 |     fn is_likely_under_attack(&self, board: &Board, square: Square, piece: chess::Piece) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3124 |     fn evaluate_position_hybrid(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3224 |     fn piece_square_evaluation(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3443 |     fn mobility_evaluation(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3456 |     fn calculate_piece_mobility(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3495 |     fn count_knight_moves(&self, board: &Board, square: Square, color: Color) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3535 |     fn count_bishop_moves(&self, board: &Board, square: Square, color: Color) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3547 |     fn count_rook_moves(&self, board: &Board, square: Square, color: Color) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3559 |     fn count_queen_moves(&self, board: &Board, square: Square, color: Color) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3580 |     fn count_sliding_moves(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3618 |     fn calculate_pawn_mobility(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3694 |     fn center_control_evaluation(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4285 |     fn determine_game_phase(&self, board: &Board) -> GamePhase {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4373 |     fn evaluate_pawn_structure(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4432 |     fn has_adjacent_pawns(&self, board: &Board, color: Color, file: usize) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4454 |     fn is_passed_pawn(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4489 |     fn is_backward_pawn(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4520 |     fn has_pawn_support(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4548 |     fn evaluate_pawn_chains(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4577 |     fn count_pawn_chain(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4723 |     fn evaluate_endgame_patterns(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4751 |     fn count_all_pieces(&self, board: &Board) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4767 |     fn evaluate_king_pawn_endgames(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4809 |     fn evaluate_basic_mate_patterns(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4875 |     fn evaluate_opposition_patterns(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4913 |     fn evaluate_key_squares(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4943 |     fn evaluate_zugzwang_patterns(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4983 |     fn square_distance(&self, sq1: Square, sq2: Square) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4993 |     fn distance_to_nearest_corner(&self, square: Square) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5008 |     fn get_key_squares(&self, pawn_square: Square, color: Color) -> Vec<Square> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5039 |     fn quick_evaluate_position(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5061 |     fn evaluate_piece_coordination_endgame(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5105 |     fn evaluate_fortress_patterns(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5148 |     fn evaluate_theoretical_endgames(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5172 |     fn evaluate_rook_endgames(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5218 |     fn evaluate_bishop_endgames(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5272 |     fn evaluate_knight_endgames(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5303 |     fn evaluate_mixed_piece_endgames(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5353 |     fn calculate_material_difference(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5363 |     fn calculate_total_material(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5383 |     fn bishop_attacks_square(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5436 |     fn count_pawns_on_side(&self, board: &Board, kingside: bool) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5451 |     fn is_file_open(&self, board: &Board, file: usize) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5496 |     fn evaluate_hanging_pieces(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5540 |     fn find_mate_in_n(&self, board: &Board, max_depth: u32) -> Option<ChessMove> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5565 |     fn is_forced_mate(&self, board: &Board, depth: u32, maximizing: bool) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5654 |     fn evaluate_king_safety(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5708 |     fn evaluate_king_pawn_shield(&self, board: &Board, king_square: Square, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5742 |     fn evaluate_material_safety(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5818 |     fn evaluate_sacrifice_compensation(&self, chess_move: &ChessMove, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5854 |     fn count_developed_pieces(&self, board: &Board, color: Color) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5878 |     fn evaluate_king_safety_for_color(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5885 |     fn evaluate_piece_activity(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5943 |     fn evaluate_tactical_patterns_nnue(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5981 |     fn evaluate_positional_factors_nnue(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6007 |     fn evaluate_development_nnue(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6024 |     fn count_pins_created_by_color(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6048 |     fn count_fork_potential(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6074 |     fn count_discovered_attack_potential(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6090 |     fn evaluate_center_control_detailed(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6133 |     fn evaluate_pawn_structure_nnue(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6161 |     fn creates_pin_on_king(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6203 |     fn knight_can_fork(&self, board: &Board, knight_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6243 |     fn pawn_can_fork(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6277 |     fn can_create_discovered_attack(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6314 |     fn has_piece_behind_for_discovered_attack(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6358 |     fn count_passed_pawns(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6372 |     fn count_isolated_pawns(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6385 |     fn count_doubled_pawns(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6400 |     fn is_passed_pawn_nnue(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6433 |     fn is_isolated_pawn(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6453 |     fn evaluate_space_advantage(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6480 |     fn evaluate_piece_coordination(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6510 |     fn evaluate_dynamic_potential(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6545 |     fn evaluate_long_term_advantages(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6574 |     fn count_controlled_squares(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6641 |     fn count_advanced_pawns(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6662 |     fn evaluate_rook_coordination(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6685 |     fn has_bishop_pair_coordination(&self, board: &Board, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6691 |     fn count_piece_support_chains(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6711 |     fn evaluate_knight_coordination(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6741 |     fn count_forcing_moves(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6755 |     fn is_forcing_move(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6778 |     fn threatens_valuable_piece(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6806 |     fn evaluate_total_piece_activity(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6821 |     fn calculate_piece_mobility_at_square(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6898 |     fn count_moves_in_direction(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6934 |     fn count_potential_pawn_breaks(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6948 |     fn can_create_pawn_break(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6987 |     fn count_weak_squares_in_enemy_camp(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7015 |     fn is_weak_square(&self, board: &Board, square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7034 |     fn count_pawn_defenders(&self, board: &Board, square: Square, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7066 |     fn count_piece_outposts(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7087 |     fn is_outpost(&self, board: &Board, piece_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7114 |     fn evaluate_pawn_structure_advantage(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7133 |     fn count_pawn_chains(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7147 |     fn is_part_of_pawn_chain(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7180 |     fn count_connected_passed_pawns(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7196 |     fn has_connected_passed_pawn(&self, board: &Board, pawn_square: Square, color: Color) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7218 |     fn evaluate_file_control(&self, board: &Board, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7243 |     fn classify_file_type(&self, board: &Board, file: chess::File, color: Color) -> FileType {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7256 |     fn count_pawns_on_file(&self, board: &Board, file: chess::File, color: Color) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7270 |     fn evaluate_open_file_control(&self, board: &Board, file: chess::File, color: Color) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7292 |     fn evaluate_semi_open_file_control(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7323 |     fn get_strategic_initiative_evaluation(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7362 |     fn blend_evaluations(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7825 |     fn is_blunder_move(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7863 |     fn creates_hanging_piece(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7891 |     fn loses_material_without_compensation(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7920 |     fn exposes_king_to_danger(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7945 |     fn is_severe_positional_mistake(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7962 |     fn nnue_indicates_blunder(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7985 |     fn removes_key_king_defender(&self, chess_move: &ChessMove, board: &Board) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8006 |     fn evaluate_development_improvement(&self, old_board: &Board, new_board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8023 |     fn evaluate_attack_potential(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8130 |     fn evaluate_opening_patterns(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8161 |     fn evaluate_opening_blunders(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8213 |     fn evaluate_center_control(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8232 |     fn can_attack(&self, board: &Board, from_square: Square, to_square: Square) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `material_complexity`, `pawn_structure_complexity`, `king_safety_complexity`, `piece_coordination_complexity`, and `tactical_complexity` are never used
[INFO] [stdout]     --> src/hybrid_evaluation.rs:1063:8
[INFO] [stdout]      |
[INFO] [stdout]  544 | impl ComplexityAnalyzer {
[INFO] [stdout]      | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1063 |     fn material_complexity(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1080 |     fn pawn_structure_complexity(&self, _board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1091 |     fn king_safety_complexity(&self, _board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1101 |     fn piece_coordination_complexity(&self, _board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1111 |     fn tactical_complexity(&self, board: &Board) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp`, `weights`, `complexity_score`, `game_phase`, and `evaluation_count` are never read
[INFO] [stdout]     --> src/hybrid_evaluation.rs:2541:5
[INFO] [stdout]      |
[INFO] [stdout] 2540 | struct WeightHistoryEntry {
[INFO] [stdout]      |        ------------------ fields in this struct
[INFO] [stdout] 2541 |     timestamp: std::time::SystemTime,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 2542 |     weights: BlendWeights,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 2543 |     complexity_score: f32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 2544 |     game_phase: GamePhase,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 2545 |     evaluation_count: u32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `WeightHistoryEntry` 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: fields `weights`, `accuracy`, and `evaluation_count` are never read
[INFO] [stdout]     --> src/hybrid_evaluation.rs:2651:5
[INFO] [stdout]      |
[INFO] [stdout] 2650 | struct WeightPerformanceRecord {
[INFO] [stdout]      |        ----------------------- fields in this struct
[INFO] [stdout] 2651 |     weights: BlendWeights,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 2652 |     accuracy: f32,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 2653 |     evaluation_count: u32,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `WeightPerformanceRecord` 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: field `pattern_cache` is never read
[INFO] [stdout]    --> src/pattern_recognition.rs:657:5
[INFO] [stdout]     |
[INFO] [stdout] 655 | pub struct LearnedPatternDatabase {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] 656 |     patterns: Vec<LearnedPattern>,
[INFO] [stdout] 657 |     pattern_cache: HashMap<u64, Vec<usize>>, // Position hash -> pattern indices
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_difference` is never used
[INFO] [stdout]   --> src/stockfish_testing.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl EvaluationCategory {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 61 |     fn from_difference(diff_cp: i32) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `our_engine` is never read
[INFO] [stdout]    --> src/stockfish_testing.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct StockfishTester {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 264 |     our_engine: ChessVectorEngine,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_material_eval` is never used
[INFO] [stdout]    --> src/uci.rs:839:4
[INFO] [stdout]     |
[INFO] [stdout] 839 | fn calculate_material_eval(board: &Board) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn get(&self) -> ThreadLocalPooledObject<T> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn get(&self) -> ThreadLocalPooledObject<'_, T> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:200:23
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn get_zeroed(&self) -> ThreadLocalPooledObject<Array1<f32>> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn get_zeroed(&self) -> ThreadLocalPooledObject<'_, Array1<f32>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn get(&self) -> ThreadLocalPooledObject<Array1<f32>> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn get(&self) -> ThreadLocalPooledObject<'_, Array1<f32>> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tactical_search.rs:823:13
[INFO] [stdout]     |
[INFO] [stdout] 823 |         let mut moves: Vec<ChessMove> = MoveGen::new_legal(board).collect();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tactical_search.rs:925:9
[INFO] [stdout]     |
[INFO] [stdout] 925 |         mut alpha: f32,
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `space_score` is never read
[INFO] [stdout]     --> src/tactical_search.rs:6454:31
[INFO] [stdout]      |
[INFO] [stdout] 6454 |         let mut space_score = 0.0;
[INFO] [stdout]      |                               ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]     --> src/tactical_search.rs:6741:50
[INFO] [stdout]      |
[INFO] [stdout] 6741 |     fn count_forcing_moves(&self, board: &Board, color: Color) -> u8 {
[INFO] [stdout]      |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_piece`
[INFO] [stdout]     --> src/tactical_search.rs:6917:25
[INFO] [stdout]      |
[INFO] [stdout] 6917 |             if let Some(target_piece) = board.piece_on(target_square) {
[INFO] [stdout]      |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]     --> src/tactical_search.rs:7831:13
[INFO] [stdout]      |
[INFO] [stdout] 7831 |         let piece = moving_piece.unwrap();
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moving_color`
[INFO] [stdout]     --> src/tactical_search.rs:7832:13
[INFO] [stdout]      |
[INFO] [stdout] 7832 |         let moving_color = board.side_to_move();
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moving_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source_square`
[INFO] [stdout]     --> src/tactical_search.rs:7988:13
[INFO] [stdout]      |
[INFO] [stdout] 7988 |         let source_square = chess_move.get_source();
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_source_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_zeroed_vector`
[INFO] [stdout]  --> examples/object_pool_usage.rs:3:60
[INFO] [stdout]   |
[INFO] [stdout] 3 |     clear_vector_pools, get_vector, get_vector_pool_stats, get_zeroed_vector, return_vector,
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]   --> examples/basic_usage.rs:66:14
[INFO] [stdout]    |
[INFO] [stdout] 66 |     for (i, (board, eval, similarity)) in similar.iter().enumerate() {
[INFO] [stdout]    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]   --> examples/basic_usage.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 74 |         for (i, (board, eval, similarity)) in similar_e4.iter().enumerate() {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hybrid_evaluation.rs:388:13
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let mut eval_results = EvaluationResults::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicted_evaluation`
[INFO] [stdout]    --> src/hybrid_evaluation.rs:379:9
[INFO] [stdout]     |
[INFO] [stdout] 379 |         predicted_evaluation: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicted_evaluation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/hybrid_evaluation.rs:952:36
[INFO] [stdout]     |
[INFO] [stdout] 952 |     fn count_isolated_pawns(&self, board: &Board) -> u8 {
[INFO] [stdout]     |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:1672:9
[INFO] [stdout]      |
[INFO] [stdout] 1672 |         piece: Piece,
[INFO] [stdout]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_phase`
[INFO] [stdout]     --> src/hybrid_evaluation.rs:3907:19
[INFO] [stdout]      |
[INFO] [stdout] 3907 |         for (fen, expected_phase) in &positions {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_phase`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/strategic_initiative.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let start_time = std::time::Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/extract_strategic_motifs.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut db = StrategicDatabase::new();
[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/stockfish_testing.rs:194:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let mut best_move = None;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/uci.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let mut engine = self.engine.clone(); // Clone the engine for threaded evaluation
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UCIConfig`, `UCIEngine`, `run_uci_engine_with_config`, and `run_uci_engine`
[INFO] [stdout]   --> examples/uci_integration.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chess_vector_engine::{run_uci_engine, run_uci_engine_with_config, UCIConfig, UCIEngine};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Write`, and `self`
[INFO] [stdout]   --> examples/uci_integration.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::{self, BufRead, BufReader, Write};
[INFO] [stdout]    |               ^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command` and `Stdio`
[INFO] [stdout]   --> examples/uci_integration.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::process::{Command, Stdio};
[INFO] [stdout]    |                    ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChessMove`
[INFO] [stdout]  --> tests/tactical_validation_suite.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chess::{Board, ChessMove};
[INFO] [stdout]   |                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chess-vector-engine` (lib test) due to 5 previous errors; 25 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0282, E0425, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheStats`
[INFO] [stdout]  --> benches/core_evaluation_benchmark.rs:1:59
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chess_vector_engine::core_evaluation::{CoreEvaluator, CacheStats};
[INFO] [stdout]   |                                                           ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceType`, `GPUAccelerator`, `HybridEvaluationEngine`, `NNUE`, `StrategicInitiativeEvaluator`, and `TacticalSearch`
[INFO] [stdout]   --> examples/advanced_usage.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 |     ChessVectorEngine, TacticalConfig, TacticalSearch, 
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     StrategicInitiativeEvaluator, HybridEvaluationEngine,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     NNUE, PositionEncoder, GPUAccelerator, DeviceType
[INFO] [stdout]    |     ^^^^                   ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `depth`
[INFO] [stdout]   --> examples/advanced_usage.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         depth: 8,
[INFO] [stdout]    |         ^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `time_limit_ms`
[INFO] [stdout]   --> examples/advanced_usage.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         time_limit_ms: 1000,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `use_iterative_deepening`
[INFO] [stdout]   --> examples/advanced_usage.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         use_iterative_deepening: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout] help: a field with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 73 -         use_iterative_deepening: true,
[INFO] [stdout] 73 +         enable_iterative_deepening: true,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `enable_quiescence_search`
[INFO] [stdout]   --> examples/advanced_usage.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |         enable_quiescence_search: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout] help: a field with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 74 -         enable_quiescence_search: true,
[INFO] [stdout] 74 +         enable_quiescence: true,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `enable_move_ordering`
[INFO] [stdout]   --> examples/advanced_usage.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         enable_move_ordering: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `aspiration_window`
[INFO] [stdout]   --> examples/advanced_usage.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         aspiration_window: 50,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout] help: a field with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 77 |         aspiration_window_size: 50,
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `null_move_pruning`
[INFO] [stdout]   --> examples/advanced_usage.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         null_move_pruning: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `late_move_reduction`
[INFO] [stdout]   --> examples/advanced_usage.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         late_move_reduction: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `futility_pruning`
[INFO] [stdout]   --> examples/advanced_usage.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         futility_pruning: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `max_extensions`
[INFO] [stdout]   --> examples/advanced_usage.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |         max_extensions: 16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `enable_singular_extensions`
[INFO] [stdout]   --> examples/advanced_usage.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |         enable_singular_extensions: false,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `TacticalConfig` has no field named `razoring_enabled`
[INFO] [stdout]   --> examples/advanced_usage.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         razoring_enabled: true,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ `TacticalConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_iterative_deepening` ... and 45 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `depth` on type `TacticalConfig`
[INFO] [stdout]   --> examples/advanced_usage.rs:89:59
[INFO] [stdout]    |
[INFO] [stdout] 89 |     println!("   - Search depth: {} ply", tactical_config.depth);
[INFO] [stdout]    |                                                           ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_transposition_table` ... and 48 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `time_limit_ms` on type `TacticalConfig`
[INFO] [stdout]   --> examples/advanced_usage.rs:90:56
[INFO] [stdout]    |
[INFO] [stdout] 90 |     println!("   - Time limit: {} ms", tactical_config.time_limit_ms);
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `max_depth`, `max_time_ms`, `max_nodes`, `quiescence_depth`, `enable_transposition_table` ... and 48 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enable_quiescence_search` on type `TacticalConfig`
[INFO] [stdout]   --> examples/advanced_usage.rs:91:60
[INFO] [stdout]    |
[INFO] [stdout] 91 |     println!("   - Quiescence search: {}", tactical_config.enable_quiescence_search);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout] help: a field with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 91 -     println!("   - Quiescence search: {}", tactical_config.enable_quiescence_search);
[INFO] [stdout] 91 +     println!("   - Quiescence search: {}", tactical_config.enable_quiescence);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `similar_board`
[INFO] [stdout]    --> tests/engine_validation_suite.rs:166:22
[INFO] [stdout]     |
[INFO] [stdout] 166 |                 for (similar_board, _eval, similarity) in &similar {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_similar_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_board`
[INFO] [stdout]    --> tests/engine_validation_suite.rs:168:35
[INFO] [stdout]     |
[INFO] [stdout] 168 |                         if let Ok(group_board) = Board::from_str(group_fen) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_stats` found for struct `ChessVectorEngine` in the current scope
[INFO] [stdout]    --> examples/advanced_usage.rs:200:24
[INFO] [stdout]     |
[INFO] [stdout] 200 |     let stats = engine.get_stats();
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `lsh_stats` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 200 -     let stats = engine.get_stats();
[INFO] [stdout] 200 +     let stats = engine.lsh_stats();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_opening_book_stats` found for struct `ChessVectorEngine` in the current scope
[INFO] [stdout]    --> examples/advanced_usage.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let opening_stats = engine.get_opening_book_stats();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `opening_book_stats` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 201 -     let opening_stats = engine.get_opening_book_stats();
[INFO] [stdout] 201 +     let opening_stats = engine.opening_book_stats();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0560, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0560`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chess-vector-engine` (example "advanced_usage") due to 17 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "777e29bd33540fd7ffb003eeb1ea0e40b0537177b933fa72fc5f79af81f18355", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "777e29bd33540fd7ffb003eeb1ea0e40b0537177b933fa72fc5f79af81f18355", kill_on_drop: false }`
[INFO] [stdout] 777e29bd33540fd7ffb003eeb1ea0e40b0537177b933fa72fc5f79af81f18355
