cargo rustc --manifest-path ./engine/Cargo.toml --bin tcheran --release -- -C target-cpu=native --emit link=Tcheran-42874906
Compiling find-msvc-tools v0.1.9
Compiling shlex v2.0.1
Compiling cc v1.2.65
Compiling engine v13.0.0-dev (/private/var/folders/vj/wh6vw3vd3t509h3hnsgg6_lc0000gn/T/tmplurc1ket/Tcheran/Tcheran-tmp/engine)
warning: engine@13.0.0-dev: Fetched network: multilayer.nnue
warning: unused import: `neon::*`
--> engine/src/engine/eval/simd/mod.rs:12:17
|
12 | pub use neon::*;
| ^^^^^^^
|
= note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
error[E0080]: transmuting from 9-byte type to 12735040-byte type: `[u8; 9]` -> `RawNetwork`
--> engine/src/engine/eval/nnue.rs:56:14
|
56 | unsafe { std::mem::transmute(*include_bytes!(env!("NETWORK"))) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation of `engine::eval::nnue::RAW_NETWORK` failed here
error[E0080]: transmuting from 9-byte type to 12735040-byte type: `[u8; 9]` -> `Network`
--> engine/src/engine/eval/nnue.rs:57:44
|
57 | pub static mut NETWORK: Network = unsafe { std::mem::transmute(*include_bytes!(env!("NETWORK"))) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation of `engine::eval::nnue::NETWORK` failed here
warning[E0133]: call to unsafe function `engine::eval::nnue::inference::propagate_l1` is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:16:18
|
16 | let act_l1 = propagate_l1(&act_ft, output_bucket);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
|
= note: consult the function's documentation for information on how to avoid undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
--> engine/src/engine/eval/nnue/inference.rs:12:1
|
12 | pub unsafe fn forward(us: &Accumulator, them: &Accumulator, output_bucket: usize) -> i32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
= note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
warning[E0133]: call to unsafe function `engine::eval::nnue::inference::propagate_l2` is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:19:18
|
19 | let act_l2 = propagate_l2(&act_l1, output_bucket);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
|
= note: consult the function's documentation for information on how to avoid undefined behavior
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: call to unsafe function `engine::eval::nnue::inference::propagate_l3` is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:22:18
|
22 | let act_l3 = propagate_l3(&act_l2, output_bucket);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
|
= note: consult the function's documentation for information on how to avoid undefined behavior
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: use of mutable static is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:50:52
|
50 | intermediate[l2] += input[l1] as i32 * NETWORK.l1_weights[output_bucket][l2][l1] as i32;
| ^^^^^^^ use of mutable static
|
= note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
--> engine/src/engine/eval/nnue/inference.rs:45:1
|
45 | unsafe fn propagate_l1(input: &[i8; L1], output_bucket: usize) -> [f32; L2] {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: use of mutable static is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:59:20
|
59 | let bias = NETWORK.l1_biases[output_bucket][l2];
| ^^^^^^^ use of mutable static
|
= note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: use of mutable static is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:68:22
|
68 | let mut output = NETWORK.l2_biases[output_bucket];
| ^^^^^^^ use of mutable static
|
= note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
--> engine/src/engine/eval/nnue/inference.rs:67:1
|
67 | unsafe fn propagate_l2(input: &[f32; L2], output_bucket: usize) -> [f32; L3] {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: use of mutable static is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:74:26
|
74 | let weight = NETWORK.l2_weights[output_bucket][l3][l2];
| ^^^^^^^ use of mutable static
|
= note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: use of mutable static is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:87:22
|
87 | let mut output = NETWORK.l3_biases[output_bucket];
| ^^^^^^^ use of mutable static
|
= note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
--> engine/src/engine/eval/nnue/inference.rs:86:1
|
86 | unsafe fn propagate_l3(input: &[f32; L3], output_bucket: usize) -> f32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
warning[E0133]: use of mutable static is unsafe and requires unsafe block
--> engine/src/engine/eval/nnue/inference.rs:90:31
|
90 | output += input[l3] * NETWORK.l3_weights[output_bucket][l3];
| ^^^^^^^ use of mutable static
|
= note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior
= note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
--> engine/src/engine/eval/nnue.rs:56:14
|
56 | unsafe { std::mem::transmute(*include_bytes!(env!("NETWORK"))) };
| ^^^^^^^^^^^^^^^^^^^
|
= note: source type: `[u8; 9]` (72 bits)
= note: target type: `RawNetwork` (101880320 bits)
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
--> engine/src/engine/eval/nnue.rs:57:44
|
57 | pub static mut NETWORK: Network = unsafe { std::mem::transmute(*include_bytes!(env!("NETWORK"))) };
| ^^^^^^^^^^^^^^^^^^^
|
= note: source type: `[u8; 9]` (72 bits)
= note: target type: `Network` (101880320 bits)
Some errors have detailed explanations: E0080, E0133, E0512.
For more information about an error, try `rustc --explain E0080`.
warning: `engine` (lib) generated 10 warnings
warning: engine@13.0.0-dev: Fetched network: multilayer.nnue
error: could not compile `engine` (lib) due to 4 previous errors; 10 warnings emitted
make: *** [build] Error 101