[INFO] cloning repository https://github.com/ealmloff/wgpu-kernal-fusion
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ealmloff/wgpu-kernal-fusion" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fealmloff%2Fwgpu-kernal-fusion", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fealmloff%2Fwgpu-kernal-fusion'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5775aa9e38812932a24a566fc459b0da91702740
[INFO] checking ealmloff/wgpu-kernal-fusion against d8df82673d5911b6112a85bf91d9adefb2c66a1a for pr-162242
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fealmloff%2Fwgpu-kernal-fusion" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ealmloff/wgpu-kernal-fusion
[INFO] finished tweaking git repo https://github.com/ealmloff/wgpu-kernal-fusion
[INFO] tweaked toml for git repo https://github.com/ealmloff/wgpu-kernal-fusion written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ealmloff/wgpu-kernal-fusion on toolchain d8df82673d5911b6112a85bf91d9adefb2c66a1a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ealmloff/wgpu-kernal-fusion 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" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/FL33TW00D/wgpu`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tabbycat v0.1.3
[INFO] [stderr]   Downloaded rand_core v0.9.1
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.18
[INFO] [stderr]   Downloaded half-2 v2.4.1
[INFO] [stderr]   Downloaded zerocopy v0.8.18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069
[INFO] running `Command { std: "docker" "start" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069", 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" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069" "/opt/rustwide/cargo-home/bin/cargo" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069", 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" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069" "/opt/rustwide/cargo-home/bin/cargo" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking foldhash v0.1.4
[INFO] [stderr]    Compiling thiserror v2.0.11
[INFO] [stderr]     Checking once_cell v1.20.3
[INFO] [stderr]    Compiling rustversion v1.0.19
[INFO] [stderr]     Checking log v0.4.25
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling strsim v0.9.3
[INFO] [stderr]    Compiling naga v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803)
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling wgpu-hal v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803)
[INFO] [stderr]    Compiling zerocopy v0.8.18
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]     Checking ash v0.38.0+1.3.281
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking ordered-float v4.6.0
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling wgpu-core v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803)
[INFO] [stderr]    Compiling derive_builder v0.9.0
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]    Compiling serde_json v1.0.138
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking profiling v1.0.16
[INFO] [stderr]     Checking getrandom v0.3.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling wgpu v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803)
[INFO] [stderr]     Checking is-terminal v0.4.15
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking half v1.8.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking indexmap v2.7.1
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking oorandom v11.1.4
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking criterion-plot v0.4.5
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking rand_core v0.9.1
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]    Compiling darling_core v0.10.2
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling derive_arbitrary v1.4.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.11
[INFO] [stderr]    Compiling bytemuck_derive v1.8.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling darling_macro v0.10.2
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]    Compiling darling v0.10.2
[INFO] [stderr]     Checking arbitrary v1.4.1
[INFO] [stderr]    Compiling derive_builder_core v0.9.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking bytemuck v1.21.0
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]     Checking tabbycat v0.1.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking half-2 v2.4.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking rand v0.9.0
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling enumset_derive v0.10.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking enumset v1.1.5
[INFO] [stderr]     Checking bitflags v2.8.0
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking wgpu-types v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803)
[INFO] [stderr]     Checking gpu-descriptor v0.3.1
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion v0.3.6
[INFO] [stderr]     Checking wgpu-compute v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@src/tensor.rs:542:13: 542:26}: Send`
[INFO] [stdout]    --> src/tensor.rs:538:9
[INFO] [stdout]     |
[INFO] [stdout] 538 | /         DownloadBuffer::read_buffer(
[INFO] [stdout] 539 | |             tensor.device.wgpu_device(),
[INFO] [stdout] 540 | |             tensor.device.wgpu_queue(),
[INFO] [stdout] 541 | |             &buffer.slice(..),
[INFO] [stdout] ...   |
[INFO] [stdout] 544 | |             },
[INFO] [stdout] 545 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `(futures_channel::oneshot::Sender<std::result::Result<DownloadBuffer, BufferAsyncError>>,): Send`
[INFO] [stdout]     = note: which requires `futures_channel::oneshot::Sender<std::result::Result<DownloadBuffer, BufferAsyncError>>: Send`
[INFO] [stdout]     = note: which requires `Arc<futures_channel::oneshot::Inner<std::result::Result<DownloadBuffer, BufferAsyncError>>>: Send`
[INFO] [stdout]     = note: which requires `futures_channel::oneshot::Inner<std::result::Result<DownloadBuffer, BufferAsyncError>>: Send`
[INFO] [stdout]     = note: which requires `futures_channel::lock::Lock<Option<std::result::Result<DownloadBuffer, BufferAsyncError>>>: Send`
[INFO] [stdout]     = note: which requires `Option<std::result::Result<DownloadBuffer, BufferAsyncError>>: Send`
[INFO] [stdout]     = note: which requires `std::result::Result<DownloadBuffer, BufferAsyncError>: Send`
[INFO] [stdout]     = note: which requires `DownloadBuffer: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::Buffer>: Send`
[INFO] [stdout]     = note: which requires `wgpu::Buffer: Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchBuffer: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::backend::wgpu_core::CoreBuffer>: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreBuffer: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`wgpu_compute`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@src/tensor.rs:542:13: 542:26}: Send`
[INFO] [stdout]    --> src/tensor.rs:538:9
[INFO] [stdout]     |
[INFO] [stdout] 538 | /         DownloadBuffer::read_buffer(
[INFO] [stdout] 539 | |             tensor.device.wgpu_device(),
[INFO] [stdout] 540 | |             tensor.device.wgpu_queue(),
[INFO] [stdout] 541 | |             &buffer.slice(..),
[INFO] [stdout] ...   |
[INFO] [stdout] 544 | |             },
[INFO] [stdout] 545 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `(futures_channel::oneshot::Sender<std::result::Result<DownloadBuffer, BufferAsyncError>>,): Send`
[INFO] [stdout]     = note: which requires `futures_channel::oneshot::Sender<std::result::Result<DownloadBuffer, BufferAsyncError>>: Send`
[INFO] [stdout]     = note: which requires `Arc<futures_channel::oneshot::Inner<std::result::Result<DownloadBuffer, BufferAsyncError>>>: Send`
[INFO] [stdout]     = note: which requires `futures_channel::oneshot::Inner<std::result::Result<DownloadBuffer, BufferAsyncError>>: Send`
[INFO] [stdout]     = note: which requires `futures_channel::lock::Lock<Option<std::result::Result<DownloadBuffer, BufferAsyncError>>>: Send`
[INFO] [stdout]     = note: which requires `Option<std::result::Result<DownloadBuffer, BufferAsyncError>>: Send`
[INFO] [stdout]     = note: which requires `std::result::Result<DownloadBuffer, BufferAsyncError>: Send`
[INFO] [stdout]     = note: which requires `DownloadBuffer: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::Buffer>: Send`
[INFO] [stdout]     = note: which requires `wgpu::Buffer: Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchBuffer: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::backend::wgpu_core::CoreBuffer>: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreBuffer: Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`wgpu_compute`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sparse_kernel` is never read
[INFO] [stdout]   --> src/matmul.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) struct UntypedMatMul {
[INFO] [stdout]    |                   ------------- field in this struct
[INFO] [stdout] 42 |     sparse_kernel: OnceLock<GenericKernel>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@tests/inplace_clone.rs:11:9: 11:16}: Send`
[INFO] [stdout]   --> tests/inplace_clone.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | /     std::thread::spawn({
[INFO] [stdout] 10 | |         let device = device.clone();
[INFO] [stdout] 11 | |         move || loop {
[INFO] [stdout] 12 | |             device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 13 | |         }
[INFO] [stdout] 14 | |     });
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: Send`
[INFO] [stdout]    = note: which requires `Hub: Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`inplace_clone`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@benches/elementwise.rs:25:17: 25:24}: std::marker::Send`
[INFO] [stdout]   --> benches/elementwise.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | /             std::thread::spawn({
[INFO] [stdout] 24 | |                 let device = device.clone();
[INFO] [stdout] 25 | |                 move || loop {
[INFO] [stdout] 26 | |                     device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 27 | |                 }
[INFO] [stdout] 28 | |             });
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]    = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`elementwise`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@examples/hello.rs:10:9: 10:16}: Send`
[INFO] [stdout]   --> examples/hello.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     std::thread::spawn({
[INFO] [stdout]  9 | |         let device = device.clone();
[INFO] [stdout] 10 | |         move || loop {
[INFO] [stdout] 11 | |             device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 12 | |         }
[INFO] [stdout] 13 | |     });
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: Send`
[INFO] [stdout]    = note: which requires `Hub: Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`hello`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@benches/fused.rs:26:17: 26:24}: std::marker::Send`
[INFO] [stdout]   --> benches/fused.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 | /             std::thread::spawn({
[INFO] [stdout] 25 | |                 let device = device.clone();
[INFO] [stdout] 26 | |                 move || loop {
[INFO] [stdout] 27 | |                     device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 28 | |                 }
[INFO] [stdout] 29 | |             });
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]    = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`fused`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@benches/matmul.rs:23:13: 23:20}: std::marker::Send`
[INFO] [stdout]   --> benches/matmul.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | /         std::thread::spawn({
[INFO] [stdout] 22 | |             let device = device.clone();
[INFO] [stdout] 23 | |             move || loop {
[INFO] [stdout] 24 | |                 device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 25 | |             }
[INFO] [stdout] 26 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]    = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`matmul`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@benches/reduce.rs:27:17: 27:24}: std::marker::Send`
[INFO] [stdout]   --> benches/reduce.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 | /             std::thread::spawn({
[INFO] [stdout] 26 | |                 let device = device.clone();
[INFO] [stdout] 27 | |                 move || loop {
[INFO] [stdout] 28 | |                     device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 29 | |                 }
[INFO] [stdout] 30 | |             });
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]    = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`reduce`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@benches/pairwise.rs:24:17: 24:24}: std::marker::Send`
[INFO] [stdout]   --> benches/pairwise.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | /             std::thread::spawn({
[INFO] [stdout] 23 | |                 let device = device.clone();
[INFO] [stdout] 24 | |                 move || loop {
[INFO] [stdout] 25 | |                     device.wgpu_device().poll(wgpu::PollType::Wait).unwrap();
[INFO] [stdout] 26 | |                 }
[INFO] [stdout] 27 | |             });
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: which requires `(wgpu_compute::Device,): std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::Device: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu_compute::device::DeviceInner>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu_compute::device::DeviceInner: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::Queue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::dispatch::DispatchQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::backend::wgpu_core::CoreQueue>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::CoreQueue: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]    = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]    = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]    = note: which requires `registry::Registry<Arc<wgpu::wgpu_core::command::CommandBuffer>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<wgpu::wgpu_core::command::CommandBuffer>>>: std::marker::Send`
[INFO] [stdout]    = note: and so on...
[INFO] [stdout]    = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]    = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`pairwise`)
[INFO] [stdout]    = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]    = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sparse_kernel` is never read
[INFO] [stdout]   --> src/matmul.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) struct UntypedMatMul {
[INFO] [stdout]    |                   ------------- field in this struct
[INFO] [stdout] 42 |     sparse_kernel: OnceLock<GenericKernel>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `env_logger`
[INFO] [stderr]   --> Cargo.toml:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | env_logger = "0.10.1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `env_logger`
[INFO] [stderr] warning: `wgpu-compute` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: naga v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803), wgpu v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803), wgpu-core v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803), wgpu-hal v24.0.0 (https://github.com/FL33TW00D/wgpu?branch=feature%2Fenable#9c062803)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069", kill_on_drop: false }`
[INFO] [stdout] 0d59d581f88a75860c26afb44e65bbbb18741e9ac55df6486177b4c85eee9069
