[INFO] cloning repository https://github.com/lichuang/mini-rayon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lichuang/mini-rayon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flichuang%2Fmini-rayon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flichuang%2Fmini-rayon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6b9b3c530b5be1887b6f6c9775b186ac1e477af0
[INFO] documenting lichuang/mini-rayon/6b9b3c530b5be1887b6f6c9775b186ac1e477af0 against 824336ad4127ce295849937a24c08a4aeff6ada7 for pr-162169
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flichuang%2Fmini-rayon" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lichuang/mini-rayon
[INFO] finished tweaking git repo https://github.com/lichuang/mini-rayon
[INFO] tweaked toml for git repo https://github.com/lichuang/mini-rayon written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lichuang/mini-rayon on toolchain 824336ad4127ce295849937a24c08a4aeff6ada7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+824336ad4127ce295849937a24c08a4aeff6ada7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lichuang/mini-rayon 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" "+824336ad4127ce295849937a24c08a4aeff6ada7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: Cargo.toml: unused manifest key: workspace.package.name
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86
[INFO] running `Command { std: "docker" "start" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86" "/opt/rustwide/cargo-home/bin/cargo" "+824336ad4127ce295849937a24c08a4aeff6ada7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86" "/opt/rustwide/cargo-home/bin/cargo" "+824336ad4127ce295849937a24c08a4aeff6ada7" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: Cargo.toml: unused manifest key: workspace.package.name
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]     Checking mini-rayon v0.1.0 (/opt/rustwide/workdir/mini-rayon)
[INFO] [stderr]  Documenting mini-rayon v0.1.0 (/opt/rustwide/workdir/mini-rayon)
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/containers/vec.rs:101:14
[INFO] [stdout]     |
[INFO] [stdout] 101 |       slice: slice::from_raw_parts_mut(ptr, len),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/containers/vec.rs:97:3
[INFO] [stdout]     |
[INFO] [stdout]  97 |   pub unsafe fn from_vec(vec: &mut Vec<T>, len: usize) -> DrainProducer<'_, T> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     (self.execute_fn)(self.pointer)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:37:3
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub unsafe fn execute(&self) {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::job::JobRef::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     JobRef::new(self)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:70:3
[INFO] [stdout]    |
[INFO] [stdout] 70 |   pub unsafe fn as_job_ref(&self) -> JobRef {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let this = &*(this as *const Self);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:89:3
[INFO] [stdout]    |
[INFO] [stdout] 89 |   unsafe fn execute(this: *const ()) {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let func = (*this.func.get()).take().unwrap();
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     (*this.result.get()) = JobResult::call(func);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::latch::Latch::set` is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     Latch::set(&this.latch);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::wait_until` is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/join.rs:94:3
[INFO] [stdout]    |
[INFO] [stdout] 94 |   worker_thread.wait_until(job_b_latch);
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> mini-rayon/src/core/join.rs:89:1
[INFO] [stdout]    |
[INFO] [stdout] 89 | / unsafe fn join_recover_from_panic(
[INFO] [stdout] 90 | |   worker_thread: &WorkerThread,
[INFO] [stdout] 91 | |   job_b_latch: &SpinLatch<'_>,
[INFO] [stdout] 92 | |   err: Box<dyn Any + Send>,
[INFO] [stdout] 93 | | ) -> ! {
[INFO] [stdout]    | |______^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> mini-rayon/src/core/latch.rs:90:21
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let old_state = (*this).state.swap(SET, Ordering::AcqRel);
[INFO] [stdout]    |                     ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> mini-rayon/src/core/latch.rs:89:3
[INFO] [stdout]    |
[INFO] [stdout] 89 |   unsafe fn set(this: *const Self) -> bool {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:143:34
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let registry: &Registry = if (*this).cross {
[INFO] [stdout]     |                                  ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:140:3
[INFO] [stdout]     |
[INFO] [stdout] 140 |   unsafe fn set(this: *const Self) {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:149:35
[INFO] [stdout]     |
[INFO] [stdout] 149 |       cross_registry = Arc::clone((*this).registry);
[INFO] [stdout]     |                                   ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:157:7
[INFO] [stdout]     |
[INFO] [stdout] 157 |       (*this).registry
[INFO] [stdout]     |       ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:159:31
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let target_worker_index = (*this).target_worker_index;
[INFO] [stdout]     |                               ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::latch::CoreLatch::set` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 |     if CoreLatch::set(&(*this).core_latch) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |     if CoreLatch::set(&(*this).core_latch) {
[INFO] [stdout]     |                        ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::latch::Latch::set` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     L::set((*this).inner);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:220:3
[INFO] [stdout]     |
[INFO] [stdout] 220 |   unsafe fn set(this: *const Self) {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 221 |     L::set((*this).inner);
[INFO] [stdout]     |            ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_was_empty`
[INFO] [stdout]   --> mini-rayon/src/core/registry.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let queue_was_empty = self.injected_jobs.is_empty();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_was_empty`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/registry.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |           op(&*worker_thread, injected)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/registry.rs:109:3
[INFO] [stdout]     |
[INFO] [stdout] 109 | /   unsafe fn in_worker_cold<OP, R>(&self, op: OP) -> R
[INFO] [stdout] 110 | |   where
[INFO] [stdout] 111 | |     OP: FnOnce(&WorkerThread, bool) -> R + Send,
[INFO] [stdout] 112 | |     R: Send,
[INFO] [stdout]     | |____________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::job::StackJob::<L, F, R>::as_job_ref` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/registry.rs:126:19
[INFO] [stdout]     |
[INFO] [stdout] 126 |       self.inject(job.as_job_ref());
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/registry.rs:109:3
[INFO] [stdout]     |
[INFO] [stdout] 109 | /   unsafe fn in_worker_cold<OP, R>(&self, op: OP) -> R
[INFO] [stdout] 110 | |   where
[INFO] [stdout] 111 | |     OP: FnOnce(&WorkerThread, bool) -> R + Send,
[INFO] [stdout] 112 | |     R: Send,
[INFO] [stdout]     | |____________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::job::StackJob::<L, F, R>::into_result` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/registry.rs:129:7
[INFO] [stdout]     |
[INFO] [stdout] 129 |       job.into_result()
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> mini-rayon/src/core/worker.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut thread = thread::Builder::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::wait_until_cold` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 |       self.wait_until_cold(latch);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:103:3
[INFO] [stdout]     |
[INFO] [stdout] 103 |   pub(super) unsafe fn wait_until<L: AsCoreLatch + ?Sized>(&self, latch: &L) {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::execute` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         self.execute(job);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:110:3
[INFO] [stdout]     |
[INFO] [stdout] 110 |   unsafe fn wait_until_cold(&self, latch: &CoreLatch) {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::execute` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:124:11
[INFO] [stdout]     |
[INFO] [stdout] 124 |           self.execute(job);
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::job::JobRef::execute` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     job.execute();
[INFO] [stdout]     |     ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:185:3
[INFO] [stdout]     |
[INFO] [stdout] 185 |   pub unsafe fn execute(&self, job: JobRef) {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::wait_until` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     self.wait_until(&registry.thread_infos[index].terminate);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:189:3
[INFO] [stdout]     |
[INFO] [stdout] 189 |   unsafe fn wait_until_out_of_work(&self) {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::latch::Latch::set` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 198 |     Latch::set(&registry.thread_infos[index].stopped);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::set_current` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:203:3
[INFO] [stdout]     |
[INFO] [stdout] 203 |   WorkerThread::set_current(&worker);
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | unsafe fn main_loop(worker: WorkerThread) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::latch::Latch::set` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:207:3
[INFO] [stdout]     |
[INFO] [stdout] 207 |   Latch::set(&registry.thread_infos[index].primed);
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::worker::WorkerThread::wait_until_out_of_work` is unsafe and requires unsafe block
[INFO] [stdout]    --> mini-rayon/src/core/worker.rs:211:3
[INFO] [stdout]     |
[INFO] [stdout] 211 |   worker.wait_until_out_of_work();
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Job` is more private than the item `JobRef::new`
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:25:3
[INFO] [stdout]    |
[INFO] [stdout] 25 | /   pub unsafe fn new<T>(data: *const T) -> JobRef
[INFO] [stdout] 26 | |   where T: Job {
[INFO] [stdout]    | |______________^ associated function `JobRef::new` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `Job` is only usable at visibility `pub(in crate::core)`
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) trait Job {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `OnceLatch` is more private than the item `ThreadInfo::terminate`
[INFO] [stdout]    --> mini-rayon/src/core/registry.rs:37:3
[INFO] [stdout]     |
[INFO] [stdout]  37 |   pub(crate) terminate: OnceLatch,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ThreadInfo::terminate` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `OnceLatch` is only usable at visibility `pub(in crate::core)`
[INFO] [stdout]    --> mini-rayon/src/core/latch.rs:172:1
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub(super) struct OnceLatch {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_injected_jobs` is never used
[INFO] [stdout]    --> mini-rayon/src/core/sleep.rs:146:10
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Sleep {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 146 |   pub fn new_injected_jobs(&self, num_jobs: u32, queue_was_empty: bool) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoopConsumer` is never constructed
[INFO] [stdout]  --> mini-rayon/src/functions/noop.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(super) struct NoopConsumer;
[INFO] [stdout]   |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:21:3
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Eq, PartialOrd, Ord, Clone)]
[INFO] [stdout]    |          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 21 |   execute_fn: unsafe fn(*const ()),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> mini-rayon/src/core/job.rs:21:3
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Eq, PartialOrd, Ord, Clone)]
[INFO] [stdout]    |                                     --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 21 |   execute_fn: unsafe fn(*const ()),
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]  Documenting mini-rayon-demo v0.1.0 (/opt/rustwide/workdir/example)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] [stderr]    Generated /opt/rustwide/target/doc/mini_rayon/index.html and 1 other file
[INFO] running `Command { std: "docker" "inspect" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "DOCS_RS=1" "-e" "RUSTC_BOOTSTRAP=1" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86" "/opt/rustwide/cargo-home/bin/cargo" "+824336ad4127ce295849937a24c08a4aeff6ada7" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--document-private-items\"]" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: Cargo.toml: unused manifest key: workspace.package.name
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr] error: manifest path `/opt/rustwide/workdir/Cargo.toml` is a virtual manifest, but this command requires running against an actual package in this workspace
[INFO] running `Command { std: "docker" "inspect" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86", kill_on_drop: false }`
[INFO] [stdout] bb235dd9a9bd096ceac042e433f23c1ffd18639d8c377b1c771c5c9883891f86
