[INFO] cloning repository https://github.com/gotcake/rcann
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gotcake/rcann" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 989dd42c4fc16cb33c749b032c637354f7c63655
[INFO] testing gotcake/rcann against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gotcake/rcann
[INFO] finished tweaking git repo https://github.com/gotcake/rcann
[INFO] tweaked toml for git repo https://github.com/gotcake/rcann written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gotcake/rcann on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gotcake/rcann 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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 691a51765f750f5ab419532ba038c693ba50f5fa83fe5d83bf15bd5fe990ec58
[INFO] running `Command { std: "docker" "start" "-a" "691a51765f750f5ab419532ba038c693ba50f5fa83fe5d83bf15bd5fe990ec58", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "691a51765f750f5ab419532ba038c693ba50f5fa83fe5d83bf15bd5fe990ec58", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "691a51765f750f5ab419532ba038c693ba50f5fa83fe5d83bf15bd5fe990ec58", kill_on_drop: false }`
[INFO] [stdout] 691a51765f750f5ab419532ba038c693ba50f5fa83fe5d83bf15bd5fe990ec58
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e2a66290b0865b876f26185224cb6e9354741d1c8556fb493611f6306b4a963e
[INFO] running `Command { std: "docker" "start" "-a" "e2a66290b0865b876f26185224cb6e9354741d1c8556fb493611f6306b4a963e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling opencl-sys v0.2.9
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling once_cell v1.20.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling mnist v0.5.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling crossbeam-channel v0.5.14
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling thread-tree v0.3.3
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling const_format v0.2.34
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling cl3 v0.9.5
[INFO] [stderr]    Compiling opencl3 v0.9.5
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling rcann v0.1.0 (/opt/rustwide/workdir/rcann)
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stdout]     |
[INFO] [stdout] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stdout]     |
[INFO] [stdout] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stdout]     |
[INFO] [stdout] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::native::view::TensorView::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stdout]     |
[INFO] [stdout] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stdout]     |
[INFO] [stdout] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stdout]     |
[INFO] [stdout] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::native::view::TensorViewMut::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/net/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stdout]     |          -------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<T, D> {
[INFO] [stdout]    |             ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<T, D::Less> {
[INFO] [stdout]    |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:27:31
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<T, D::Less> {
[INFO] [stdout]    |                               ^^^^^                  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<'_, T, D::Less> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stdout]    |                ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                |
[INFO] [stdout]    |                this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |             ^^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<T, D> {
[INFO] [stdout]    |                 ^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:49:28
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<T, D::Less> {
[INFO] [stdout]    |                            ^^^^^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<'_, T, D::Less> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:54:35
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<T, D::Less> {
[INFO] [stdout]    |                                   ^^^^^^^^^                  ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<'_, T, D::Less> {
[INFO] [stdout]    |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<T> {
[INFO] [stdout]    |                    ^^^^^^^^^     ----------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]    |                 ^^^^^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling derive_builder_core v0.11.2
[INFO] [stderr]    Compiling derive_builder_macro v0.11.2
[INFO] [stderr]    Compiling derive_builder v0.11.2
[INFO] [stderr]    Compiling rcann-opencl v0.1.0 (/opt/rustwide/workdir/rcann-opencl)
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/gemm/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/gemm/mod.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use opencl3::kernel::{ExecuteKernel};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `next_multiple`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::{next_multiple, ocl_program};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `next_multiple`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::util::{next_multiple, ocl_program};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `first_ident`
[INFO] [stdout]   --> rcann-opencl/src/util/kernel_macros.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | macro_rules! first_ident {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `first_ident`
[INFO] [stdout]   --> rcann-opencl/src/util/kernel_macros.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) use first_ident;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format_c_defines`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:88:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(crate) use format_c_defines;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::dtype::DType`
[INFO] [stdout]  --> rcann-opencl/src/backend/matmul.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rcann::dtype::DType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rcann::tensor::{Dim2, ITensor};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::fmt::{Display, Formatter, Write};
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rcann::tensor::{Dims, ITensor};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rcann::tensor::ITensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rcann::tensor::ITensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::dealloc_storage_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         dealloc_storage_ptr(self.ptr, self.capacity);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     unsafe fn dealloc(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::event::retain_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     opencl3::event::retain_event(event).expect("Failed to retain event");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | unsafe fn retain_event(event: cl_event) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let end = events.add(len);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | unsafe fn retain_events(mut events: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::retain_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         retain_event(*events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:78:22
[INFO] [stdout]    |
[INFO] [stdout] 78 |         retain_event(*events);
[INFO] [stdout]    |                      ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:79:18
[INFO] [stdout]    |
[INFO] [stdout] 79 |         events = events.offset(1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::event::release_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     opencl3::event::release_event(event).expect("Failed to release event");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | unsafe fn release_event(event: cl_event) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let end = events.add(len);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:89:1
[INFO] [stdout]    |
[INFO] [stdout] 89 | unsafe fn release_events(mut events: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::release_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         release_event(*events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:92:23
[INFO] [stdout]    |
[INFO] [stdout] 92 |         release_event(*events);
[INFO] [stdout]    |                       ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |         events = events.offset(1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:98:1
[INFO] [stdout]    |
[INFO] [stdout] 98 | unsafe fn dealloc_storage_ptr(ptr: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     alloc::dealloc(ptr as *mut u8, layout);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:105:18
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | unsafe fn alloc_storage_ptr(len: usize) -> *mut cl_event {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     alloc::alloc(layout) as *mut cl_event
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             self.storage.heap.ensure_capacity(cur_len, new_len);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     unsafe fn reserve_uninit(&mut self, additional: usize) -> *mut cl_event {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::EventList::reserve_uninit` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:185:23
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let cur_ptr = self.reserve_uninit(count);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     unsafe fn extend_impl(&mut self, events: *const cl_event, count: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         ptr::copy_nonoverlapping(events, cur_ptr, count);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::HeapStorage::dealloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             self.storage.heap.dealloc()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     unsafe fn free_mem(&self) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             self.storage.heap.dealloc()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::memory::Buffer::<T>::create` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/mod.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Buffer::<T>::create(context, CL_MEM_READ_WRITE, capacity, ptr::null_mut()),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub unsafe fn uninit(context: &Context, dims: D) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_vec_width` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) fn is_valid_vec_width(usize: u8) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_BLOCK_SIZE` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const MIN_BLOCK_SIZE: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BLOCK_SIZE` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const MAX_BLOCK_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_block_size` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub(crate) fn is_valid_block_size(value: usize) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:249:17
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn deps(&self) -> Ref<EventList> {
[INFO] [stdout]     |                 ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn deps(&self) -> Ref<'_, EventList> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rcann-examples v0.1.0 (/opt/rustwide/workdir/rcann-examples)
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "e2a66290b0865b876f26185224cb6e9354741d1c8556fb493611f6306b4a963e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2a66290b0865b876f26185224cb6e9354741d1c8556fb493611f6306b4a963e", kill_on_drop: false }`
[INFO] [stdout] e2a66290b0865b876f26185224cb6e9354741d1c8556fb493611f6306b4a963e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 656b60d5a4913b00fc18b72cd6c8417679275602cb9fd2fcebc47d22fdf707cc
[INFO] running `Command { std: "docker" "start" "-a" "656b60d5a4913b00fc18b72cd6c8417679275602cb9fd2fcebc47d22fdf707cc", kill_on_drop: false }`
[INFO] [stderr]    Compiling bencher v0.1.5
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stdout]     |
[INFO] [stdout] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stdout]     |
[INFO] [stdout] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stdout]     |
[INFO] [stdout] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::native::view::TensorView::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stdout]     |
[INFO] [stdout] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stdout]     |
[INFO] [stdout] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stdout]     |
[INFO] [stdout] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::native::view::TensorViewMut::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/net/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stdout]     |          -------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<T, D> {
[INFO] [stdout]    |             ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<T, D::Less> {
[INFO] [stdout]    |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:27:31
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<T, D::Less> {
[INFO] [stdout]    |                               ^^^^^                  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<'_, T, D::Less> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stdout]    |                ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                |
[INFO] [stdout]    |                this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |             ^^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<T, D> {
[INFO] [stdout]    |                 ^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:49:28
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<T, D::Less> {
[INFO] [stdout]    |                            ^^^^^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<'_, T, D::Less> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:54:35
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<T, D::Less> {
[INFO] [stdout]    |                                   ^^^^^^^^^                  ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<'_, T, D::Less> {
[INFO] [stdout]    |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<T> {
[INFO] [stdout]    |                    ^^^^^^^^^     ----------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]    |                 ^^^^^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/gemm/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/gemm/mod.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use opencl3::kernel::{ExecuteKernel};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `next_multiple`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::{next_multiple, ocl_program};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `next_multiple`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::util::{next_multiple, ocl_program};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `first_ident`
[INFO] [stdout]   --> rcann-opencl/src/util/kernel_macros.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | macro_rules! first_ident {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `first_ident`
[INFO] [stdout]   --> rcann-opencl/src/util/kernel_macros.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) use first_ident;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format_c_defines`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:88:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(crate) use format_c_defines;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::dtype::DType`
[INFO] [stdout]  --> rcann-opencl/src/backend/matmul.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rcann::dtype::DType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rcann::tensor::{Dim2, ITensor};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::fmt::{Display, Formatter, Write};
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rcann::tensor::{Dims, ITensor};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rcann::tensor::ITensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rcann::tensor::ITensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::dealloc_storage_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         dealloc_storage_ptr(self.ptr, self.capacity);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     unsafe fn dealloc(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::event::retain_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     opencl3::event::retain_event(event).expect("Failed to retain event");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | unsafe fn retain_event(event: cl_event) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let end = events.add(len);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | unsafe fn retain_events(mut events: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::retain_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         retain_event(*events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:78:22
[INFO] [stdout]    |
[INFO] [stdout] 78 |         retain_event(*events);
[INFO] [stdout]    |                      ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:79:18
[INFO] [stdout]    |
[INFO] [stdout] 79 |         events = events.offset(1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::event::release_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     opencl3::event::release_event(event).expect("Failed to release event");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | unsafe fn release_event(event: cl_event) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let end = events.add(len);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:89:1
[INFO] [stdout]    |
[INFO] [stdout] 89 | unsafe fn release_events(mut events: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::release_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         release_event(*events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:92:23
[INFO] [stdout]    |
[INFO] [stdout] 92 |         release_event(*events);
[INFO] [stdout]    |                       ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |         events = events.offset(1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:98:1
[INFO] [stdout]    |
[INFO] [stdout] 98 | unsafe fn dealloc_storage_ptr(ptr: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rcann-examples v0.1.0 (/opt/rustwide/workdir/rcann-examples)
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     alloc::dealloc(ptr as *mut u8, layout);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:105:18
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | unsafe fn alloc_storage_ptr(len: usize) -> *mut cl_event {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     alloc::alloc(layout) as *mut cl_event
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             self.storage.heap.ensure_capacity(cur_len, new_len);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     unsafe fn reserve_uninit(&mut self, additional: usize) -> *mut cl_event {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::EventList::reserve_uninit` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:185:23
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let cur_ptr = self.reserve_uninit(count);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     unsafe fn extend_impl(&mut self, events: *const cl_event, count: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         ptr::copy_nonoverlapping(events, cur_ptr, count);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::HeapStorage::dealloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             self.storage.heap.dealloc()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     unsafe fn free_mem(&self) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             self.storage.heap.dealloc()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::memory::Buffer::<T>::create` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/mod.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Buffer::<T>::create(context, CL_MEM_READ_WRITE, capacity, ptr::null_mut()),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub unsafe fn uninit(context: &Context, dims: D) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_vec_width` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) fn is_valid_vec_width(usize: u8) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_BLOCK_SIZE` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const MIN_BLOCK_SIZE: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BLOCK_SIZE` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const MAX_BLOCK_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_block_size` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub(crate) fn is_valid_block_size(value: usize) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:249:17
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn deps(&self) -> Ref<EventList> {
[INFO] [stdout]     |                 ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn deps(&self) -> Ref<'_, EventList> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Compiling rcann-opencl v0.1.0 (/opt/rustwide/workdir/rcann-opencl)
[INFO] [stderr]    Compiling rcann v0.1.0 (/opt/rustwide/workdir/rcann)
[INFO] [stdout] warning: use of deprecated associated function `opencl3::command_queue::CommandQueue::create_default`: From CL_VERSION_2_0 use create_command_queue_with_properties
[INFO] [stdout]   --> rcann-opencl/examples/test_kernel.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 |         CommandQueue::create_default(&context, CL_QUEUE_PROFILING_ENABLE).expect("CommandQueue::create_default failed");
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `opencl3::command_queue::CommandQueue::create_default`: From CL_VERSION_2_0 use create_command_queue_with_properties
[INFO] [stdout]   --> rcann-opencl/examples/test_kernel.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 |         CommandQueue::create_default(&context, CL_QUEUE_PROFILING_ENABLE).expect("CommandQueue::create_default failed");
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROGRAM_SOURCE` is never used
[INFO] [stdout]   --> rcann-opencl/examples/test_kernel.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const PROGRAM_SOURCE: &str = r#"
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KERNEL_NAME` is never used
[INFO] [stdout]   --> rcann-opencl/examples/test_kernel.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const KERNEL_NAME: &str = "saxpy_float";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]   --> rcann-opencl/examples/test_kernel.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn main() -> Result<()> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::*`
[INFO] [stdout]   --> rcann-opencl/src/kernels/gemm/test.rs:7:17
[INFO] [stdout]    |
[INFO] [stdout] 7  |             use crate::util::*;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 | impl_tests!(tests_f32, f32);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::*`
[INFO] [stdout]   --> rcann-opencl/src/kernels/gemm/test.rs:7:17
[INFO] [stdout]    |
[INFO] [stdout] 7  |             use crate::util::*;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 | impl_tests!(tests_f64, f64);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/gemm/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/gemm/mod.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use opencl3::kernel::{ExecuteKernel};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroUsize`
[INFO] [stdout]   --> rcann-opencl/src/kernels/mse/test.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             use std::num::NonZeroUsize;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 | impl_tests!(tests_f32, f32);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroUsize`
[INFO] [stdout]   --> rcann-opencl/src/kernels/mse/test.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             use std::num::NonZeroUsize;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 | impl_tests!(tests_f64, f64);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `next_multiple`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::util::{next_multiple, ocl_program};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/scoring/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::tensor::event_list::EventList;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `next_multiple`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::util::{next_multiple, ocl_program};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use opencl3::kernel::ExecuteKernel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `first_ident`
[INFO] [stdout]   --> rcann-opencl/src/util/kernel_macros.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | macro_rules! first_ident {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `first_ident`
[INFO] [stdout]   --> rcann-opencl/src/util/kernel_macros.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) use first_ident;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format_c_defines`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:88:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(crate) use format_c_defines;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::dtype::DType`
[INFO] [stdout]  --> rcann-opencl/src/backend/matmul.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rcann::dtype::DType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rcann::tensor::{Dim2, ITensor};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::fmt::{Display, Formatter, Write};
[INFO] [stdout]    |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/general/mod.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rcann::tensor::{Dims, ITensor};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/mse/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rcann::tensor::ITensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stdout]  --> rcann-opencl/src/kernels/transpose/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rcann::tensor::ITensor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/gemm/test.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 let TestContext { device, context, queue } = create_test_context()?;
[INFO] [stdout]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 58 | impl_tests!(tests_f32, f32);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/gemm/test.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 let TestContext { device, context, queue } = create_test_context()?;
[INFO] [stdout]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 59 | impl_tests!(tests_f64, f64);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:19:35
[INFO] [stdout]     |
[INFO] [stdout] 19  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:40:35
[INFO] [stdout]     |
[INFO] [stdout] 40  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:63:35
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:85:35
[INFO] [stdout]     |
[INFO] [stdout] 85  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:19:35
[INFO] [stdout]     |
[INFO] [stdout] 19  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 109 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:40:35
[INFO] [stdout]     |
[INFO] [stdout] 40  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 109 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:63:35
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 109 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/kernels/general/test.rs:85:35
[INFO] [stdout]     |
[INFO] [stdout] 85  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 109 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stdout]     |
[INFO] [stdout] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stdout]     |
[INFO] [stdout] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stdout]     |
[INFO] [stdout] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::native::view::TensorView::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stdout]     |
[INFO] [stdout] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stdout]     |
[INFO] [stdout] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stdout]     |
[INFO] [stdout] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::native::view::TensorViewMut::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stdout]     |
[INFO] [stdout] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout] ...
[INFO] [stdout] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stdout]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> rcann/src/tensor/native/iter.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let t = tensor![1, 2, 3, 4, 5, 6];
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/mse/test.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 67 | impl_tests!(tests_f32, f32);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/mse/test.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 68 | impl_tests!(tests_f64, f64);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/scoring/test.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 45 | impl_tests!(tests_f32, f32);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/scoring/test.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 46 | impl_tests!(tests_f64, f64);
[INFO] [stdout]    | --------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/net/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stdout]     |          -------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<T, D> {
[INFO] [stdout]    |             ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<T, D::Less> {
[INFO] [stdout]    |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:27:31
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<T, D::Less> {
[INFO] [stdout]    |                               ^^^^^                  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<'_, T, D::Less> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stdout]    |                ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                |
[INFO] [stdout]    |                this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |             ^^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<T, D> {
[INFO] [stdout]    |                 ^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:49:28
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<T, D::Less> {
[INFO] [stdout]    |                            ^^^^^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<'_, T, D::Less> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:54:35
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<T, D::Less> {
[INFO] [stdout]    |                                   ^^^^^^^^^                  ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<'_, T, D::Less> {
[INFO] [stdout]    |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<T> {
[INFO] [stdout]    |                    ^^^^^^^^^     ----------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]    |                 ^^^^^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/softmax/test.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let TestContext { device, context, queue } = create_test_context().unwrap();
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stdout]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stdout]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/transpose/test.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/transpose/test.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/transpose/test.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::dealloc_storage_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         dealloc_storage_ptr(self.ptr, self.capacity);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     unsafe fn dealloc(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::event::retain_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     opencl3::event::retain_event(event).expect("Failed to retain event");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | unsafe fn retain_event(event: cl_event) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let end = events.add(len);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | unsafe fn retain_events(mut events: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::retain_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         retain_event(*events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:78:22
[INFO] [stdout]    |
[INFO] [stdout] 78 |         retain_event(*events);
[INFO] [stdout]    |                      ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:79:18
[INFO] [stdout]    |
[INFO] [stdout] 79 |         events = events.offset(1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::event::release_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     opencl3::event::release_event(event).expect("Failed to release event");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | unsafe fn release_event(event: cl_event) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let end = events.add(len);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:89:1
[INFO] [stdout]    |
[INFO] [stdout] 89 | unsafe fn release_events(mut events: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::release_event` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         release_event(*events);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:92:23
[INFO] [stdout]    |
[INFO] [stdout] 92 |         release_event(*events);
[INFO] [stdout]    |                       ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |         events = events.offset(1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:98:1
[INFO] [stdout]    |
[INFO] [stdout] 98 | unsafe fn dealloc_storage_ptr(ptr: *const cl_event, len: usize) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     alloc::dealloc(ptr as *mut u8, layout);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:105:18
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | unsafe fn alloc_storage_ptr(len: usize) -> *mut cl_event {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     alloc::alloc(layout) as *mut cl_event
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             self.storage.heap.ensure_capacity(cur_len, new_len);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     unsafe fn reserve_uninit(&mut self, additional: usize) -> *mut cl_event {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::EventList::reserve_uninit` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:185:23
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let cur_ptr = self.reserve_uninit(count);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     unsafe fn extend_impl(&mut self, events: *const cl_event, count: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         ptr::copy_nonoverlapping(events, cur_ptr, count);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::HeapStorage::dealloc` is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             self.storage.heap.dealloc()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     unsafe fn free_mem(&self) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stdout]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             self.storage.heap.dealloc()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `opencl3::memory::Buffer::<T>::create` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/mod.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Buffer::<T>::create(context, CL_MEM_READ_WRITE, capacity, ptr::null_mut()),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> rcann-opencl/src/tensor/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub unsafe fn uninit(context: &Context, dims: D) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:330:35
[INFO] [stdout]     |
[INFO] [stdout] 330 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 389 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 389 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:348:35
[INFO] [stdout]     |
[INFO] [stdout] 348 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 389 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:359:35
[INFO] [stdout]     |
[INFO] [stdout] 359 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 389 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:370:35
[INFO] [stdout]     |
[INFO] [stdout] 370 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 389 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:379:35
[INFO] [stdout]     |
[INFO] [stdout] 379 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 389 | impl_tests!(tests_f32, f32);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:330:35
[INFO] [stdout]     |
[INFO] [stdout] 330 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 390 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:339:35
[INFO] [stdout]     |
[INFO] [stdout] 339 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 390 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:348:35
[INFO] [stdout]     |
[INFO] [stdout] 348 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 390 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:359:35
[INFO] [stdout]     |
[INFO] [stdout] 359 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 390 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:370:35
[INFO] [stdout]     |
[INFO] [stdout] 370 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 390 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:379:35
[INFO] [stdout]     |
[INFO] [stdout] 379 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] ...
[INFO] [stdout] 390 | impl_tests!(tests_f64, f64);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_vec_width` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) fn is_valid_vec_width(usize: u8) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_BLOCK_SIZE` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const MIN_BLOCK_SIZE: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BLOCK_SIZE` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const MAX_BLOCK_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_block_size` is never used
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub(crate) fn is_valid_block_size(value: usize) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rcann-opencl/src/tensor/mod.rs:249:17
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn deps(&self) -> Ref<EventList> {
[INFO] [stdout]     |                 ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn deps(&self) -> Ref<'_, EventList> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 8.73s
[INFO] running `Command { std: "docker" "inspect" "656b60d5a4913b00fc18b72cd6c8417679275602cb9fd2fcebc47d22fdf707cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "656b60d5a4913b00fc18b72cd6c8417679275602cb9fd2fcebc47d22fdf707cc", kill_on_drop: false }`
[INFO] [stdout] 656b60d5a4913b00fc18b72cd6c8417679275602cb9fd2fcebc47d22fdf707cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c1efbc1c0b6a69e45b5bc0aede737a6b8b0279ad474b767340052f72d50d0edd
[INFO] running `Command { std: "docker" "start" "-a" "c1efbc1c0b6a69e45b5bc0aede737a6b8b0279ad474b767340052f72d50d0edd", kill_on_drop: false }`
[INFO] [stderr] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stderr]     |
[INFO] [stderr] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr] ...
[INFO] [stderr] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stderr]     | --------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stderr]     |
[INFO] [stderr] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stderr]     | --------------------------------------------------------- in this macro invocation
[INFO] [stderr]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stderr]     |
[INFO] [stderr] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr] ...
[INFO] [stderr] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stderr]     | --------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::native::view::TensorView::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stderr]     |
[INFO] [stderr] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr] ...
[INFO] [stderr] 119 | impl_tensor_iter!(TensorIter, TensorView, from_raw_parts);
[INFO] [stderr]     | --------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:60:41
[INFO] [stderr]     |
[INFO] [stderr] 60  |                 let chunk = std::slice::$slice_from_raw_parts(self.ptr, self.stride);
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr] ...
[INFO] [stderr] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stderr]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:59:13
[INFO] [stderr]     |
[INFO] [stderr] 59  |             unsafe fn next_unchecked(&mut self) -> $item<'a, T, D> {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stderr]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:61:28
[INFO] [stderr]     |
[INFO] [stderr] 61  |                 self.ptr = self.ptr.add(self.stride);
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr] ...
[INFO] [stderr] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stderr]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::native::view::TensorViewMut::<'a, T, D>::from_slice_unchecked` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:63:17
[INFO] [stderr]     |
[INFO] [stderr] 63  |                 $item::from_slice_unchecked(chunk, self.out_dims)
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr] ...
[INFO] [stderr] 120 | impl_tensor_iter!(TensorIterMut, TensorViewMut, from_raw_parts_mut);
[INFO] [stderr]     | ------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_iter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/net/mod.rs:268:9
[INFO] [stderr]     |
[INFO] [stderr] 268 |         &mut self,
[INFO] [stderr]     |         ^^^^^^^^^ this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stderr]     |          -------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stderr]     |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:18:13
[INFO] [stderr]    |
[INFO] [stderr] 18 |     fn view(&self) -> TensorView<T, D> {
[INFO] [stderr]    |             ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:23:24
[INFO] [stderr]    |
[INFO] [stderr] 23 |     fn iter_major_axis(&self) -> TensorIter<T, D::Less> {
[INFO] [stderr]    |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:27:31
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<T, D::Less> {
[INFO] [stderr]    |                               ^^^^^                  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                               |
[INFO] [stderr]    |                               this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn iter_major_axis_chunks(&self, size: usize) -> TensorChunkIter<'_, T, D::Less> {
[INFO] [stderr]    |                                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stderr]    |                ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                |
[INFO] [stderr]    |                this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stderr]    |             ^^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |             |
[INFO] [stderr]    |             this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:44:17
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn view_mut(&mut self) -> TensorViewMut<T, D> {
[INFO] [stderr]    |                 ^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:49:28
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<T, D::Less> {
[INFO] [stderr]    |                            ^^^^^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                            |
[INFO] [stderr]    |                            this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<'_, T, D::Less> {
[INFO] [stderr]    |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:54:35
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<T, D::Less> {
[INFO] [stderr]    |                                   ^^^^^^^^^                  ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stderr]    |                                   |
[INFO] [stderr]    |                                   this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn iter_major_axis_chunks_mut(&mut self, size: usize) -> TensorChunkIterMut<'_, T, D::Less> {
[INFO] [stderr]    |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:60:20
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<T> {
[INFO] [stderr]    |                    ^^^^^^^^^     ----------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:66:17
[INFO] [stderr]    |
[INFO] [stderr] 66 |     fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stderr]    |                 ^^^^^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stderr]    |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 103 | impl_tensor_extras!(Tensor);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 103 | impl_tensor_extras!(Tensor);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stderr]     |
[INFO] [stderr] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stderr]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stderr]     | ------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stderr]     |
[INFO] [stderr] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stderr]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stderr]     | ------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stderr]     | ----------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stderr]     | ----------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stderr]     | -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stderr]     | -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:91:38
[INFO] [stderr]     |
[INFO] [stderr] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stderr]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stderr]     | ------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 91  |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:95:38
[INFO] [stderr]     |
[INFO] [stderr] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<T, Dim2> {
[INFO] [stderr]     |                                      ^^^^^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stderr]     | ------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras_mut` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 95  |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:54:34
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stderr]     | ---------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 54  |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann/src/tensor/native/extras.rs:57:34
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<T, Dim2> {
[INFO] [stderr]     |                                  ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stderr]     | ---------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tensor_extras` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 57  |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0133`.
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> rcann/src/tensor/native/iter.rs:186:13
[INFO] [stderr]     |
[INFO] [stderr] 186 |         let t = tensor![1, 2, 3, 4, 5, 6];
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rcann` (lib) generated 29 warnings (run `cargo fix --lib -p rcann` to apply 2 suggestions)
[INFO] [stderr] warning: `rcann` (lib test) generated 30 warnings (29 duplicates)
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/gemm/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ExecuteKernel`
[INFO] [stderr]  --> rcann-opencl/src/kernels/gemm/mod.rs:7:23
[INFO] [stderr]   |
[INFO] [stderr] 7 | use opencl3::kernel::{ExecuteKernel};
[INFO] [stderr]   |                       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/general/mod.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stderr]  --> rcann-opencl/src/kernels/general/mod.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/mse/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stderr]  --> rcann-opencl/src/kernels/mse/mod.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use opencl3::kernel::ExecuteKernel;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/scoring/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `next_multiple`
[INFO] [stderr]  --> rcann-opencl/src/kernels/scoring/mod.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::util::{next_multiple, ocl_program};
[INFO] [stderr]   |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stderr]  --> rcann-opencl/src/kernels/scoring/mod.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use opencl3::kernel::ExecuteKernel;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/transpose/mod.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stderr]  --> rcann-opencl/src/kernels/transpose/mod.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use opencl3::kernel::ExecuteKernel;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `next_multiple`
[INFO] [stderr]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:3:19
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::util::{next_multiple, ocl_program};
[INFO] [stderr]   |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `opencl3::kernel::ExecuteKernel`
[INFO] [stderr]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use opencl3::kernel::ExecuteKernel;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `first_ident`
[INFO] [stderr]   --> rcann-opencl/src/util/kernel_macros.rs:37:14
[INFO] [stderr]    |
[INFO] [stderr] 37 | macro_rules! first_ident {
[INFO] [stderr]    |              ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `first_ident`
[INFO] [stderr]   --> rcann-opencl/src/util/kernel_macros.rs:45:16
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub(crate) use first_ident;
[INFO] [stderr]    |                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `format_c_defines`
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:88:16
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub(crate) use format_c_defines;
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rcann::dtype::DType`
[INFO] [stderr]  --> rcann-opencl/src/backend/matmul.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use rcann::dtype::DType;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ITensor`
[INFO] [stderr]  --> rcann-opencl/src/kernels/zero_padding/mod.rs:5:27
[INFO] [stderr]   |
[INFO] [stderr] 5 | use rcann::tensor::{Dim2, ITensor};
[INFO] [stderr]   |                           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Write`
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:15:36
[INFO] [stderr]    |
[INFO] [stderr] 15 | use std::fmt::{Display, Formatter, Write};
[INFO] [stderr]    |                                    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ITensor`
[INFO] [stderr]  --> rcann-opencl/src/kernels/general/mod.rs:9:27
[INFO] [stderr]   |
[INFO] [stderr] 9 | use rcann::tensor::{Dims, ITensor};
[INFO] [stderr]   |                           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stderr]  --> rcann-opencl/src/kernels/mse/mod.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use rcann::tensor::ITensor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rcann::tensor::ITensor`
[INFO] [stderr]  --> rcann-opencl/src/kernels/transpose/mod.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use rcann::tensor::ITensor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::event_list::dealloc_storage_ptr` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |         dealloc_storage_ptr(self.ptr, self.capacity);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:43:5
[INFO] [stderr]    |
[INFO] [stderr] 43 |     unsafe fn dealloc(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `opencl3::event::retain_event` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:71:5
[INFO] [stderr]    |
[INFO] [stderr] 71 |     opencl3::event::retain_event(event).expect("Failed to retain event");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | unsafe fn retain_event(event: cl_event) {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:76:15
[INFO] [stderr]    |
[INFO] [stderr] 76 |     let end = events.add(len);
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:75:1
[INFO] [stderr]    |
[INFO] [stderr] 75 | unsafe fn retain_events(mut events: *const cl_event, len: usize) {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::event_list::retain_event` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 |         retain_event(*events);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:78:22
[INFO] [stderr]    |
[INFO] [stderr] 78 |         retain_event(*events);
[INFO] [stderr]    |                      ^^^^^^^ dereference of raw pointer
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:79:18
[INFO] [stderr]    |
[INFO] [stderr] 79 |         events = events.offset(1);
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `opencl3::event::release_event` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 85 |     opencl3::event::release_event(event).expect("Failed to release event");
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:84:1
[INFO] [stderr]    |
[INFO] [stderr] 84 | unsafe fn release_event(event: cl_event) {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:90:15
[INFO] [stderr]    |
[INFO] [stderr] 90 |     let end = events.add(len);
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:89:1
[INFO] [stderr]    |
[INFO] [stderr] 89 | unsafe fn release_events(mut events: *const cl_event, len: usize) {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::event_list::release_event` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |         release_event(*events);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:92:23
[INFO] [stderr]    |
[INFO] [stderr] 92 |         release_event(*events);
[INFO] [stderr]    |                       ^^^^^^^ dereference of raw pointer
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:93:18
[INFO] [stderr]    |
[INFO] [stderr] 93 |         events = events.offset(1);
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:99:18
[INFO] [stderr]    |
[INFO] [stderr] 99 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/event_list.rs:98:1
[INFO] [stderr]    |
[INFO] [stderr] 98 | unsafe fn dealloc_storage_ptr(ptr: *const cl_event, len: usize) {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:100:5
[INFO] [stderr]     |
[INFO] [stderr] 100 |     alloc::dealloc(ptr as *mut u8, layout);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::alloc::Layout::from_size_align_unchecked` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:105:18
[INFO] [stderr]     |
[INFO] [stderr] 105 |     let layout = Layout::from_size_align_unchecked(mem::size_of::<cl_event>() * len, mem::align_of::<cl_event>());
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:104:1
[INFO] [stderr]     |
[INFO] [stderr] 104 | unsafe fn alloc_storage_ptr(len: usize) -> *mut cl_event {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:106:5
[INFO] [stderr]     |
[INFO] [stderr] 106 |     alloc::alloc(layout) as *mut cl_event
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:169:13
[INFO] [stderr]     |
[INFO] [stderr] 169 |             self.storage.heap.ensure_capacity(cur_len, new_len);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:165:5
[INFO] [stderr]     |
[INFO] [stderr] 165 |     unsafe fn reserve_uninit(&mut self, additional: usize) -> *mut cl_event {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stderr]     |
[INFO] [stderr] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:170:13
[INFO] [stderr]     |
[INFO] [stderr] 170 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stderr]     |
[INFO] [stderr] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:177:13
[INFO] [stderr]     |
[INFO] [stderr] 177 |             self.storage.heap.ptr.add(cur_len)
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stderr]     |
[INFO] [stderr] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:179:13
[INFO] [stderr]     |
[INFO] [stderr] 179 |             self.storage.array.as_mut_ptr().add(cur_len)
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::event_list::EventList::reserve_uninit` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:185:23
[INFO] [stderr]     |
[INFO] [stderr] 185 |         let cur_ptr = self.reserve_uninit(count);
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:184:5
[INFO] [stderr]     |
[INFO] [stderr] 184 |     unsafe fn extend_impl(&mut self, events: *const cl_event, count: usize) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:186:9
[INFO] [stderr]     |
[INFO] [stderr] 186 |         ptr::copy_nonoverlapping(events, cur_ptr, count);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `tensor::event_list::HeapStorage::dealloc` is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stderr]     |
[INFO] [stderr] 193 |             self.storage.heap.dealloc()
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:191:5
[INFO] [stderr]     |
[INFO] [stderr] 191 |     unsafe fn free_mem(&self) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: access to union field is unsafe and requires unsafe block
[INFO] [stderr]    --> rcann-opencl/src/tensor/event_list.rs:193:13
[INFO] [stderr]     |
[INFO] [stderr] 193 |             self.storage.heap.dealloc()
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ access to union field
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `opencl3::memory::Buffer::<T>::create` is unsafe and requires unsafe block
[INFO] [stderr]   --> rcann-opencl/src/tensor/mod.rs:74:13
[INFO] [stderr]    |
[INFO] [stderr] 74 |             Buffer::<T>::create(context, CL_MEM_READ_WRITE, capacity, ptr::null_mut()),
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> rcann-opencl/src/tensor/mod.rs:70:5
[INFO] [stderr]    |
[INFO] [stderr] 70 |     pub unsafe fn uninit(context: &Context, dims: D) -> Result<Self> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_valid_vec_width` is never used
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:51:15
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub(crate) fn is_valid_vec_width(usize: u8) -> bool {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MIN_BLOCK_SIZE` is never used
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:63:7
[INFO] [stderr]    |
[INFO] [stderr] 63 | const MIN_BLOCK_SIZE: usize = 4;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_BLOCK_SIZE` is never used
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:64:7
[INFO] [stderr]    |
[INFO] [stderr] 64 | const MAX_BLOCK_SIZE: usize = 64;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_valid_block_size` is never used
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:65:15
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub(crate) fn is_valid_block_size(value: usize) -> bool {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:249:17
[INFO] [stderr]     |
[INFO] [stderr] 249 |     pub fn deps(&self) -> Ref<EventList> {
[INFO] [stderr]     |                 ^^^^^     -------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 249 |     pub fn deps(&self) -> Ref<'_, EventList> {
[INFO] [stderr]     |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::*`
[INFO] [stderr]   --> rcann-opencl/src/kernels/gemm/test.rs:7:17
[INFO] [stderr]    |
[INFO] [stderr] 7  |             use crate::util::*;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 | impl_tests!(tests_f32, f32);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::*`
[INFO] [stderr]   --> rcann-opencl/src/kernels/gemm/test.rs:7:17
[INFO] [stderr]    |
[INFO] [stderr] 7  |             use crate::util::*;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 | impl_tests!(tests_f64, f64);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::tensor::event_list::EventList`
[INFO] [stderr]  --> rcann-opencl/src/kernels/gemm/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::tensor::event_list::EventList;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::num::NonZeroUsize`
[INFO] [stderr]   --> rcann-opencl/src/kernels/mse/test.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 |             use std::num::NonZeroUsize;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67 | impl_tests!(tests_f32, f32);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::num::NonZeroUsize`
[INFO] [stderr]   --> rcann-opencl/src/kernels/mse/test.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 |             use std::num::NonZeroUsize;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 | impl_tests!(tests_f64, f64);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/gemm/test.rs:19:35
[INFO] [stderr]    |
[INFO] [stderr] 19 |                 let TestContext { device, context, queue } = create_test_context()?;
[INFO] [stderr]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 58 | impl_tests!(tests_f32, f32);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/gemm/test.rs:19:35
[INFO] [stderr]    |
[INFO] [stderr] 19 |                 let TestContext { device, context, queue } = create_test_context()?;
[INFO] [stderr]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 59 | impl_tests!(tests_f64, f64);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:19:35
[INFO] [stderr]     |
[INFO] [stderr] 19  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:40:35
[INFO] [stderr]     |
[INFO] [stderr] 40  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:63:35
[INFO] [stderr]     |
[INFO] [stderr] 63  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:85:35
[INFO] [stderr]     |
[INFO] [stderr] 85  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:19:35
[INFO] [stderr]     |
[INFO] [stderr] 19  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 109 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:40:35
[INFO] [stderr]     |
[INFO] [stderr] 40  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 109 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:63:35
[INFO] [stderr]     |
[INFO] [stderr] 63  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 109 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/kernels/general/test.rs:85:35
[INFO] [stderr]     |
[INFO] [stderr] 85  |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 109 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/mse/test.rs:19:35
[INFO] [stderr]    |
[INFO] [stderr] 19 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 67 | impl_tests!(tests_f32, f32);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/mse/test.rs:19:35
[INFO] [stderr]    |
[INFO] [stderr] 19 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 68 | impl_tests!(tests_f64, f64);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/scoring/test.rs:18:35
[INFO] [stderr]    |
[INFO] [stderr] 18 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 45 | impl_tests!(tests_f32, f32);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/scoring/test.rs:18:35
[INFO] [stderr]    |
[INFO] [stderr] 18 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 46 | impl_tests!(tests_f64, f64);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/softmax/test.rs:13:23
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let TestContext { device, context, queue } = create_test_context().unwrap();
[INFO] [stderr]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/transpose/test.rs:13:23
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/transpose/test.rs:28:23
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]   --> rcann-opencl/src/kernels/transpose/test.rs:43:23
[INFO] [stderr]    |
[INFO] [stderr] 43 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:330:35
[INFO] [stderr]     |
[INFO] [stderr] 330 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 389 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:339:35
[INFO] [stderr]     |
[INFO] [stderr] 339 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 389 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:348:35
[INFO] [stderr]     |
[INFO] [stderr] 348 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 389 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:359:35
[INFO] [stderr]     |
[INFO] [stderr] 359 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 389 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:370:35
[INFO] [stderr]     |
[INFO] [stderr] 370 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 389 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:379:35
[INFO] [stderr]     |
[INFO] [stderr] 379 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 389 | impl_tests!(tests_f32, f32);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:330:35
[INFO] [stderr]     |
[INFO] [stderr] 330 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 390 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:339:35
[INFO] [stderr]     |
[INFO] [stderr] 339 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 390 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:348:35
[INFO] [stderr]     |
[INFO] [stderr] 348 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 390 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:359:35
[INFO] [stderr]     |
[INFO] [stderr] 359 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 390 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:370:35
[INFO] [stderr]     |
[INFO] [stderr] 370 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 390 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device`
[INFO] [stderr]    --> rcann-opencl/src/tensor/mod.rs:379:35
[INFO] [stderr]     |
[INFO] [stderr] 379 |                 let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stderr]     |                                   ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stderr] ...
[INFO] [stderr] 390 | impl_tests!(tests_f64, f64);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `rcann-opencl` (lib) generated 55 warnings (run `cargo fix --lib -p rcann-opencl` to apply 27 suggestions)
[INFO] [stderr] warning: `rcann-opencl` (lib test) generated 89 warnings (54 duplicates) (run `cargo fix --lib -p rcann-opencl --tests` to apply 5 suggestions)
[INFO] [stderr] warning: use of deprecated associated function `opencl3::command_queue::CommandQueue::create_default`: From CL_VERSION_2_0 use create_command_queue_with_properties
[INFO] [stderr]   --> rcann-opencl/examples/test_kernel.rs:35:23
[INFO] [stderr]    |
[INFO] [stderr] 35 |         CommandQueue::create_default(&context, CL_QUEUE_PROFILING_ENABLE).expect("CommandQueue::create_default failed");
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROGRAM_SOURCE` is never used
[INFO] [stderr]   --> rcann-opencl/examples/test_kernel.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const PROGRAM_SOURCE: &str = r#"
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KERNEL_NAME` is never used
[INFO] [stderr]   --> rcann-opencl/examples/test_kernel.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const KERNEL_NAME: &str = "saxpy_float";
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `main` is never used
[INFO] [stderr]   --> rcann-opencl/examples/test_kernel.rs:23:4
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn main() -> Result<()> {
[INFO] [stderr]    |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `rcann-opencl` (example "clinfo") generated 4 warnings
[INFO] [stderr] warning: `rcann-opencl` (example "test_kernel") generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann-ce7ffe1cf8433280)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tensor::native::debug::test::test_large ... ok
[INFO] [stdout] test tensor::native::iter::test::test_tensor_iter_1d ... ok
[INFO] [stdout] test tensor::native::debug::test::test_small ... ok
[INFO] [stdout] test backend::cpu::math::test::test_mat_mul ... ok
[INFO] [stdout] test tensor::native::debug::test::test_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann_examples-29aed32094d6b2af)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann_opencl-6b7919a030140c06)
[INFO] [stdout] 
[INFO] [stdout] running 43 tests
[INFO] [stdout] test backend::matmul::test::test_1block_t_ab ... FAILED
[INFO] [stdout] test backend::matmul::test::test_large ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_b ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_beta ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_a ... FAILED
[INFO] [stdout] test backend::matmul::test::test_large_t ... FAILED
[INFO] [stdout] test kernels::gemm::test::tests_f32::test_gemm ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_ab ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_add_assign ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_sigmoid ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_sigmoid_error ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_sigmoid ... FAILED
[INFO] [stdout] test kernels::mse::test::tests_f32::test_mean_squared_error ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_column_sum ... FAILED
[INFO] [stdout] test kernels::scoring::test::tests_f32::test_accum_multiclass_confusion_matrix ... FAILED
[INFO] [stdout] test kernels::mse::test::tests_f64::test_mean_squared_error ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_column_sum ... FAILED
[INFO] [stdout] test kernels::gemm::test::tests_f64::test_gemm ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_sigmoid_error ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_b ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_a ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_add_assign ... FAILED
[INFO] [stdout] test backend::matmul::test::test_med ... FAILED
[INFO] [stdout] test kernels::scoring::test::tests_f64::test_accum_multiclass_confusion_matrix ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_3x2 ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_block_size_1d ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_large ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_small_rectangle ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_block_size_2d ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_small_square ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_2x3 ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_block_size_2d ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_non_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_3x2 ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_non_block_size_2d ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_non_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_non_block_size_2d ... FAILED
[INFO] [stdout] test util::test::test_format_defines ... ok
[INFO] [stdout] test tensor::tests_f64::test_2x3 ... FAILED
[INFO] [stdout] test kernels::softmax::test::test_softmax ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_1block_t_ab stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_large stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_1block_t_b stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_small stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_small_beta stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_small_t_a stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_large_t stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::gemm::test::tests_f32::test_gemm stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_small_t_ab stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_1block stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f32::test_add_assign stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f64::test_sigmoid stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f64::test_sigmoid_error stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f32::test_sigmoid stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::mse::test::tests_f32::test_mean_squared_error stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f64::test_column_sum stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::scoring::test::tests_f32::test_accum_multiclass_confusion_matrix stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::mse::test::tests_f64::test_mean_squared_error stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f32::test_column_sum stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::gemm::test::tests_f64::test_gemm stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f32::test_sigmoid_error stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_small_t_b stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_1block_t_a stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f64::test_add_assign stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_med stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::scoring::test::tests_f64::test_accum_multiclass_confusion_matrix stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_3x2 stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_block_size_1d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::transpose::test::test_transpose_large stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::transpose::test::test_transpose_small_rectangle stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::transpose::test::test_transpose_small_square stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f32::test_2x3 stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f32::test_block_size_1d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f32::test_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f32::test_non_block_size_1d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f32::test_3x2 stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f32::test_non_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_non_block_size_1d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_non_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_2x3 stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::softmax::test::test_softmax stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'kernels::softmax::test::test_softmax' panicked at rcann-opencl/src/kernels/softmax/test.rs:13:72:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57074392ce02 - std::backtrace_rs::backtrace::libunwind::trace::h73a647620bf1c49d
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57074392ce02 - std::backtrace_rs::backtrace::trace_unsynchronized::hd4d513ed96cb3cb1
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57074392ce02 - std::sys::backtrace::_print_fmt::h61bb95f7476aafa5
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57074392ce02 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha2e7e3a01df69042
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x570743953523 - core::fmt::rt::Argument::fmt::hf14163372f0f9a76
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x570743953523 - core::fmt::write::h7cb8f63788cd01d2
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x570743929bf3 - std::io::default_write_fmt::h9ed739ccee8a150c
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x570743929bf3 - std::io::Write::write_fmt::h1c0a32da913b32f1
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57074392cc52 - std::sys::backtrace::BacktraceLock::print::h3ec4d7883eb25e61
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57074392e36c - std::panicking::default_hook::{{closure}}::h29548987efd832cb
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57074392e1c2 - std::panicking::default_hook::ha25170a15c643514
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x5707438a3a94 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h562adeecbf43c420
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x5707438a3a94 - test::test_main_with_exit_callback::{{closure}}::h97dd2a879d27e0e4
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57074392ed4b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7e85cbdbda26fdb7
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57074392ed4b - std::panicking::rust_panic_with_hook::h0d81afcd829aa24b
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57074392eb1a - std::panicking::begin_panic_handler::{{closure}}::hc84a33f1202346cf
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:706:13
[INFO] [stdout]   16:     0x57074392d2f9 - std::sys::backtrace::__rust_end_short_backtrace::h373067a14f6c59aa
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57074392e7ad - __rustc[beb0385846a06d21]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x5707439511d0 - core::panicking::panic_fmt::ha33fa2ae772efba9
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x570743951616 - core::result::unwrap_failed::hfbbd3c78a73fea3d
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/result.rs:1761:5
[INFO] [stdout]   20:     0x57074385e8c7 - core::result::Result<T,E>::unwrap::h1e0d5506bd732c2b
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/result.rs:1167:23
[INFO] [stdout]   21:     0x57074385e8c7 - rcann_opencl::kernels::softmax::test::test_softmax::h3d460023e5927a80
[INFO] [stdout]                                at /opt/rustwide/workdir/rcann-opencl/src/kernels/softmax/test.rs:13:72
[INFO] [stdout]   22:     0x570743865919 - rcann_opencl::kernels::softmax::test::test_softmax::{{closure}}::h7f02d47e3f00ec07
[INFO] [stdout]                                at /opt/rustwide/workdir/rcann-opencl/src/kernels/softmax/test.rs:12:18
[INFO] [stdout]   23:     0x570743865919 - core::ops::function::FnOnce::call_once::hac8b67c456de822a
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5707438a91cb - core::ops::function::FnOnce::call_once::hf84b9c3d864a6959
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5707438a91cb - test::__rust_begin_short_backtrace::h5724e31441c16fcb
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/test/src/lib.rs:648:18
[INFO] [stdout]   26:     0x5707438a840e - test::run_test_in_process::{{closure}}::hbc28c9aa91793d7d
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/test/src/lib.rs:671:74
[INFO] [stdout]   27:     0x5707438a840e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hc17b0e238c0f8f3e
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x5707438a840e - std::panicking::catch_unwind::do_call::hcdbce0d6dd6c83ce
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:589:40
[INFO] [stdout]   29:     0x5707438a840e - std::panicking::catch_unwind::h9477967ceea044e8
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:552:19
[INFO] [stdout]   30:     0x5707438a840e - std::panic::catch_unwind::h616a2e249da12e16
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5707438a840e - test::run_test_in_process::h2758deb0f2e54430
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/test/src/lib.rs:671:27
[INFO] [stdout]   32:     0x5707438a840e - test::run_test::{{closure}}::habe5cd2564b18aaa
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/test/src/lib.rs:592:43
[INFO] [stdout]   33:     0x57074386bfb4 - test::run_test::{{closure}}::h9a0a6928f1a15421
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/test/src/lib.rs:622:41
[INFO] [stdout]   34:     0x57074386bfb4 - std::sys::backtrace::__rust_begin_short_backtrace::hd68b5332434a22ca
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   35:     0x57074386f95a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h264ddcc3098eacae
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   36:     0x57074386f95a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9fa39489749d6f3c
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x57074386f95a - std::panicking::catch_unwind::do_call::hb9a1944b9f85100f
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:589:40
[INFO] [stdout]   38:     0x57074386f95a - std::panicking::catch_unwind::h0c6f100786c0dad8
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panicking.rs:552:19
[INFO] [stdout]   39:     0x57074386f95a - std::panic::catch_unwind::hf6084e2723385823
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x57074386f95a - std::thread::Builder::spawn_unchecked_::{{closure}}::hf0af58ce658143ad
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   41:     0x57074386f95a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h88a14f9b2e79f9de
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x570743931da7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf31256ba38644b65
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   43:     0x570743931da7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h100ad77f3448041b
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x570743931da7 - std::sys::pal::unix::thread::Thread::new::thread_start::h1a22ded422ce395b
[INFO] [stdout]                                at /rustc/733b47ea4b1b86216f14ef56e49440c33933f230/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   45:     0x7a94b6744aa4 - <unknown>
[INFO] [stdout]   46:     0x7a94b67d1a34 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     backend::matmul::test::test_1block
[INFO] [stdout]     backend::matmul::test::test_1block_t_a
[INFO] [stdout]     backend::matmul::test::test_1block_t_ab
[INFO] [stdout]     backend::matmul::test::test_1block_t_b
[INFO] [stdout]     backend::matmul::test::test_large
[INFO] [stdout]     backend::matmul::test::test_large_t
[INFO] [stdout]     backend::matmul::test::test_med
[INFO] [stdout]     backend::matmul::test::test_small
[INFO] [stdout]     backend::matmul::test::test_small_beta
[INFO] [stdout]     backend::matmul::test::test_small_t_a
[INFO] [stdout]     backend::matmul::test::test_small_t_ab
[INFO] [stdout]     backend::matmul::test::test_small_t_b
[INFO] [stdout]     kernels::gemm::test::tests_f32::test_gemm
[INFO] [stdout]     kernels::gemm::test::tests_f64::test_gemm
[INFO] [stdout]     kernels::general::test::tests_f32::test_add_assign
[INFO] [stdout]     kernels::general::test::tests_f32::test_column_sum
[INFO] [stdout]     kernels::general::test::tests_f32::test_sigmoid
[INFO] [stdout]     kernels::general::test::tests_f32::test_sigmoid_error
[INFO] [stdout]     kernels::general::test::tests_f64::test_add_assign
[INFO] [stdout]     kernels::general::test::tests_f64::test_column_sum
[INFO] [stdout]     kernels::general::test::tests_f64::test_sigmoid
[INFO] [stdout]     kernels::general::test::tests_f64::test_sigmoid_error
[INFO] [stdout]     kernels::mse::test::tests_f32::test_mean_squared_error
[INFO] [stdout]     kernels::mse::test::tests_f64::test_mean_squared_error
[INFO] [stdout]     kernels::scoring::test::tests_f32::test_accum_multiclass_confusion_matrix
[INFO] [stdout]     kernels::scoring::test::tests_f64::test_accum_multiclass_confusion_matrix
[INFO] [stdout]     kernels::softmax::test::test_softmax
[INFO] [stdout]     kernels::transpose::test::test_transpose_large
[INFO] [stdout]     kernels::transpose::test::test_transpose_small_rectangle
[INFO] [stdout]     kernels::transpose::test::test_transpose_small_square
[INFO] [stdout]     tensor::tests_f32::test_2x3
[INFO] [stdout]     tensor::tests_f32::test_3x2
[INFO] [stdout]     tensor::tests_f32::test_block_size_1d
[INFO] [stdout]     tensor::tests_f32::test_block_size_2d
[INFO] [stdout]     tensor::tests_f32::test_non_block_size_1d
[INFO] [stdout]     tensor::tests_f32::test_non_block_size_2d
[INFO] [stdout]     tensor::tests_f64::test_2x3
[INFO] [stdout]     tensor::tests_f64::test_3x2
[INFO] [stdout]     tensor::tests_f64::test_block_size_1d
[INFO] [stdout]     tensor::tests_f64::test_block_size_2d
[INFO] [stdout]     tensor::tests_f64::test_non_block_size_1d
[INFO] [stdout]     tensor::tests_f64::test_non_block_size_2d
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 42 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p rcann-opencl --lib`
[INFO] running `Command { std: "docker" "inspect" "c1efbc1c0b6a69e45b5bc0aede737a6b8b0279ad474b767340052f72d50d0edd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c1efbc1c0b6a69e45b5bc0aede737a6b8b0279ad474b767340052f72d50d0edd", kill_on_drop: false }`
[INFO] [stdout] c1efbc1c0b6a69e45b5bc0aede737a6b8b0279ad474b767340052f72d50d0edd
