[INFO] fetching crate ruda-tensor 0.21.18...
[INFO] testing ruda-tensor-0.21.18 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate ruda-tensor 0.21.18 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate ruda-tensor 0.21.18
[INFO] finished tweaking crates.io crate ruda-tensor 0.21.18
[INFO] tweaked toml for crates.io crate ruda-tensor 0.21.18 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ruda-tensor 0.21.18 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ruda-tensor 0.21.18 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ruda-ir-macros v0.1.2
[INFO] [stderr]   Downloaded sanitize-filename v0.6.0
[INFO] [stderr]   Downloaded ruda-tensor-config v0.21.2
[INFO] [stderr]   Downloaded float-ord v0.3.2
[INFO] [stderr]   Downloaded tynm v0.2.0
[INFO] [stderr]   Downloaded ruda-core v0.1.4
[INFO] [stderr]   Downloaded libredox v0.1.21
[INFO] [stderr]   Downloaded derive-new v0.7.0
[INFO] [stderr]   Downloaded float4 v0.2.0
[INFO] [stderr]   Downloaded tracel-llvm-bundler v20.1.4-7
[INFO] [stderr]   Downloaded oneshot v0.2.1
[INFO] [stderr]   Downloaded rand_distr v0.6.0
[INFO] [stderr]   Downloaded ruda-kernel-macros v0.1.5
[INFO] [stderr]   Downloaded liblzma v0.4.8
[INFO] [stderr]   Downloaded tracel-llvm v20.1.4-7
[INFO] [stderr]   Downloaded slug v0.1.6
[INFO] [stderr]   Downloaded tracel-mlir-rs-macros v20.1.4-7
[INFO] [stderr]   Downloaded ruda-runtime v0.1.1
[INFO] [stderr]   Downloaded tracel-tblgen-rs v20.1.4-7
[INFO] [stderr]   Downloaded caseless v0.2.2
[INFO] [stderr]   Downloaded tracel-mlir-rs v20.1.4-7
[INFO] [stderr]   Downloaded entities v1.0.1
[INFO] [stderr]   Downloaded stable-vec v0.4.3
[INFO] [stderr]   Downloaded ruda-driver-wgpu v0.1.18
[INFO] [stderr]   Downloaded tracel-mlir-sys v20.1.4-7
[INFO] [stderr]   Downloaded ruda-kernel v0.1.7
[INFO] [stderr]   Downloaded comrak v0.39.1
[INFO] [stderr]   Downloaded ruda-compiler v0.1.5
[INFO] [stderr]   Downloaded bindgen v0.71.1
[INFO] [stderr]   Downloaded liblzma-sys v0.4.8
[INFO] [stderr]   Downloaded wgpu-core-deps-apple v29.0.4
[INFO] [stderr]   Downloaded ruda-driver-hip v0.1.18
[INFO] [stderr]   Downloaded ruda-driver-cuda v0.1.18
[INFO] [stderr]   Downloaded wgpu-core-deps-emscripten v29.0.4
[INFO] [stderr]   Downloaded ruda-driver-cpu v0.1.18
[INFO] [stderr]   Downloaded sysinfo v0.38.4
[INFO] [stderr]   Downloaded cudarc v0.19.9
[INFO] [stderr]   Downloaded ruda-hip-sys v7.14.6085000
[INFO] [stderr]   Downloaded ruDNN v0.1.18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4
[INFO] running `Command { std: "docker" "start" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", 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" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling cpufeatures v0.3.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling portable-atomic v1.15.0
[INFO] [stderr]    Compiling chacha20 v0.10.2
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling ruda-core v0.1.4
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling spin v0.10.1
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling bytemuck_derive v1.12.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling bytemuck v1.25.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling embassy-futures v0.1.2
[INFO] [stderr]    Compiling tynm v0.2.0
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling oneshot v0.2.1
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling derive-new v0.7.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling enumset_derive v0.15.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling enumset v1.1.14
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ruDNN v0.1.18
[INFO] [stderr]    Compiling ruda-tensor v0.21.18 (/opt/rustwide/workdir)
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub mod device;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:2:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub mod primitive;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub mod ops;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/ops/sparse.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CsrAddition<H> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub left: H,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub right: H,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub output: H,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ops/sparse.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub left_entries: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ops/sparse.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub right_entries: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> src/ops/sparse.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait SparseOps: Backend {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     type CsrHandle: Clone + Debug + Send + 'static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     type CsrData: Clone + Debug + Send + 'static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     type SparseError: Debug + Display;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn csr_from_data(data: &Self::CsrData, device: &Self::Device) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn csr_to_device(matrix: &Self::CsrHandle, device: &Self::Device) -> Self::CsrHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | /     fn csr_transpose_with_permutation(
[INFO] [stdout] 22 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 23 | |     ) -> Result<(Self::CsrHandle, Vec<u32>), Self::SparseError>;
[INFO] [stdout]    | |________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/ops/sparse.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn csr_to_data(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 24 ~     fn csr_to_data(
[INFO] [stdout] 25 |         matrix: &Self::CsrHandle,
[INFO] [stdout] 26 |         values: FloatTensor<Self>,
[INFO] [stdout] 27 ~     ) -> impl std::future::Future<Output = Result<Self::CsrData, Self::SparseError>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | /     async fn csr_to_data(
[INFO] [stdout] 25 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 26 | |         values: FloatTensor<Self>,
[INFO] [stdout] 27 | |     ) -> Result<Self::CsrData, Self::SparseError>;
[INFO] [stdout]    | |__________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn csr_shape(matrix: &Self::CsrHandle) -> [usize; 2];
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn csr_nnz(matrix: &Self::CsrHandle) -> usize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | /     fn csr_add_prepare(
[INFO] [stdout] 32 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stdout] 33 | |     ) -> Result<CsrAddition<Self::CsrHandle>, Self::SparseError>;
[INFO] [stdout]    | |_________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     fn csr_add(
[INFO] [stdout] 35 | |         plan: &CsrAddition<Self::CsrHandle>, left: FloatTensor<Self>, right: FloatTensor<Self>,
[INFO] [stdout] 36 | |         alpha: f32, beta: f32,
[INFO] [stdout] 37 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     fn csr_product_pattern(
[INFO] [stdout] 39 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stdout] 40 | |     ) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stdout]    | |____________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     fn csr_sampled_sparse_matmul(
[INFO] [stdout] 42 | |         pattern: &Self::CsrHandle,
[INFO] [stdout] 43 | |         left: &Self::CsrHandle, left_values: FloatTensor<Self>,
[INFO] [stdout] 44 | |         right: &Self::CsrHandle, right_values: FloatTensor<Self>,
[INFO] [stdout] 45 | |         transpose_left: bool, transpose_right: bool,
[INFO] [stdout] 46 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | /     fn csr_validate_operand<T: TensorMetadata>(
[INFO] [stdout] 48 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 49 | |         operand: &T,
[INFO] [stdout] 50 | |         device: &Self::Device,
[INFO] [stdout] 51 | |         shape: &[usize],
[INFO] [stdout] 52 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stdout]    | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn csr_values(matrix: &Self::CsrHandle) -> FloatTensor<Self>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     fn csr_validate_values(
[INFO] [stdout] 55 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 56 | |         values: &FloatTensor<Self>,
[INFO] [stdout] 57 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stdout]    | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     fn csr_gather(
[INFO] [stdout] 60 | |         matrix: &Self::CsrHandle, dense: FloatTensor<Self>,
[INFO] [stdout] 61 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | /     fn csr_scatter_add(
[INFO] [stdout] 64 | |         matrix: &Self::CsrHandle, values: FloatTensor<Self>,
[INFO] [stdout] 65 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     fn csr_to_dense(
[INFO] [stdout] 68 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 69 | |         values: FloatTensor<Self>,
[INFO] [stdout] 70 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     fn csr_to_dense_backward(
[INFO] [stdout] 73 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 74 | |         grad: FloatTensor<Self>,
[INFO] [stdout] 75 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | /     fn csr_matmul(
[INFO] [stdout] 78 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 79 | |         values: FloatTensor<Self>,
[INFO] [stdout] 80 | |         rhs: FloatTensor<Self>,
[INFO] [stdout] 81 | |         transpose: bool,
[INFO] [stdout] 82 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | /     fn csr_sampled_matmul(
[INFO] [stdout] 85 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 86 | |         lhs: FloatTensor<Self>,
[INFO] [stdout] 87 | |         rhs: FloatTensor<Self>,
[INFO] [stdout] 88 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.03s
[INFO] running `Command { std: "docker" "inspect" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serial_test_derive v3.5.0
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling ruda-core v0.1.4
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling serial_test v3.5.0
[INFO] [stderr]    Compiling ruDNN v0.1.18
[INFO] [stderr]    Compiling ruda-tensor v0.21.18 (/opt/rustwide/workdir)
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub mod device;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:2:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub mod primitive;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub mod ops;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/ops/sparse.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CsrAddition<H> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub left: H,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub right: H,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub output: H,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ops/sparse.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub left_entries: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ops/sparse.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub right_entries: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> src/ops/sparse.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait SparseOps: Backend {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     type CsrHandle: Clone + Debug + Send + 'static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     type CsrData: Clone + Debug + Send + 'static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     type SparseError: Debug + Display;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn csr_from_data(data: &Self::CsrData, device: &Self::Device) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn csr_to_device(matrix: &Self::CsrHandle, device: &Self::Device) -> Self::CsrHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | /     fn csr_transpose_with_permutation(
[INFO] [stdout] 22 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 23 | |     ) -> Result<(Self::CsrHandle, Vec<u32>), Self::SparseError>;
[INFO] [stdout]    | |________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/ops/sparse.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn csr_to_data(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 24 ~     fn csr_to_data(
[INFO] [stdout] 25 |         matrix: &Self::CsrHandle,
[INFO] [stdout] 26 |         values: FloatTensor<Self>,
[INFO] [stdout] 27 ~     ) -> impl std::future::Future<Output = Result<Self::CsrData, Self::SparseError>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | /     async fn csr_to_data(
[INFO] [stdout] 25 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 26 | |         values: FloatTensor<Self>,
[INFO] [stdout] 27 | |     ) -> Result<Self::CsrData, Self::SparseError>;
[INFO] [stdout]    | |__________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn csr_shape(matrix: &Self::CsrHandle) -> [usize; 2];
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn csr_nnz(matrix: &Self::CsrHandle) -> usize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | /     fn csr_add_prepare(
[INFO] [stdout] 32 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stdout] 33 | |     ) -> Result<CsrAddition<Self::CsrHandle>, Self::SparseError>;
[INFO] [stdout]    | |_________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     fn csr_add(
[INFO] [stdout] 35 | |         plan: &CsrAddition<Self::CsrHandle>, left: FloatTensor<Self>, right: FloatTensor<Self>,
[INFO] [stdout] 36 | |         alpha: f32, beta: f32,
[INFO] [stdout] 37 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     fn csr_product_pattern(
[INFO] [stdout] 39 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stdout] 40 | |     ) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stdout]    | |____________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     fn csr_sampled_sparse_matmul(
[INFO] [stdout] 42 | |         pattern: &Self::CsrHandle,
[INFO] [stdout] 43 | |         left: &Self::CsrHandle, left_values: FloatTensor<Self>,
[INFO] [stdout] 44 | |         right: &Self::CsrHandle, right_values: FloatTensor<Self>,
[INFO] [stdout] 45 | |         transpose_left: bool, transpose_right: bool,
[INFO] [stdout] 46 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | /     fn csr_validate_operand<T: TensorMetadata>(
[INFO] [stdout] 48 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 49 | |         operand: &T,
[INFO] [stdout] 50 | |         device: &Self::Device,
[INFO] [stdout] 51 | |         shape: &[usize],
[INFO] [stdout] 52 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stdout]    | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn csr_values(matrix: &Self::CsrHandle) -> FloatTensor<Self>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     fn csr_validate_values(
[INFO] [stdout] 55 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 56 | |         values: &FloatTensor<Self>,
[INFO] [stdout] 57 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stdout]    | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     fn csr_gather(
[INFO] [stdout] 60 | |         matrix: &Self::CsrHandle, dense: FloatTensor<Self>,
[INFO] [stdout] 61 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | /     fn csr_scatter_add(
[INFO] [stdout] 64 | |         matrix: &Self::CsrHandle, values: FloatTensor<Self>,
[INFO] [stdout] 65 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     fn csr_to_dense(
[INFO] [stdout] 68 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 69 | |         values: FloatTensor<Self>,
[INFO] [stdout] 70 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     fn csr_to_dense_backward(
[INFO] [stdout] 73 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 74 | |         grad: FloatTensor<Self>,
[INFO] [stdout] 75 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | /     fn csr_matmul(
[INFO] [stdout] 78 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 79 | |         values: FloatTensor<Self>,
[INFO] [stdout] 80 | |         rhs: FloatTensor<Self>,
[INFO] [stdout] 81 | |         transpose: bool,
[INFO] [stdout] 82 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | /     fn csr_sampled_matmul(
[INFO] [stdout] 85 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 86 | |         lhs: FloatTensor<Self>,
[INFO] [stdout] 87 | |         rhs: FloatTensor<Self>,
[INFO] [stdout] 88 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub mod device;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:2:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub mod primitive;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub mod ops;
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/ops/sparse.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CsrAddition<H> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub left: H,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub right: H,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ops/sparse.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub output: H,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ops/sparse.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub left_entries: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ops/sparse.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub right_entries: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> src/ops/sparse.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait SparseOps: Backend {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     type CsrHandle: Clone + Debug + Send + 'static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     type CsrData: Clone + Debug + Send + 'static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> src/ops/sparse.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     type SparseError: Debug + Display;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn csr_from_data(data: &Self::CsrData, device: &Self::Device) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn csr_to_device(matrix: &Self::CsrHandle, device: &Self::Device) -> Self::CsrHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | /     fn csr_transpose_with_permutation(
[INFO] [stdout] 22 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 23 | |     ) -> Result<(Self::CsrHandle, Vec<u32>), Self::SparseError>;
[INFO] [stdout]    | |________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/ops/sparse.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn csr_to_data(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 24 ~     fn csr_to_data(
[INFO] [stdout] 25 |         matrix: &Self::CsrHandle,
[INFO] [stdout] 26 |         values: FloatTensor<Self>,
[INFO] [stdout] 27 ~     ) -> impl std::future::Future<Output = Result<Self::CsrData, Self::SparseError>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | /     async fn csr_to_data(
[INFO] [stdout] 25 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 26 | |         values: FloatTensor<Self>,
[INFO] [stdout] 27 | |     ) -> Result<Self::CsrData, Self::SparseError>;
[INFO] [stdout]    | |__________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn csr_shape(matrix: &Self::CsrHandle) -> [usize; 2];
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn csr_nnz(matrix: &Self::CsrHandle) -> usize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | /     fn csr_add_prepare(
[INFO] [stdout] 32 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stdout] 33 | |     ) -> Result<CsrAddition<Self::CsrHandle>, Self::SparseError>;
[INFO] [stdout]    | |_________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     fn csr_add(
[INFO] [stdout] 35 | |         plan: &CsrAddition<Self::CsrHandle>, left: FloatTensor<Self>, right: FloatTensor<Self>,
[INFO] [stdout] 36 | |         alpha: f32, beta: f32,
[INFO] [stdout] 37 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     fn csr_product_pattern(
[INFO] [stdout] 39 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stdout] 40 | |     ) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stdout]    | |____________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     fn csr_sampled_sparse_matmul(
[INFO] [stdout] 42 | |         pattern: &Self::CsrHandle,
[INFO] [stdout] 43 | |         left: &Self::CsrHandle, left_values: FloatTensor<Self>,
[INFO] [stdout] 44 | |         right: &Self::CsrHandle, right_values: FloatTensor<Self>,
[INFO] [stdout] 45 | |         transpose_left: bool, transpose_right: bool,
[INFO] [stdout] 46 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | /     fn csr_validate_operand<T: TensorMetadata>(
[INFO] [stdout] 48 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 49 | |         operand: &T,
[INFO] [stdout] 50 | |         device: &Self::Device,
[INFO] [stdout] 51 | |         shape: &[usize],
[INFO] [stdout] 52 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stdout]    | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn csr_values(matrix: &Self::CsrHandle) -> FloatTensor<Self>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     fn csr_validate_values(
[INFO] [stdout] 55 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 56 | |         values: &FloatTensor<Self>,
[INFO] [stdout] 57 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stdout]    | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     fn csr_gather(
[INFO] [stdout] 60 | |         matrix: &Self::CsrHandle, dense: FloatTensor<Self>,
[INFO] [stdout] 61 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | /     fn csr_scatter_add(
[INFO] [stdout] 64 | |         matrix: &Self::CsrHandle, values: FloatTensor<Self>,
[INFO] [stdout] 65 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     fn csr_to_dense(
[INFO] [stdout] 68 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 69 | |         values: FloatTensor<Self>,
[INFO] [stdout] 70 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     fn csr_to_dense_backward(
[INFO] [stdout] 73 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 74 | |         grad: FloatTensor<Self>,
[INFO] [stdout] 75 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | /     fn csr_matmul(
[INFO] [stdout] 78 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 79 | |         values: FloatTensor<Self>,
[INFO] [stdout] 80 | |         rhs: FloatTensor<Self>,
[INFO] [stdout] 81 | |         transpose: bool,
[INFO] [stdout] 82 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/ops/sparse.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | /     fn csr_sampled_matmul(
[INFO] [stdout] 85 | |         matrix: &Self::CsrHandle,
[INFO] [stdout] 86 | |         lhs: FloatTensor<Self>,
[INFO] [stdout] 87 | |         rhs: FloatTensor<Self>,
[INFO] [stdout] 88 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stdout]    | |______________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.90s
[INFO] running `Command { std: "docker" "inspect" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]   --> src/lib.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub mod device;
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/lib.rs:2:9
[INFO] [stderr]    |
[INFO] [stderr]  2 | #![warn(missing_docs)]
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]   --> src/lib.rs:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub mod primitive;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]   --> src/lib.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub mod ops;
[INFO] [stderr]    | ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]  --> src/ops/sparse.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct CsrAddition<H> {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]  --> src/ops/sparse.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     pub left: H,
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]  --> src/ops/sparse.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     pub right: H,
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]  --> src/ops/sparse.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub output: H,
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ops/sparse.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     pub left_entries: Vec<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ops/sparse.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub right_entries: Vec<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a trait
[INFO] [stderr]   --> src/ops/sparse.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub trait SparseOps: Backend {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated type
[INFO] [stderr]   --> src/ops/sparse.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     type CsrHandle: Clone + Debug + Send + 'static;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated type
[INFO] [stderr]   --> src/ops/sparse.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     type CsrData: Clone + Debug + Send + 'static;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated type
[INFO] [stderr]   --> src/ops/sparse.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     type SparseError: Debug + Display;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     fn csr_from_data(data: &Self::CsrData, device: &Self::Device) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     fn csr_to_device(matrix: &Self::CsrHandle, device: &Self::Device) -> Self::CsrHandle;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | /     fn csr_transpose_with_permutation(
[INFO] [stderr] 22 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 23 | |     ) -> Result<(Self::CsrHandle, Vec<u32>), Self::SparseError>;
[INFO] [stderr]    | |________________________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]   --> src/ops/sparse.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     async fn csr_to_data(
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]    |
[INFO] [stderr] 24 ~     fn csr_to_data(
[INFO] [stderr] 25 |         matrix: &Self::CsrHandle,
[INFO] [stderr] 26 |         values: FloatTensor<Self>,
[INFO] [stderr] 27 ~     ) -> impl std::future::Future<Output = Result<Self::CsrData, Self::SparseError>> + Send;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 | /     async fn csr_to_data(
[INFO] [stderr] 25 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 26 | |         values: FloatTensor<Self>,
[INFO] [stderr] 27 | |     ) -> Result<Self::CsrData, Self::SparseError>;
[INFO] [stderr]    | |__________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     fn csr_shape(matrix: &Self::CsrHandle) -> [usize; 2];
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     fn csr_nnz(matrix: &Self::CsrHandle) -> usize;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | /     fn csr_add_prepare(
[INFO] [stderr] 32 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stderr] 33 | |     ) -> Result<CsrAddition<Self::CsrHandle>, Self::SparseError>;
[INFO] [stderr]    | |_________________________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 | /     fn csr_add(
[INFO] [stderr] 35 | |         plan: &CsrAddition<Self::CsrHandle>, left: FloatTensor<Self>, right: FloatTensor<Self>,
[INFO] [stderr] 36 | |         alpha: f32, beta: f32,
[INFO] [stderr] 37 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | /     fn csr_product_pattern(
[INFO] [stderr] 39 | |         left: &Self::CsrHandle, right: &Self::CsrHandle,
[INFO] [stderr] 40 | |     ) -> Result<Self::CsrHandle, Self::SparseError>;
[INFO] [stderr]    | |____________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 41 | /     fn csr_sampled_sparse_matmul(
[INFO] [stderr] 42 | |         pattern: &Self::CsrHandle,
[INFO] [stderr] 43 | |         left: &Self::CsrHandle, left_values: FloatTensor<Self>,
[INFO] [stderr] 44 | |         right: &Self::CsrHandle, right_values: FloatTensor<Self>,
[INFO] [stderr] 45 | |         transpose_left: bool, transpose_right: bool,
[INFO] [stderr] 46 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 | /     fn csr_validate_operand<T: TensorMetadata>(
[INFO] [stderr] 48 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 49 | |         operand: &T,
[INFO] [stderr] 50 | |         device: &Self::Device,
[INFO] [stderr] 51 | |         shape: &[usize],
[INFO] [stderr] 52 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stderr]    | |_______________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:53:5
[INFO] [stderr]    |
[INFO] [stderr] 53 |     fn csr_values(matrix: &Self::CsrHandle) -> FloatTensor<Self>;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 54 | /     fn csr_validate_values(
[INFO] [stderr] 55 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 56 | |         values: &FloatTensor<Self>,
[INFO] [stderr] 57 | |     ) -> Result<(), Self::SparseError>;
[INFO] [stderr]    | |_______________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 59 | /     fn csr_gather(
[INFO] [stderr] 60 | |         matrix: &Self::CsrHandle, dense: FloatTensor<Self>,
[INFO] [stderr] 61 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 | /     fn csr_scatter_add(
[INFO] [stderr] 64 | |         matrix: &Self::CsrHandle, values: FloatTensor<Self>,
[INFO] [stderr] 65 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:67:5
[INFO] [stderr]    |
[INFO] [stderr] 67 | /     fn csr_to_dense(
[INFO] [stderr] 68 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 69 | |         values: FloatTensor<Self>,
[INFO] [stderr] 70 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 72 | /     fn csr_to_dense_backward(
[INFO] [stderr] 73 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 74 | |         grad: FloatTensor<Self>,
[INFO] [stderr] 75 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:77:5
[INFO] [stderr]    |
[INFO] [stderr] 77 | /     fn csr_matmul(
[INFO] [stderr] 78 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 79 | |         values: FloatTensor<Self>,
[INFO] [stderr] 80 | |         rhs: FloatTensor<Self>,
[INFO] [stderr] 81 | |         transpose: bool,
[INFO] [stderr] 82 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/ops/sparse.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 84 | /     fn csr_sampled_matmul(
[INFO] [stderr] 85 | |         matrix: &Self::CsrHandle,
[INFO] [stderr] 86 | |         lhs: FloatTensor<Self>,
[INFO] [stderr] 87 | |         rhs: FloatTensor<Self>,
[INFO] [stderr] 88 | |     ) -> Result<FloatTensor<Self>, Self::SparseError>;
[INFO] [stderr]    | |______________________________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: `ruda-tensor` (lib) generated 33 warnings
[INFO] [stderr] warning: `ruda-tensor` (lib test) generated 33 warnings (33 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ruda_tensor-aff6f431f3874186)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test ops::modules::base::tests::deform_conv_options_offset_groups_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::deform_conv_options_stride_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::conv_transpose_options_groups_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::conv_transpose_options_dilation_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::deform_conv_options_dilation_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::conv_transpose_options_stride_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::conv_options_stride_zero - should panic ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_calculate_output_size_1 ... ok
[INFO] [stdout] test ops::modules::base::tests::unfold_options_stride_zero - should panic ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_calculate_output_padding_1 ... ok
[INFO] [stdout] test ops::modules::base::tests::conv_options_dilation_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::deform_conv_options_weights_groups_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::conv_options_groups_zero - should panic ... ok
[INFO] [stdout] test ops::modules::base::tests::unfold_options_dilation_zero - should panic ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_calculate_same_padding_2 ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_calculate_same_padding_1 ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_expect_conv2d_output_shape ... ok
[INFO] [stdout] test ops::modules::unfold::tests::test_calculate_unfold_shape ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_calculate_output_size_3 ... ok
[INFO] [stdout] test ops::modules::unfold::tests::test_calculate_unfold_windows ... ok
[INFO] [stdout] test ops::modules::conv::tests::test_calculate_output_size_2 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ruda_tensor
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test src/device.rs - device::set_default_dtypes (line 87) ... ignored
[INFO] [stdout] test src/device.rs - device::set_default_float_dtype (line 131) ... ignored
[INFO] [stdout] test src/device.rs - device::set_default_int_dtype (line 170) ... ignored
[INFO] [stdout] test src/lib.rs - doc_tensor (line 76) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.46s; merged doctests compilation took 0.46s
[INFO] running `Command { std: "docker" "inspect" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4", kill_on_drop: false }`
[INFO] [stdout] 63d7bc9493d5cfcc44d637fe980f39ab09125f8e405102796e5bc2c07882b8e4
