[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 1.90.0 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/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-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gotcake/rcann on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "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" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bencher v0.1.5
[INFO] [stderr]   Downloaded const_format_proc_macros v0.2.34
[INFO] [stderr]   Downloaded mnist v0.5.0
[INFO] [stderr]   Downloaded const_format v0.2.34
[INFO] [stderr]   Downloaded opencl-sys v0.2.9
[INFO] [stderr]   Downloaded cl3 v0.9.5
[INFO] [stderr]   Downloaded opencl3 v0.9.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b021d16b9f7f7ff5cf6d5b5039aa486b95558390bcd0562559ed9c4547c50902
[INFO] running `Command { std: "docker" "start" "-a" "b021d16b9f7f7ff5cf6d5b5039aa486b95558390bcd0562559ed9c4547c50902", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b021d16b9f7f7ff5cf6d5b5039aa486b95558390bcd0562559ed9c4547c50902", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b021d16b9f7f7ff5cf6d5b5039aa486b95558390bcd0562559ed9c4547c50902", kill_on_drop: false }`
[INFO] [stdout] b021d16b9f7f7ff5cf6d5b5039aa486b95558390bcd0562559ed9c4547c50902
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c3e112d5497501c7d9647690d4c42acded4c82290dd1d24d7c1f5c2e54ea76cd
[INFO] running `Command { std: "docker" "start" "-a" "c3e112d5497501c7d9647690d4c42acded4c82290dd1d24d7c1f5c2e54ea76cd", kill_on_drop: false }`
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling opencl-sys v0.2.9
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling libc v0.2.169
[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 once_cell v1.20.3
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling mnist v0.5.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.14
[INFO] [stderr]    Compiling const_format v0.2.34
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling thread-tree v0.3.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]    Compiling cl3 v0.9.5
[INFO] [stderr]    Compiling opencl3 v0.9.5
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling derive_builder_core v0.11.2
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling rcann v0.1.0 (/opt/rustwide/workdir/rcann)
[INFO] [stderr]    Compiling derive_builder_macro v0.11.2
[INFO] [stderr]    Compiling derive_builder v0.11.2
[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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> rcann/src/net/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stdout]     |          -------------------------- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stdout]    |                ^^^^^     -------------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |             ^^^^^     ------- the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[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] For more information about this error, try `rustc --explain E0133`.
[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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type 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 18.11s
[INFO] running `Command { std: "docker" "inspect" "c3e112d5497501c7d9647690d4c42acded4c82290dd1d24d7c1f5c2e54ea76cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c3e112d5497501c7d9647690d4c42acded4c82290dd1d24d7c1f5c2e54ea76cd", kill_on_drop: false }`
[INFO] [stdout] c3e112d5497501c7d9647690d4c42acded4c82290dd1d24d7c1f5c2e54ea76cd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8094f90a8a1806558f2368522adc964de96834404c6e1c34c73441dda1487021
[INFO] running `Command { std: "docker" "start" "-a" "8094f90a8a1806558f2368522adc964de96834404c6e1c34c73441dda1487021", 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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> rcann/src/net/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stdout]     |          -------------------------- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stdout]    |                ^^^^^     -------------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |             ^^^^^     ------- the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type 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-examples v0.1.0 (/opt/rustwide/workdir/rcann-examples)
[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: 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[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/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/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/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/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/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/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: `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: 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/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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> rcann/src/net/mod.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stdout]     |          -------------------------- the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stdout]    |                ^^^^^     -------------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |             ^^^^^     ------- the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 103 | impl_tensor_extras!(Tensor);
[INFO] [stdout]     | --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stdout]     | -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[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/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/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/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/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/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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stdout]     | ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stdout]     |                                                       +++
[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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stdout]     | ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[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/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/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/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/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/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/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/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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type 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.11s
[INFO] running `Command { std: "docker" "inspect" "8094f90a8a1806558f2368522adc964de96834404c6e1c34c73441dda1487021", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8094f90a8a1806558f2368522adc964de96834404c6e1c34c73441dda1487021", kill_on_drop: false }`
[INFO] [stdout] 8094f90a8a1806558f2368522adc964de96834404c6e1c34c73441dda1487021
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c4786fb54429196c669572df2d84cc671eeb3e55a30d689be55ee227b1ed4fcc
[INFO] running `Command { std: "docker" "start" "-a" "c4786fb54429196c669572df2d84cc671eeb3e55a30d689be55ee227b1ed4fcc", 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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> rcann/src/net/mod.rs:268:9
[INFO] [stderr]     |
[INFO] [stderr] 268 |         &mut self,
[INFO] [stderr]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 274 |     ) -> TrainBatchResult<B::Float> {
[INFO] [stderr]     |          -------------------------- the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 274 |     ) -> TrainBatchResult<'_, B::Float> {
[INFO] [stderr]     |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |             |
[INFO] [stderr]    |             the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 18 |     fn view(&self) -> TensorView<'_, T, D> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 23 |     fn iter_major_axis(&self) -> TensorIter<'_, T, D::Less> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                               |
[INFO] [stderr]    |                               the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn flatten(&self) -> TensorView1<T> {
[INFO] [stderr]    |                ^^^^^     -------------- the same lifetime is hidden here
[INFO] [stderr]    |                |
[INFO] [stderr]    |                the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn flatten(&self) -> TensorView1<'_, T> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> rcann/src/tensor/native/base.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn iter(&self) -> Iter<T> {
[INFO] [stderr]    |             ^^^^^     ------- the same lifetime is hidden here
[INFO] [stderr]    |             |
[INFO] [stderr]    |             the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn iter(&self) -> Iter<'_, T> {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn view_mut(&mut self) -> TensorViewMut<'_, T, D> {
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                            |
[INFO] [stderr]    |                            the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn iter_major_axis_mut(&mut self) -> TensorIterMut<'_, T, D::Less> {
[INFO] [stderr]    |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                                   |
[INFO] [stderr]    |                                   the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn flatten_mut(&mut self) -> TensorViewMut1<'_, T> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 66 |     fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stderr]    |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 103 | impl_tensor_extras!(Tensor);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 103 | impl_tensor_extras!(Tensor);
[INFO] [stderr]     | --------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stderr]     | ------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  91 |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 104 | impl_tensor_extras_mut!(Tensor);
[INFO] [stderr]     | ------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  95 |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stderr]     | ----------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 105 | impl_tensor_extras!(TensorView, 'a);
[INFO] [stderr]     | ----------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stderr]     | -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 106 | impl_tensor_extras!(TensorViewMut, 'a);
[INFO] [stderr]     | -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  57 |             pub fn as_col_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stderr]     | ------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  91 |             pub fn as_row_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                      |
[INFO] [stderr]     |                                      the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 107 | impl_tensor_extras_mut!(TensorViewMut, 'a);
[INFO] [stderr]     | ------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  95 |             pub fn as_col_matrix_mut(&mut self) -> TensorViewMut<'_, T, Dim2> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stderr]     | ---------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr]  54 |             pub fn as_row_matrix(&self) -> TensorView<'_, T, Dim2> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 108 | impl_tensor_extras!(TensorCow, 'a);
[INFO] [stderr]     | ---------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[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: use `'_` for type 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type 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-2387087a35d6679d)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tensor::native::debug::test::test_large ... ok
[INFO] [stdout] test tensor::native::debug::test::test_small ... ok
[INFO] [stdout] test tensor::native::iter::test::test_tensor_iter_1d ... 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.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann_examples-17e06be4893b45cb)
[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-78b54942e0c62cca)
[INFO] [stdout] 
[INFO] [stdout] running 43 tests
[INFO] [stdout] test backend::matmul::test::test_1block ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_a ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_b ... FAILED
[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_large_t ... FAILED
[INFO] [stdout] test backend::matmul::test::test_med ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_a ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_ab ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_b ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_beta ... FAILED
[INFO] [stdout] test kernels::gemm::test::tests_f32::test_gemm ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_add_assign ... FAILED
[INFO] [stdout] test kernels::gemm::test::tests_f64::test_gemm ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_sigmoid_error ... FAILED
[INFO] [stdout] test kernels::mse::test::tests_f32::test_mean_squared_error ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_small_rectangle ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_3x2 ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_column_sum ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_sigmoid ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_non_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_2x3 ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_block_size_2d ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_non_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_non_block_size_2d ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_add_assign ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_sigmoid ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_small_square ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_non_block_size_2d ... FAILED
[INFO] [stdout] test kernels::scoring::test::tests_f32::test_accum_multiclass_confusion_matrix ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_sigmoid_error ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_block_size_2d ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_large ... FAILED
[INFO] [stdout] test kernels::scoring::test::tests_f64::test_accum_multiclass_confusion_matrix ... FAILED
[INFO] [stdout] test util::test::test_format_defines ... ok
[INFO] [stdout] test tensor::tests_f32::test_2x3 ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_3x2 ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_column_sum ... FAILED
[INFO] [stdout] test kernels::mse::test::tests_f64::test_mean_squared_error ... FAILED
[INFO] [stdout] test kernels::softmax::test::test_softmax ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[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] ---- 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] ---- 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_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_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] ---- 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] ---- 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_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_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_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_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] ---- 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] ---- 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::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_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::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::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_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] ---- 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::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] ---- 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_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_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_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] ---- 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_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] ---- 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] ---- 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::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_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] ---- 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::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] ---- 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] ---- 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::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_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_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] ---- 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::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::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:     0x561fe2733292 - std::backtrace_rs::backtrace::libunwind::trace::h2d45396358f41939
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x561fe2733292 - std::backtrace_rs::backtrace::trace_unsynchronized::hffcefc0b67f1d6e2
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x561fe2733292 - std::sys::backtrace::_print_fmt::hd72f71d23b436b92
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x561fe2733292 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hdcfcb6d4c8489523
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x561fe2759b63 - core::fmt::rt::Argument::fmt::h2c56b3114963061a
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x561fe2759b63 - core::fmt::write::h8a494366950f23bb
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/fmt/mod.rs:1468:25
[INFO] [stdout]    6:     0x561fe2730073 - std::io::default_write_fmt::h7b8824096454f323
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x561fe2730073 - std::io::Write::write_fmt::h4e71294925c334d0
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x561fe27330e2 - std::sys::backtrace::BacktraceLock::print::hb2a626a81e06b2dc
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x561fe2734809 - std::panicking::default_hook::{{closure}}::h4f78485264f12d10
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x561fe273463e - std::panicking::default_hook::h2c66fc99e962531d
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x561fe26afb64 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hb6bd65493727d71a
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x561fe26afb64 - test::test_main_with_exit_callback::{{closure}}::h60217ec76a0ece4a
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x561fe27351de - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h318e4efb8c1a5689
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x561fe27351de - std::panicking::rust_panic_with_hook::h33ac55f64bbd807d
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x561fe2734faa - std::panicking::begin_panic_handler::{{closure}}::h30e7cb89678a57fe
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:706:13
[INFO] [stdout]   16:     0x561fe2733789 - std::sys::backtrace::__rust_end_short_backtrace::hed60f27456c16ced
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x561fe2734c3d - __rustc[de2ca18b4c54d5b8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x561fe2757790 - core::panicking::panic_fmt::h62f63d096dd276af
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x561fe2757bf6 - core::result::unwrap_failed::h95bc3f5a607b2c95
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:1765:5
[INFO] [stdout]   20:     0x561fe2676251 - core::result::Result<T,E>::unwrap::h8411e0e33f97473d
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:1167:23
[INFO] [stdout]   21:     0x561fe2676251 - rcann_opencl::kernels::softmax::test::test_softmax::hb09afa2029968bad
[INFO] [stdout]                                at /opt/rustwide/workdir/rcann-opencl/src/kernels/softmax/test.rs:13:72
[INFO] [stdout]   22:     0x561fe266d869 - rcann_opencl::kernels::softmax::test::test_softmax::{{closure}}::h1932797c2ba28b9b
[INFO] [stdout]                                at /opt/rustwide/workdir/rcann-opencl/src/kernels/softmax/test.rs:12:18
[INFO] [stdout]   23:     0x561fe266d869 - core::ops::function::FnOnce::call_once::h7a00ce6362655b9c
[INFO] [stderr] error: test failed, to rerun pass `-p rcann-opencl --lib`
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/ops/function.rs:253:5
[INFO] [stdout]   24:     0x561fe26b53cb - core::ops::function::FnOnce::call_once::h1f9474f1347fff52
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/ops/function.rs:253:5
[INFO] [stdout]   25:     0x561fe26b53cb - test::__rust_begin_short_backtrace::ha52ab26e77157f03
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/test/src/lib.rs:648:18
[INFO] [stdout]   26:     0x561fe26b4505 - test::run_test_in_process::{{closure}}::h229c1a11a50b261f
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/test/src/lib.rs:671:74
[INFO] [stdout]   27:     0x561fe26b4505 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h78821afbf97b39a9
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x561fe26b4505 - std::panicking::catch_unwind::do_call::h53abf3ed5bd32ba3
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:589:40
[INFO] [stdout]   29:     0x561fe26b4505 - std::panicking::catch_unwind::h6deb5fe1e91873c9
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:552:19
[INFO] [stdout]   30:     0x561fe26b4505 - std::panic::catch_unwind::hea0829b6b565654b
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x561fe26b4505 - test::run_test_in_process::hdc44dfecea3db21b
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/test/src/lib.rs:671:27
[INFO] [stdout]   32:     0x561fe26b4505 - test::run_test::{{closure}}::h0364ba59bf23f652
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/test/src/lib.rs:592:43
[INFO] [stdout]   33:     0x561fe2678104 - test::run_test::{{closure}}::h32730b304eec05da
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/test/src/lib.rs:622:41
[INFO] [stdout]   34:     0x561fe2678104 - std::sys::backtrace::__rust_begin_short_backtrace::h177cb952fc54ad2c
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x561fe267bada - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h119d903520007597
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   36:     0x561fe267bada - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hab88401d606702a6
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x561fe267bada - std::panicking::catch_unwind::do_call::h163fe12cca9901c2
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:589:40
[INFO] [stdout]   38:     0x561fe267bada - std::panicking::catch_unwind::he81557d0e17cc1bc
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:552:19
[INFO] [stdout]   39:     0x561fe267bada - std::panic::catch_unwind::hc2b8e79c20593955
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x561fe267bada - std::thread::Builder::spawn_unchecked_::{{closure}}::hfa6b4978e07815cc
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   41:     0x561fe267bada - core::ops::function::FnOnce::call_once{{vtable.shim}}::hddcd7484a13fd793
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/ops/function.rs:253:5
[INFO] [stdout]   42:     0x561fe273825f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5924238c754de3b8
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   43:     0x561fe273825f - std::sys::pal::unix::thread::Thread::new::thread_start::hb6e99e73da4d28f8
[INFO] [stdout]                                at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/pal/unix/thread.rs:107:17
[INFO] [stdout]   44:     0x7f67e87b6aa4 - <unknown>
[INFO] [stdout]   45:     0x7f67e8843a34 - clone
[INFO] [stdout]   46:                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.08s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "c4786fb54429196c669572df2d84cc671eeb3e55a30d689be55ee227b1ed4fcc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4786fb54429196c669572df2d84cc671eeb3e55a30d689be55ee227b1ed4fcc", kill_on_drop: false }`
[INFO] [stdout] c4786fb54429196c669572df2d84cc671eeb3e55a30d689be55ee227b1ed4fcc
