[INFO] fetching crate cuckoocache 0.1.2... [INFO] testing cuckoocache-0.1.2 against beta-2022-04-10 for beta-1.61-1 [INFO] extracting crate cuckoocache 0.1.2 into /workspace/builds/worker-106/source [INFO] validating manifest of crates.io crate cuckoocache 0.1.2 on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate cuckoocache 0.1.2 [INFO] finished tweaking crates.io crate cuckoocache 0.1.2 [INFO] tweaked toml for crates.io crate cuckoocache 0.1.2 written to /workspace/builds/worker-106/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4f868e0ef6ab2fe44fdad19de7b44603f9b0ac257ef6bead0d23eef68620a2f9 [INFO] running `Command { std: "docker" "start" "-a" "4f868e0ef6ab2fe44fdad19de7b44603f9b0ac257ef6bead0d23eef68620a2f9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4f868e0ef6ab2fe44fdad19de7b44603f9b0ac257ef6bead0d23eef68620a2f9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4f868e0ef6ab2fe44fdad19de7b44603f9b0ac257ef6bead0d23eef68620a2f9", kill_on_drop: false }` [INFO] [stdout] 4f868e0ef6ab2fe44fdad19de7b44603f9b0ac257ef6bead0d23eef68620a2f9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c73da1df3cc77d6fba23bcad7b9273b1b2799d8ddf844f44a2f946ecdf5dac7f [INFO] running `Command { std: "docker" "start" "-a" "c73da1df3cc77d6fba23bcad7b9273b1b2799d8ddf844f44a2f946ecdf5dac7f", kill_on_drop: false }` [INFO] [stderr] Compiling cuckoocache v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.05s [INFO] running `Command { std: "docker" "inspect" "c73da1df3cc77d6fba23bcad7b9273b1b2799d8ddf844f44a2f946ecdf5dac7f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c73da1df3cc77d6fba23bcad7b9273b1b2799d8ddf844f44a2f946ecdf5dac7f", kill_on_drop: false }` [INFO] [stdout] c73da1df3cc77d6fba23bcad7b9273b1b2799d8ddf844f44a2f946ecdf5dac7f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1a00134cc80ad95e150eb639af6423ebb9e77e0717b73cce0439ac22bbd435a2 [INFO] running `Command { std: "docker" "start" "-a" "1a00134cc80ad95e150eb639af6423ebb9e77e0717b73cce0439ac22bbd435a2", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling byte-tools v0.3.1 [INFO] [stderr] Compiling libc v0.2.123 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling fake-simd v0.1.2 [INFO] [stderr] Compiling opaque-debug v0.2.3 [INFO] [stderr] Compiling generic-array v0.12.4 [INFO] [stderr] Compiling block-padding v0.1.5 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling block-buffer v0.7.3 [INFO] [stderr] Compiling digest v0.8.1 [INFO] [stderr] Compiling sha2 v0.8.2 [INFO] [stderr] Compiling rand v0.5.6 [INFO] [stderr] Compiling cuckoocache v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::sync::RwLock` [INFO] [stdout] --> src/lib.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | use std::sync::RwLock; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/lib.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | /** Do the insert */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 172 | hashes.iter().for_each(|h| set.insert(h)); [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | /** Count the hits */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 174 | let count: usize = hashes.iter().map(|h| set.contains(h, false) as usize).sum(); [INFO] [stdout] | -------------------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | / /** Arbitrarily selected Hit Rate threshold that happens to work for this test [INFO] [stdout] 203 | | * as a lower bound on performance. [INFO] [stdout] 204 | | */ [INFO] [stdout] | |___________^ [INFO] [stdout] 205 | let hit_rate_thresh = 0.98; [INFO] [stdout] | --------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:229:9 [INFO] [stdout] | [INFO] [stdout] 229 | /** Insert the first half */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 230 | hashes[0..(n_insert / 2)].iter().for_each(|h| set.insert(h)); [INFO] [stdout] | ------------------------------------------------------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | /** Erase the first quarter */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 232 | / hashes[0..(n_insert / 4)].iter().for_each(|h| { [INFO] [stdout] 233 | | set.contains(h, true); [INFO] [stdout] 234 | | }); [INFO] [stdout] | |__________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | /** Insert the second half */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 236 | hashes[(n_insert / 2)..].iter().for_each(|h| set.insert(h)); [INFO] [stdout] | ----------------------------------------------------------- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | /** elements that we marked erased but that are still there */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 239 | / let count_erased_but_contained: usize = hashes[..(n_insert / 4)] [INFO] [stdout] 240 | | .iter() [INFO] [stdout] 241 | | .map(|h| set.contains(h, false) as usize) [INFO] [stdout] 242 | | .sum(); [INFO] [stdout] | |___________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | /** elements that we did not erase but are older */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 244 | / let count_stale: usize = hashes[(n_insert / 4)..(n_insert / 2)] [INFO] [stdout] 245 | | .iter() [INFO] [stdout] 246 | | .map(|h| set.contains(h, false) as usize) [INFO] [stdout] 247 | | .sum(); [INFO] [stdout] | |___________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | /** elements that were most recently inserted */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 249 | / let count_fresh: usize = hashes[(n_insert / 2)..] [INFO] [stdout] 250 | | .iter() [INFO] [stdout] 251 | | .map(|h| set.contains(h, false) as usize) [INFO] [stdout] 252 | | .sum(); [INFO] [stdout] | |___________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | /** Insert the first half */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 283 | / for hash in hashes.iter().take(n_insert / 2) { [INFO] [stdout] 284 | | set.insert(hash); [INFO] [stdout] 285 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:297:21 [INFO] [stdout] | [INFO] [stdout] 297 | /** Erase the first quarter */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 298 | let ntodo = (n_insert / 4) / 3; [INFO] [stdout] | ------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | / /** Wait for all threads to finish [INFO] [stdout] 312 | | */ [INFO] [stdout] 313 | | /** Grab lock to make sure we observe erases */ [INFO] [stdout] 314 | | /** Insert the second half */ [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] 315 | / for hash in hashes.iter().skip(n_insert / 2) { [INFO] [stdout] 316 | | Arc::get_mut(&mut set).map(|m| m.insert(hash)); [INFO] [stdout] 317 | | } [INFO] [stdout] | |_________- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | /** elements that we marked erased but that are still there */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 320 | / let count_erased_but_contained: usize = hashes[..(n_insert / 4)] [INFO] [stdout] 321 | | .iter() [INFO] [stdout] 322 | | .map(|h| set.contains(h, false) as usize) [INFO] [stdout] 323 | | .sum(); [INFO] [stdout] | |___________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:324:9 [INFO] [stdout] | [INFO] [stdout] 324 | /** elements that we did not erase but are older */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 325 | / let count_stale: usize = hashes[(n_insert / 4)..(n_insert / 2)] [INFO] [stdout] 326 | | .iter() [INFO] [stdout] 327 | | .map(|h| set.contains(h, false) as usize) [INFO] [stdout] 328 | | .sum(); [INFO] [stdout] | |___________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/lib.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | /** elements that were most recently inserted */ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 330 | / let count_fresh: usize = hashes[(n_insert / 2)..] [INFO] [stdout] 331 | | .iter() [INFO] [stdout] 332 | | .map(|h| set.contains(h, false) as usize) [INFO] [stdout] 333 | | .sum(); [INFO] [stdout] | |___________________- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `/* */` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `block_activity` should have an upper camel case name [INFO] [stdout] --> src/lib.rs:357:12 [INFO] [stdout] | [INFO] [stdout] 357 | struct block_activity { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BlockActivity` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/lib.rs:410:16 [INFO] [stdout] | [INFO] [stdout] 410 | if (last_few.len() == WINDOW_SIZE) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 410 - if (last_few.len() == WINDOW_SIZE) { [INFO] [stdout] 410 + if last_few.len() == WINDOW_SIZE { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | for i in 0..100000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | for i in 0..n_insert { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:225:13 [INFO] [stdout] | [INFO] [stdout] 225 | for i in 0..n_insert { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | for i in 0..total { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:363:17 [INFO] [stdout] | [INFO] [stdout] 363 | for i in 0..n_insert / 4 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:367:17 [INFO] [stdout] | [INFO] [stdout] 367 | for i in 0..n_insert / 2 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:370:17 [INFO] [stdout] | [INFO] [stdout] 370 | for i in 0..n_insert / 4 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `insecure_GetRandHash` [INFO] [stdout] --> src/lib.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | fn insecure_GetRandHash() -> [u32; 8] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `insecure_GetRandHash` should have a snake case name [INFO] [stdout] --> src/lib.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | fn insecure_GetRandHash() -> [u32; 8] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `insecure_get_rand_hash` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:308:13 [INFO] [stdout] | [INFO] [stdout] 308 | thread.join(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `BLOCK_SIZE` should have a snake case name [INFO] [stdout] --> src/lib.rs:391:13 [INFO] [stdout] | [INFO] [stdout] 391 | let BLOCK_SIZE = 1000; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `block_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `WINDOW_SIZE` should have a snake case name [INFO] [stdout] --> src/lib.rs:394:13 [INFO] [stdout] | [INFO] [stdout] 394 | let WINDOW_SIZE = 60; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `window_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `POP_AMOUNT` should have a snake case name [INFO] [stdout] --> src/lib.rs:395:13 [INFO] [stdout] | [INFO] [stdout] 395 | let POP_AMOUNT = (BLOCK_SIZE / WINDOW_SIZE) / 2; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `pop_amount` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 31 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.87s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/cuckoocache-4d73846cf8a2c4ff) [INFO] running `Command { std: "docker" "inspect" "1a00134cc80ad95e150eb639af6423ebb9e77e0717b73cce0439ac22bbd435a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1a00134cc80ad95e150eb639af6423ebb9e77e0717b73cce0439ac22bbd435a2", kill_on_drop: false }` [INFO] [stdout] 1a00134cc80ad95e150eb639af6423ebb9e77e0717b73cce0439ac22bbd435a2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-106/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b87ad7147bb12a156f0e57794a7ccb2d6d58259cf2cdaadf58549539f29ce78b [INFO] running `Command { std: "docker" "start" "-a" "b87ad7147bb12a156f0e57794a7ccb2d6d58259cf2cdaadf58549539f29ce78b", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: unused import: `std::sync::RwLock` [INFO] [stderr] --> src/lib.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | use std::sync::RwLock; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stderr] --> src/lib.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | mod tests { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | /** Do the insert */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 172 | hashes.iter().for_each(|h| set.insert(h)); [INFO] [stderr] | ----------------------------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | /** Count the hits */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 174 | let count: usize = hashes.iter().map(|h| set.contains(h, false) as usize).sum(); [INFO] [stderr] | -------------------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | / /** Arbitrarily selected Hit Rate threshold that happens to work for this test [INFO] [stderr] 203 | | * as a lower bound on performance. [INFO] [stderr] 204 | | */ [INFO] [stderr] | |___________^ [INFO] [stderr] 205 | let hit_rate_thresh = 0.98; [INFO] [stderr] | --------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | /** Insert the first half */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 230 | hashes[0..(n_insert / 2)].iter().for_each(|h| set.insert(h)); [INFO] [stderr] | ------------------------------------------------------------ rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:231:9 [INFO] [stderr] | [INFO] [stderr] 231 | /** Erase the first quarter */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 232 | / hashes[0..(n_insert / 4)].iter().for_each(|h| { [INFO] [stderr] 233 | | set.contains(h, true); [INFO] [stderr] 234 | | }); [INFO] [stderr] | |__________- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:235:9 [INFO] [stderr] | [INFO] [stderr] 235 | /** Insert the second half */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 236 | hashes[(n_insert / 2)..].iter().for_each(|h| set.insert(h)); [INFO] [stderr] | ----------------------------------------------------------- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:238:9 [INFO] [stderr] | [INFO] [stderr] 238 | /** elements that we marked erased but that are still there */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 239 | / let count_erased_but_contained: usize = hashes[..(n_insert / 4)] [INFO] [stderr] 240 | | .iter() [INFO] [stderr] 241 | | .map(|h| set.contains(h, false) as usize) [INFO] [stderr] 242 | | .sum(); [INFO] [stderr] | |___________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:243:9 [INFO] [stderr] | [INFO] [stderr] 243 | /** elements that we did not erase but are older */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 244 | / let count_stale: usize = hashes[(n_insert / 4)..(n_insert / 2)] [INFO] [stderr] 245 | | .iter() [INFO] [stderr] 246 | | .map(|h| set.contains(h, false) as usize) [INFO] [stderr] 247 | | .sum(); [INFO] [stderr] | |___________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:248:9 [INFO] [stderr] | [INFO] [stderr] 248 | /** elements that were most recently inserted */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 249 | / let count_fresh: usize = hashes[(n_insert / 2)..] [INFO] [stderr] 250 | | .iter() [INFO] [stderr] 251 | | .map(|h| set.contains(h, false) as usize) [INFO] [stderr] 252 | | .sum(); [INFO] [stderr] | |___________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:282:9 [INFO] [stderr] | [INFO] [stderr] 282 | /** Insert the first half */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 283 | / for hash in hashes.iter().take(n_insert / 2) { [INFO] [stderr] 284 | | set.insert(hash); [INFO] [stderr] 285 | | } [INFO] [stderr] | |_________- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:297:21 [INFO] [stderr] | [INFO] [stderr] 297 | /** Erase the first quarter */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 298 | let ntodo = (n_insert / 4) / 3; [INFO] [stderr] | ------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:311:9 [INFO] [stderr] | [INFO] [stderr] 311 | / /** Wait for all threads to finish [INFO] [stderr] 312 | | */ [INFO] [stderr] 313 | | /** Grab lock to make sure we observe erases */ [INFO] [stderr] 314 | | /** Insert the second half */ [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] 315 | / for hash in hashes.iter().skip(n_insert / 2) { [INFO] [stderr] 316 | | Arc::get_mut(&mut set).map(|m| m.insert(hash)); [INFO] [stderr] 317 | | } [INFO] [stderr] | |_________- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:319:9 [INFO] [stderr] | [INFO] [stderr] 319 | /** elements that we marked erased but that are still there */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 320 | / let count_erased_but_contained: usize = hashes[..(n_insert / 4)] [INFO] [stderr] 321 | | .iter() [INFO] [stderr] 322 | | .map(|h| set.contains(h, false) as usize) [INFO] [stderr] 323 | | .sum(); [INFO] [stderr] | |___________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | /** elements that we did not erase but are older */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 325 | / let count_stale: usize = hashes[(n_insert / 4)..(n_insert / 2)] [INFO] [stderr] 326 | | .iter() [INFO] [stderr] 327 | | .map(|h| set.contains(h, false) as usize) [INFO] [stderr] 328 | | .sum(); [INFO] [stderr] | |___________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/lib.rs:329:9 [INFO] [stderr] | [INFO] [stderr] 329 | /** elements that were most recently inserted */ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 330 | / let count_fresh: usize = hashes[(n_insert / 2)..] [INFO] [stderr] 331 | | .iter() [INFO] [stderr] 332 | | .map(|h| set.contains(h, false) as usize) [INFO] [stderr] 333 | | .sum(); [INFO] [stderr] | |___________________- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `/* */` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: type `block_activity` should have an upper camel case name [INFO] [stderr] --> src/lib.rs:357:12 [INFO] [stderr] | [INFO] [stderr] 357 | struct block_activity { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BlockActivity` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/lib.rs:410:16 [INFO] [stderr] | [INFO] [stderr] 410 | if (last_few.len() == WINDOW_SIZE) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 410 - if (last_few.len() == WINDOW_SIZE) { [INFO] [stderr] 410 + if last_few.len() == WINDOW_SIZE { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | for i in 0..100000 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | for i in 0..n_insert { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:225:13 [INFO] [stderr] | [INFO] [stderr] 225 | for i in 0..n_insert { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:409:13 [INFO] [stderr] | [INFO] [stderr] 409 | for i in 0..total { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:363:17 [INFO] [stderr] | [INFO] [stderr] 363 | for i in 0..n_insert / 4 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:367:17 [INFO] [stderr] | [INFO] [stderr] 367 | for i in 0..n_insert / 2 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:370:17 [INFO] [stderr] | [INFO] [stderr] 370 | for i in 0..n_insert / 4 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `insecure_GetRandHash` [INFO] [stderr] --> src/lib.rs:135:8 [INFO] [stderr] | [INFO] [stderr] 135 | fn insecure_GetRandHash() -> [u32; 8] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `insecure_GetRandHash` should have a snake case name [INFO] [stderr] --> src/lib.rs:135:8 [INFO] [stderr] | [INFO] [stderr] 135 | fn insecure_GetRandHash() -> [u32; 8] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `insecure_get_rand_hash` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/lib.rs:308:13 [INFO] [stderr] | [INFO] [stderr] 308 | thread.join(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `BLOCK_SIZE` should have a snake case name [INFO] [stderr] --> src/lib.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | let BLOCK_SIZE = 1000; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `block_size` [INFO] [stderr] [INFO] [stderr] warning: variable `WINDOW_SIZE` should have a snake case name [INFO] [stderr] --> src/lib.rs:394:13 [INFO] [stderr] | [INFO] [stderr] 394 | let WINDOW_SIZE = 60; [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `window_size` [INFO] [stderr] [INFO] [stderr] warning: variable `POP_AMOUNT` should have a snake case name [INFO] [stderr] --> src/lib.rs:395:13 [INFO] [stderr] | [INFO] [stderr] 395 | let POP_AMOUNT = (BLOCK_SIZE / WINDOW_SIZE) / 2; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `pop_amount` [INFO] [stderr] [INFO] [stderr] warning: `cuckoocache` (lib test) generated 31 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.13s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cuckoocache-4d73846cf8a2c4ff) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test tests::basic_cache_works ... ok [INFO] [stdout] test tests::cuckoocache_erase_parallel_ok ... ok [INFO] [stdout] test tests::cuckoocache_erase_ok ... ok [INFO] [stdout] test tests::test_cuckoocache_no_fakes ... ok [INFO] [stdout] test tests::cuckoocache_hit_rate_ok ... ok [INFO] [stdout] test tests::test_cache_generations ... ok [INFO] [stderr] Doc-tests cuckoocache [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 52.87s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test src/cache.rs - cache::Cache::contains (line 350) ... ignored [INFO] [stdout] test src/cache.rs - cache::Cache::insert (line 274) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "b87ad7147bb12a156f0e57794a7ccb2d6d58259cf2cdaadf58549539f29ce78b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b87ad7147bb12a156f0e57794a7ccb2d6d58259cf2cdaadf58549539f29ce78b", kill_on_drop: false }` [INFO] [stdout] b87ad7147bb12a156f0e57794a7ccb2d6d58259cf2cdaadf58549539f29ce78b