[INFO] updating cached repository https://github.com/Janmajayamall/tfhe-research [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3a1651c41715670501b557d13dd720dbe3520451 [INFO] checking Janmajayamall/tfhe-research/3a1651c41715670501b557d13dd720dbe3520451 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanmajayamall%2Ftfhe-research" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Janmajayamall/tfhe-research on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Janmajayamall/tfhe-research [INFO] finished tweaking git repo https://github.com/Janmajayamall/tfhe-research [INFO] tweaked toml for git repo https://github.com/Janmajayamall/tfhe-research written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Janmajayamall/tfhe-research 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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8bcb89d255eecf32ce0d190a1519b498862426ea43ec727a4843496235b2fb81 [INFO] running `Command { std: "docker" "start" "-a" "8bcb89d255eecf32ce0d190a1519b498862426ea43ec727a4843496235b2fb81", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8bcb89d255eecf32ce0d190a1519b498862426ea43ec727a4843496235b2fb81", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8bcb89d255eecf32ce0d190a1519b498862426ea43ec727a4843496235b2fb81", kill_on_drop: false }` [INFO] [stdout] 8bcb89d255eecf32ce0d190a1519b498862426ea43ec727a4843496235b2fb81 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3d2dfcbecd49ec1d1176ecc1faf641a625d4284cadbc70745068489d42bf4f1b [INFO] running `Command { std: "docker" "start" "-a" "3d2dfcbecd49ec1d1176ecc1faf641a625d4284cadbc70745068489d42bf4f1b", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling libm v0.2.7 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling matrixmultiply v0.3.7 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking num-complex v0.4.3 [INFO] [stderr] Checking ndarray v0.15.6 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking tfhe v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `AddAssign` and `Add` [INFO] [stdout] --> src/lib.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::{Add, AddAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Array1`, `Array2`, `Axis`, `concatenate`, and `s` [INFO] [stdout] --> src/lib.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use ndarray::{concatenate, s, Array1, Array2, Axis}; [INFO] [stdout] | ^^^^^^^^^^^ ^ ^^^^^^ ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AddAssign` and `Add` [INFO] [stdout] --> src/lib.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::{Add, AddAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Array1`, `Array2`, `Axis`, `concatenate`, and `s` [INFO] [stdout] --> src/lib.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use ndarray::{concatenate, s, Array1, Array2, Axis}; [INFO] [stdout] | ^^^^^^^^^^^ ^ ^^^^^^ ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::dot_product` [INFO] [stdout] --> src/lib.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use ops::dot_product; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CryptoRng`, `RngCore`, and `thread_rng` [INFO] [stdout] --> src/lib.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `poly_dot_product`, `sample_binary_array`, and `sample_uniform_array` [INFO] [stdout] --> src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use utils::{poly_dot_product, sample_binary_array, sample_uniform_array}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GgswParams`, `GlwePlaintext`, `LweParams`, `decrypt_glwe_ciphertext`, `poly_mul_monomial_custom_mod`, and `poly_mul_monomial` [INFO] [stdout] --> src/bootstrapping.rs:3:58 [INFO] [stdout] | [INFO] [stdout] 3 | ggsw::{cmux, encrypt_ggsw_plaintext, GgswCiphertext, GgswParams, GgswPlaintext}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 4 | glwe::{ [INFO] [stdout] 5 | decrypt_glwe_ciphertext, trivial_encrypt_glwe_plaintext, GlweCiphertext, GlweCleartext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | GlweParams, GlwePlaintext, GlweSecretKey, Monomial, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | lwe::{LweCiphertext, LweParams, LweSecretKey}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 10 | utils::{poly_mul_monomial, poly_mul_monomial_custom_mod, switch_modulus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Axis` and `concatenate` [INFO] [stdout] --> src/bootstrapping.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use ndarray::{concatenate, s, Array1, Axis}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/bootstrapping.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AddAssign` and `Add` [INFO] [stdout] --> src/bootstrapping.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | use std::ops::{Add, AddAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Array` [INFO] [stdout] --> src/ggsw.rs:1:31 [INFO] [stdout] | [INFO] [stdout] 1 | use ndarray::{concatenate, s, Array, Array3, Axis}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GlweCleartext` and `encrypt_glwe_plaintext` [INFO] [stdout] --> src/ggsw.rs:7:36 [INFO] [stdout] | [INFO] [stdout] 7 | decompose_glwe_ciphertext, encrypt_glwe_plaintext, encrypt_glwe_zero, GlweCiphertext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | GlweCleartext, GlweParams, GlweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lwe::LweSecretKey` [INFO] [stdout] --> src/glwe.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | lwe::LweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Array` [INFO] [stdout] --> src/glwe.rs:11:31 [INFO] [stdout] | [INFO] [stdout] 11 | use ndarray::{concatenate, s, Array, Array1, Array2, ArrayView1, Axis}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/glwe.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MulAssign` [INFO] [stdout] --> src/glwe.rs:13:37 [INFO] [stdout] | [INFO] [stdout] 13 | use std::ops::{Add, AddAssign, Mul, MulAssign, Sub, SubAssign}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/glwe.rs:200:65 [INFO] [stdout] | [INFO] [stdout] 200 | let error = sample_gaussian_array(glwe_params.std_dev, rng, (glwe_params.degree())); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 200 - let error = sample_gaussian_array(glwe_params.std_dev, rng, (glwe_params.degree())); [INFO] [stdout] 200 + let error = sample_gaussian_array(glwe_params.std_dev, rng, glwe_params.degree()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/key_switching.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | decomposer::{self, SignedDecomposer}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Neg` [INFO] [stdout] --> src/key_switching.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Neg; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `poly_dot_product` [INFO] [stdout] --> src/lwe.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | utils::{poly_dot_product, sample_binary_array, sample_gaussian_slice, sample_uniform_array}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Array2`, `Axis`, and `concatenate` [INFO] [stdout] --> src/lwe.rs:5:15 [INFO] [stdout] | [INFO] [stdout] 5 | use ndarray::{concatenate, s, Array1, Array2, Axis}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/lwe.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddAssign` [INFO] [stdout] --> src/lwe.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ops::{Add, AddAssign, Mul}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/lwe.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | data: sample_binary_array(rng, (lwe_params.lwe_dimension)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 57 - data: sample_binary_array(rng, (lwe_params.lwe_dimension)), [INFO] [stdout] 57 + data: sample_binary_array(rng, lwe_params.lwe_dimension), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/lwe.rs:125:64 [INFO] [stdout] | [INFO] [stdout] 125 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 125 - let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] 125 + let mut a_samples: Array1 = sample_uniform_array(rng, lwe_params.lwe_dimension); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/lwe.rs:148:64 [INFO] [stdout] | [INFO] [stdout] 148 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 148 - let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] 148 + let mut a_samples: Array1 = sample_uniform_array(rng, lwe_params.lwe_dimension); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `glwe::GlweParams` and `lwe::LweParams` [INFO] [stdout] --> src/test_vector.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{glwe::GlweParams, lwe::LweParams, TfheParams}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/lib.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | mod test_vector; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ArrayView`, `Axis`, `Shape`, and `concatenate` [INFO] [stdout] --> src/utils.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | concatenate, Array, Array1, Array2, ArrayView, ArrayView1, ArrayView2, Axis, Dimension, Shape, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MulAssign` and `Mul` [INFO] [stdout] --> src/utils.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::{AddAssign, Mul, MulAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/utils.rs:27:42 [INFO] [stdout] | [INFO] [stdout] 27 | let v = integer_division(*v, (1 << (log_from - log_to))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - let v = integer_division(*v, (1 << (log_from - log_to))); [INFO] [stdout] 27 + let v = integer_division(*v, 1 << (log_from - log_to)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/utils.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 227 | for j in (0..i + 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 227 - for j in (0..i + 1) { [INFO] [stdout] 227 + for j in 0..i + 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/utils.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | for j in (i + 1..n) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 230 - for j in (i + 1..n) { [INFO] [stdout] 230 + for j in i + 1..n { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::dot_product` [INFO] [stdout] --> src/lib.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use ops::dot_product; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CryptoRng`, `RngCore`, and `thread_rng` [INFO] [stdout] --> src/lib.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `poly_dot_product`, `sample_binary_array`, and `sample_uniform_array` [INFO] [stdout] --> src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use utils::{poly_dot_product, sample_binary_array, sample_uniform_array}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GgswParams`, `GlwePlaintext`, `LweParams`, `decrypt_glwe_ciphertext`, and `poly_mul_monomial` [INFO] [stdout] --> src/bootstrapping.rs:3:58 [INFO] [stdout] | [INFO] [stdout] 3 | ggsw::{cmux, encrypt_ggsw_plaintext, GgswCiphertext, GgswParams, GgswPlaintext}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 4 | glwe::{ [INFO] [stdout] 5 | decrypt_glwe_ciphertext, trivial_encrypt_glwe_plaintext, GlweCiphertext, GlweCleartext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | GlweParams, GlwePlaintext, GlweSecretKey, Monomial, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | lwe::{LweCiphertext, LweParams, LweSecretKey}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 10 | utils::{poly_mul_monomial, poly_mul_monomial_custom_mod, switch_modulus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Axis` and `concatenate` [INFO] [stdout] --> src/bootstrapping.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use ndarray::{concatenate, s, Array1, Axis}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/bootstrapping.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AddAssign` and `Add` [INFO] [stdout] --> src/bootstrapping.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | use std::ops::{Add, AddAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LweParams`, `construct_test_vector_boolean`, `decompose_glwe_ciphertext`, `encrypt_glwe_zero`, and `self` [INFO] [stdout] --> src/bootstrapping.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | decompose_glwe_ciphertext, encrypt_glwe_plaintext, encrypt_glwe_zero, GlweCleartext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | lwe::{self, decrypt_lwe, encrypt_lwe_plaintext, LweCleartext, LweParams, LweSecretKey}, [INFO] [stdout] | ^^^^ ^^^^^^^^^ [INFO] [stdout] 167 | test_vector::{construct_identity_test_vector, construct_test_vector_boolean}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `distributions::Uniform` [INFO] [stdout] --> src/bootstrapping.rs:169:16 [INFO] [stdout] | [INFO] [stdout] 169 | use rand::{distributions::Uniform, thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/bootstrapping.rs:274:21 [INFO] [stdout] | [INFO] [stdout] 274 | ((approximate_lwe[i]) as isize), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 274 - ((approximate_lwe[i]) as isize), [INFO] [stdout] 274 + (approximate_lwe[i]) as isize, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/bootstrapping.rs:284:13 [INFO] [stdout] | [INFO] [stdout] 284 | (tmp as isize), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 284 - (tmp as isize), [INFO] [stdout] 284 + tmp as isize, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Array` [INFO] [stdout] --> src/ggsw.rs:1:31 [INFO] [stdout] | [INFO] [stdout] 1 | use ndarray::{concatenate, s, Array, Array3, Axis}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lwe::LweSecretKey` [INFO] [stdout] --> src/glwe.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | lwe::LweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Array` [INFO] [stdout] --> src/glwe.rs:11:31 [INFO] [stdout] | [INFO] [stdout] 11 | use ndarray::{concatenate, s, Array, Array1, Array2, ArrayView1, Axis}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/glwe.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MulAssign` [INFO] [stdout] --> src/glwe.rs:13:37 [INFO] [stdout] | [INFO] [stdout] 13 | use std::ops::{Add, AddAssign, Mul, MulAssign, Sub, SubAssign}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/glwe.rs:200:65 [INFO] [stdout] | [INFO] [stdout] 200 | let error = sample_gaussian_array(glwe_params.std_dev, rng, (glwe_params.degree())); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 200 - let error = sample_gaussian_array(glwe_params.std_dev, rng, (glwe_params.degree())); [INFO] [stdout] 200 + let error = sample_gaussian_array(glwe_params.std_dev, rng, glwe_params.degree()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/key_switching.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | decomposer::{self, SignedDecomposer}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Neg` [INFO] [stdout] --> src/key_switching.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Neg; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `poly_dot_product` [INFO] [stdout] --> src/lwe.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | utils::{poly_dot_product, sample_binary_array, sample_gaussian_slice, sample_uniform_array}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Array2`, `Axis`, and `concatenate` [INFO] [stdout] --> src/lwe.rs:5:15 [INFO] [stdout] | [INFO] [stdout] 5 | use ndarray::{concatenate, s, Array1, Array2, Axis}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/lwe.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{thread_rng, CryptoRng, RngCore}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddAssign` [INFO] [stdout] --> src/lwe.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ops::{Add, AddAssign, Mul}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/lwe.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | data: sample_binary_array(rng, (lwe_params.lwe_dimension)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 57 - data: sample_binary_array(rng, (lwe_params.lwe_dimension)), [INFO] [stdout] 57 + data: sample_binary_array(rng, lwe_params.lwe_dimension), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/lwe.rs:125:64 [INFO] [stdout] | [INFO] [stdout] 125 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 125 - let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] 125 + let mut a_samples: Array1 = sample_uniform_array(rng, lwe_params.lwe_dimension); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/lwe.rs:148:64 [INFO] [stdout] | [INFO] [stdout] 148 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 148 - let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] 148 + let mut a_samples: Array1 = sample_uniform_array(rng, lwe_params.lwe_dimension); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `glwe::GlweParams` and `lwe::LweParams` [INFO] [stdout] --> src/test_vector.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{glwe::GlweParams, lwe::LweParams, TfheParams}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `glwe::GlweParams` and `lwe::LweParams` [INFO] [stdout] --> src/test_vector.rs:71:17 [INFO] [stdout] | [INFO] [stdout] 71 | use crate::{glwe::GlweParams, lwe::LweParams, TfheParams}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ArrayView`, `Axis`, `Shape`, and `concatenate` [INFO] [stdout] --> src/utils.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | concatenate, Array, Array1, Array2, ArrayView, ArrayView1, ArrayView2, Axis, Dimension, Shape, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MulAssign` and `Mul` [INFO] [stdout] --> src/utils.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::{AddAssign, Mul, MulAssign}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/utils.rs:27:42 [INFO] [stdout] | [INFO] [stdout] 27 | let v = integer_division(*v, (1 << (log_from - log_to))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - let v = integer_division(*v, (1 << (log_from - log_to))); [INFO] [stdout] 27 + let v = integer_division(*v, 1 << (log_from - log_to)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/utils.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 227 | for j in (0..i + 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 227 - for j in (0..i + 1) { [INFO] [stdout] 227 + for j in 0..i + 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/utils.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | for j in (i + 1..n) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 230 - for j in (i + 1..n) { [INFO] [stdout] 230 + for j in i + 1..n { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `glwe` and `test_vector` [INFO] [stdout] --> src/utils.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | glwe, [INFO] [stdout] | ^^^^ [INFO] [stdout] 249 | lwe::{encrypt_lwe_plaintext, LweCleartext, LweSecretKey}, [INFO] [stdout] 250 | test_vector, TfheParams, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Dimension` [INFO] [stdout] --> src/utils.rs:3:82 [INFO] [stdout] | [INFO] [stdout] 3 | concatenate, Array, Array1, Array2, ArrayView, ArrayView1, ArrayView2, Axis, Dimension, Shape, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lwe_secret_key` [INFO] [stdout] --> src/bootstrapping.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | lwe_secret_key: &LweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lwe_secret_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `glwe_secret_key` [INFO] [stdout] --> src/bootstrapping.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | glwe_secret_key: &GlweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_glwe_secret_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Dimension` [INFO] [stdout] --> src/utils.rs:3:82 [INFO] [stdout] | [INFO] [stdout] 3 | concatenate, Array, Array1, Array2, ArrayView, ArrayView1, ArrayView2, Axis, Dimension, Shape, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lwe_secret_key` [INFO] [stdout] --> src/bootstrapping.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | lwe_secret_key: &LweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lwe_secret_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `glwe_secret_key` [INFO] [stdout] --> src/bootstrapping.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | glwe_secret_key: &GlweSecretKey, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_glwe_secret_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> src/glwe.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | rng: &mut R, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lwe.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lwe.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ggsw_ciphertext` [INFO] [stdout] --> src/ggsw.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | let ggsw_ciphertext = encrypt_ggsw_plaintext( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ggsw_ciphertext` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let mut res = p0_teoplitz.dot(&p1); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ks_decomposer` is never read [INFO] [stdout] --> src/lib.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct TfheParams { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 30 | ks_decomposer: DecomposerParams, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `and` is never used [INFO] [stdout] --> src/boolean.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn and( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or` is never used [INFO] [stdout] --> src/boolean.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn or( [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BootstrappingKey` is never constructed [INFO] [stdout] --> src/bootstrapping.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct BootstrappingKey { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bootstrapping_key_gen` is never used [INFO] [stdout] --> src/bootstrapping.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn bootstrapping_key_gen( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bootstrap` is never used [INFO] [stdout] --> src/bootstrapping.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn bootstrap( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_extract` is never used [INFO] [stdout] --> src/bootstrapping.rs:122:4 [INFO] [stdout] | [INFO] [stdout] 122 | fn sample_extract( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `log_base`, `levels`, and `log_q` are never read [INFO] [stdout] --> src/decomposer.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct DecomposerParams { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 3 | pub(crate) log_base: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 4 | pub(crate) levels: usize, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 5 | pub(crate) log_q: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DecomposerParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/decomposer.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl DecomposerParams { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 9 | pub fn new(log_base: usize, levels: usize, log_q: usize) -> DecomposerParams { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SignedDecomposer` is never constructed [INFO] [stdout] --> src/decomposer.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SignedDecomposer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `round_value`, `decompose`, and `recompose` are never used [INFO] [stdout] --> src/decomposer.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl SignedDecomposer { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 23 | pub fn new(params: DecomposerParams) -> SignedDecomposer { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn round_value(&self, value: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn decompose(&self, value: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn recompose(&self, legs: &[u32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GgswPlaintext` is never constructed [INFO] [stdout] --> src/ggsw.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct GgswPlaintext { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ggsw.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl GgswPlaintext { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 21 | pub fn new(message: u32) -> GgswPlaintext { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `glwe_params` and `decomposer_params` are never read [INFO] [stdout] --> src/ggsw.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct GgswParams { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 27 | pub(crate) glwe_params: GlweParams, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 28 | pub(crate) decomposer_params: DecomposerParams, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GgswCiphertext` is never constructed [INFO] [stdout] --> src/ggsw.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct GgswCiphertext { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_ggsw_plaintext` is never used [INFO] [stdout] --> src/ggsw.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn encrypt_ggsw_plaintext( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `external_product` is never used [INFO] [stdout] --> src/ggsw.rs:132:4 [INFO] [stdout] | [INFO] [stdout] 132 | fn external_product( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cmux` is never used [INFO] [stdout] --> src/ggsw.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn cmux( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompose_poly` is never used [INFO] [stdout] --> src/glwe.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn decompose_poly(poly: &ArrayView1, signed_decomposer: &SignedDecomposer) -> Array2 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompose_glwe_ciphertext` is never used [INFO] [stdout] --> src/glwe.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn decompose_glwe_ciphertext( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `glwe_dimension`, `padding_bits`, `log_q`, `log_p`, and `std_dev` are never read [INFO] [stdout] --> src/glwe.rs:113:16 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct GlweParams { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 113 | pub(crate) glwe_dimension: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 114 | pub(crate) log_degree: usize, [INFO] [stdout] 115 | pub(crate) padding_bits: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 116 | /// q in Z/2^qZ [INFO] [stdout] 117 | pub(crate) log_q: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 118 | /// p in Z/2^pZ [INFO] [stdout] 119 | pub(crate) log_p: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 120 | pub(crate) std_dev: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GlweParams` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GlweCleartext` is never constructed [INFO] [stdout] --> src/glwe.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 137 | pub struct GlweCleartext { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GlweCleartext` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `encode_message` is never used [INFO] [stdout] --> src/glwe.rs:141:12 [INFO] [stdout] | [INFO] [stdout] 140 | impl GlweCleartext { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 141 | pub fn encode_message(message: &[u32], glwe_params: &GlweParams) -> GlwePlaintext { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `decode` is never used [INFO] [stdout] --> src/glwe.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 159 | impl GlwePlaintext { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 160 | pub fn decode(&self, glwe_params: &GlweParams) -> GlweCleartext { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `random` is never used [INFO] [stdout] --> src/glwe.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 176 | impl GlweSecretKey { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 177 | pub fn random(glwe_params: &GlweParams, rng: &mut R) -> GlweSecretKey { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_glwe_zero` is never used [INFO] [stdout] --> src/glwe.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn encrypt_glwe_zero( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_glwe_plaintext` is never used [INFO] [stdout] --> src/glwe.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn encrypt_glwe_plaintext( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trivial_encrypt_glwe_plaintext` is never used [INFO] [stdout] --> src/glwe.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn trivial_encrypt_glwe_plaintext( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_glwe_ciphertext` is never used [INFO] [stdout] --> src/glwe.rs:245:8 [INFO] [stdout] | [INFO] [stdout] 245 | pub fn decrypt_glwe_ciphertext( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KeySwitchingKey` is never constructed [INFO] [stdout] --> src/key_switching.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct KeySwitchingKey { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `generate_ksk` is never used [INFO] [stdout] --> src/key_switching.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl KeySwitchingKey { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn generate_ksk( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `key_switch_lwe` is never used [INFO] [stdout] --> src/key_switching.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn key_switch_lwe( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lwe_dimension`, `padding_bits`, `log_q`, `log_p`, and `std_dev` are never read [INFO] [stdout] --> src/lwe.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct LweParams { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 27 | pub(crate) lwe_dimension: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 28 | /// q in Z/2^qZ [INFO] [stdout] 29 | pub(crate) padding_bits: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 30 | pub(crate) log_q: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 31 | /// p in Z/2^pZ [INFO] [stdout] 32 | pub(crate) log_p: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 33 | pub(crate) std_dev: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LweParams` 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 `data` is never read [INFO] [stdout] --> src/lwe.rs:51:16 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct LweSecretKey { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 51 | pub(crate) data: Array1, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LweSecretKey` 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: associated function `random` is never used [INFO] [stdout] --> src/lwe.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl LweSecretKey { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 55 | pub fn random(lwe_params: &LweParams, rng: &mut R) -> LweSecretKey { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `encode_message` and `encode` are never used [INFO] [stdout] --> src/lwe.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl LweCleartext { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 82 | /// We limit q and p to powers of 2 [INFO] [stdout] 83 | pub fn encode_message(m: u32, lwe_params: &LweParams) -> LwePlaintext { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn encode(&self, lwe_params: &LweParams) -> LwePlaintext { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LwePlaintext` is never constructed [INFO] [stdout] --> src/lwe.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct LwePlaintext { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LwePlaintext` 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: method `decode` is never used [INFO] [stdout] --> src/lwe.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl LwePlaintext { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 102 | pub fn decode(&self, lwe_params: &LweParams) -> LweCleartext { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_lwe_zero` is never used [INFO] [stdout] --> src/lwe.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn encrypt_lwe_zero( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_lwe_plaintext` is never used [INFO] [stdout] --> src/lwe.rs:138:8 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn encrypt_lwe_plaintext( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_lwe` is never used [INFO] [stdout] --> src/lwe.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn decrypt_lwe(lwe_params: &LweParams, sk: &LweSecretKey, ct: &LweCiphertext) -> LwePlaintext { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> src/glwe.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | rng: &mut R, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dot_product` is never used [INFO] [stdout] --> src/ops.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn dot_product(a: &[u32], b: &[u32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `construct_test_vector_boolean` is never used [INFO] [stdout] --> src/test_vector.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn construct_test_vector_boolean( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `construct_identity_test_vector` is never used [INFO] [stdout] --> src/test_vector.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn construct_identity_test_vector(tfhe_params: &TfheParams) -> Array1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `construct_test_from_lut` is never used [INFO] [stdout] --> src/test_vector.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn construct_test_from_lut(tfhe_params: &TfheParams, lut: &[u32]) -> Array1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `integer_division` is never used [INFO] [stdout] --> src/utils.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn integer_division(a: u32, divisor: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `switch_modulus` is never used [INFO] [stdout] --> src/utils.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn switch_modulus(values: &[u32], log_from: usize, log_to: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `f64_to_torus_unsigned_representation` is never used [INFO] [stdout] --> src/utils.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn f64_to_torus_unsigned_representation(v: f64) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_gaussian_slice` is never used [INFO] [stdout] --> src/utils.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn sample_gaussian_slice( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_gaussian_array` is never used [INFO] [stdout] --> src/utils.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn sample_gaussian_array( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_binary_array` is never used [INFO] [stdout] --> src/utils.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn sample_binary_array< [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_uniform_array` is never used [INFO] [stdout] --> src/utils.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn sample_uniform_array( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `teoplitz` is never used [INFO] [stdout] --> src/utils.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn teoplitz(p: ArrayView1) -> Array2 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poly_mul` is never used [INFO] [stdout] --> src/utils.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn poly_mul(p0: ArrayView1, p1: ArrayView1) -> Array1 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poly_dot_product` is never used [INFO] [stdout] --> src/utils.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn poly_dot_product(p0: &ArrayView2, p1: &ArrayView2) -> Array1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poly_mul_monomial_custom_mod` is never used [INFO] [stdout] --> src/utils.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | pub fn poly_mul_monomial_custom_mod( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `school_book_negacylic_mul` is never used [INFO] [stdout] --> src/utils.rs:221:8 [INFO] [stdout] | [INFO] [stdout] 221 | pub fn school_book_negacylic_mul(p0: ArrayView1, p1: ArrayView1) -> Array1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `random_keys` is never used [INFO] [stdout] --> src/utils.rs:238:8 [INFO] [stdout] | [INFO] [stdout] 238 | pub fn random_keys(tfhe_params: &TfheParams) -> (LweSecretKey, GlweSecretKey) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lwe.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lwe.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let mut a_samples: Array1 = sample_uniform_array(rng, (lwe_params.lwe_dimension)); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 96 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let mut res = p0_teoplitz.dot(&p1); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or` is never used [INFO] [stdout] --> src/boolean.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn or( [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dot_product` is never used [INFO] [stdout] --> src/ops.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn dot_product(a: &[u32], b: &[u32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 46 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.27s [INFO] running `Command { std: "docker" "inspect" "3d2dfcbecd49ec1d1176ecc1faf641a625d4284cadbc70745068489d42bf4f1b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d2dfcbecd49ec1d1176ecc1faf641a625d4284cadbc70745068489d42bf4f1b", kill_on_drop: false }` [INFO] [stdout] 3d2dfcbecd49ec1d1176ecc1faf641a625d4284cadbc70745068489d42bf4f1b