[INFO] cloning repository https://github.com/gotcake/rcann
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gotcake/rcann" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 989dd42c4fc16cb33c749b032c637354f7c63655
[INFO] testing gotcake/rcann against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgotcake%2Frcann" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-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-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gotcake/rcann on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.20
[INFO] [stderr]   Downloaded hermit-abi v0.3.9
[INFO] [stderr]   Downloaded unicode-xid v0.2.6
[INFO] [stderr]   Downloaded ryu v1.0.19
[INFO] [stderr]   Downloaded darling_macro v0.14.4
[INFO] [stderr]   Downloaded approx v0.5.1
[INFO] [stderr]   Downloaded mnist v0.5.0
[INFO] [stderr]   Downloaded const_format_proc_macros v0.2.34
[INFO] [stderr]   Downloaded half v2.4.1
[INFO] [stderr]   Downloaded const_format v0.2.34
[INFO] [stderr]   Downloaded cl3 v0.9.5
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.14
[INFO] [stderr]   Downloaded libm v0.2.11
[INFO] [stderr]   Downloaded zerocopy v0.7.35
[INFO] [stderr]   Downloaded serde_json v1.0.139
[INFO] [stderr]   Downloaded darling_core v0.14.4
[INFO] [stderr]   Downloaded opencl-sys v0.2.9
[INFO] [stderr]   Downloaded matrixmultiply v0.3.9
[INFO] [stderr]   Downloaded serde v1.0.218
[INFO] [stderr]   Downloaded once_cell v1.20.3
[INFO] [stderr]   Downloaded zerocopy-derive v0.7.35
[INFO] [stderr]   Downloaded opencl3 v0.9.5
[INFO] [stderr]   Downloaded syn v2.0.98
[INFO] [stderr]   Downloaded rand_distr v0.4.3
[INFO] [stderr]   Downloaded proc-macro2 v1.0.93
[INFO] [stderr]   Downloaded serde_derive v1.0.218
[INFO] [stderr]   Downloaded darling v0.14.4
[INFO] [stderr]   Downloaded derive_builder v0.11.2
[INFO] [stderr]   Downloaded bencher v0.1.5
[INFO] [stderr]   Downloaded derive_builder_core v0.11.2
[INFO] [stderr]   Downloaded thread-tree v0.3.3
[INFO] [stderr]   Downloaded unicode-ident v1.0.17
[INFO] [stderr]   Downloaded derive_builder_macro v0.11.2
[INFO] [stderr]   Downloaded crunchy v0.2.3
[INFO] [stderr]   Downloaded rawpointer v0.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 74b08ebb5156d83bdd15aff080bab400d1dc3031284918a10f808e021c46fb7a
[INFO] running `Command { std: "docker" "start" "-a" "74b08ebb5156d83bdd15aff080bab400d1dc3031284918a10f808e021c46fb7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "74b08ebb5156d83bdd15aff080bab400d1dc3031284918a10f808e021c46fb7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "74b08ebb5156d83bdd15aff080bab400d1dc3031284918a10f808e021c46fb7a", kill_on_drop: false }`
[INFO] [stdout] 74b08ebb5156d83bdd15aff080bab400d1dc3031284918a10f808e021c46fb7a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1f57b5cf6f5070ac79a6fd351cf6eaf04624a60bddc97765fa7c02617777002d
[INFO] running `Command { std: "docker" "start" "-a" "1f57b5cf6f5070ac79a6fd351cf6eaf04624a60bddc97765fa7c02617777002d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling opencl-sys v0.2.9
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling once_cell v1.20.3
[INFO] [stderr]    Compiling mnist v0.5.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling crossbeam-channel v0.5.14
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling thread-tree v0.3.3
[INFO] [stderr]    Compiling const_format v0.2.34
[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 rand v0.8.5
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling derive_builder_core v0.11.2
[INFO] [stderr]    Compiling 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] [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)]` (part of `#[warn(rust_2024_compatibility)]`) 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] [stderr]    Compiling derive_builder v0.11.2
[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] 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: `wrap_cl_error`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub(crate) use wrap_cl_error;
[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)]` (part of `#[warn(rust_2024_compatibility)]`) 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)]` (part of `#[warn(unused)]`) 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 27.10s
[INFO] running `Command { std: "docker" "inspect" "1f57b5cf6f5070ac79a6fd351cf6eaf04624a60bddc97765fa7c02617777002d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f57b5cf6f5070ac79a6fd351cf6eaf04624a60bddc97765fa7c02617777002d", kill_on_drop: false }`
[INFO] [stdout] 1f57b5cf6f5070ac79a6fd351cf6eaf04624a60bddc97765fa7c02617777002d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 649488ccf353dc93748507f110b73d5323f72df5129a1c207be0e3622fb540ba
[INFO] running `Command { std: "docker" "start" "-a" "649488ccf353dc93748507f110b73d5323f72df5129a1c207be0e3622fb540ba", 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)]` (part of `#[warn(rust_2024_compatibility)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: `wrap_cl_error`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub(crate) use wrap_cl_error;
[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)]` (part of `#[warn(rust_2024_compatibility)]`) 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] [stderr]    Compiling rcann-examples v0.1.0 (/opt/rustwide/workdir/rcann-examples)
[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)]` (part of `#[warn(unused)]`) 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-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: 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: `wrap_cl_error`
[INFO] [stdout]   --> rcann-opencl/src/util/mod.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub(crate) use wrap_cl_error;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[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)]` (part of `#[warn(unused)]`) 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: `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)]` (part of `#[warn(unused)]`) 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: 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: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/transpose/test.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/transpose/test.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]   --> rcann-opencl/src/kernels/transpose/test.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let TestContext { device, context, queue } = util::create_test_context()?;
[INFO] [stdout]    |                       ^^^^^^ help: try ignoring the field: `device: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `tensor::event_list::dealloc_storage_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> rcann-opencl/src/tensor/event_list.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         dealloc_storage_ptr(self.ptr, self.capacity);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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)]` (part of `#[warn(rust_2024_compatibility)]`) 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 `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)]` (part of `#[warn(rust_2024_compatibility)]`) 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 `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[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: `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)]` (part of `#[warn(unused)]`) on by default
[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: 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: 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)]` (part of `#[warn(unused)]`) 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/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-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] 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] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 8.51s
[INFO] running `Command { std: "docker" "inspect" "649488ccf353dc93748507f110b73d5323f72df5129a1c207be0e3622fb540ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "649488ccf353dc93748507f110b73d5323f72df5129a1c207be0e3622fb540ba", kill_on_drop: false }`
[INFO] [stdout] 649488ccf353dc93748507f110b73d5323f72df5129a1c207be0e3622fb540ba
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 82eec23eb559f2fb3c6843f2d32a688a3a22a78ddf7d49259274ae7285ba38eb
[INFO] running `Command { std: "docker" "start" "-a" "82eec23eb559f2fb3c6843f2d32a688a3a22a78ddf7d49259274ae7285ba38eb", 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)]` (part of `#[warn(rust_2024_compatibility)]`) 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: `rcann` (lib) generated 29 warnings (run `cargo fix --lib -p rcann` to apply 25 suggestions)
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: `wrap_cl_error`
[INFO] [stderr]   --> rcann-opencl/src/util/mod.rs:96:16
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub(crate) use wrap_cl_error;
[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)]` (part of `#[warn(rust_2024_compatibility)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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] [stdout] 
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] running 5 tests
[INFO] [stderr] ...
[INFO] [stdout] test tensor::native::debug::test::test_empty ... ok
[INFO] [stderr] 67 | impl_tests!(tests_f32, f32);
[INFO] [stdout] test tensor::native::debug::test::test_large ... ok
[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] [stdout] test tensor::native::iter::test::test_tensor_iter_1d ... ok
[INFO] [stderr] 58 | impl_tests!(tests_f32, f32);
[INFO] [stderr]    | --------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) 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] [stdout] test tensor::native::debug::test::test_small ... ok
[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: 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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rcann-opencl` (lib) generated 56 warnings (run `cargo fix --lib -p rcann-opencl` to apply 29 suggestions)
[INFO] [stderr] warning: `rcann-opencl` (lib test) generated 90 warnings (55 duplicates) (run `cargo fix --lib -p rcann-opencl --tests` to apply 35 suggestions)
[INFO] [stderr] warning: `rcann` (lib test) generated 30 warnings (29 duplicates) (run `cargo fix --lib -p rcann --tests` to apply 1 suggestion)
[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)]` (part of `#[warn(unused)]`) 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.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann-d087fc33c389d044)
[INFO] [stdout] test backend::cpu::math::test::test_mat_mul ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann_examples-24d899f1f50114b4)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcann_opencl-3ea60279ef1072ba)
[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] [stdout] 
[INFO] [stdout] running 43 tests
[INFO] [stdout] test backend::matmul::test::test_small ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_ab ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block ... FAILED
[INFO] [stdout] test backend::matmul::test::test_large ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_b ... FAILED
[INFO] [stdout] test backend::matmul::test::test_1block_t_a ... FAILED
[INFO] [stdout] test backend::matmul::test::test_large_t ... FAILED
[INFO] [stdout] test kernels::gemm::test::tests_f32::test_gemm ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_a ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_column_sum ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_sigmoid ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_sigmoid_error ... FAILED
[INFO] [stdout] test backend::matmul::test::test_med ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_ab ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_add_assign ... 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 kernels::mse::test::tests_f32::test_mean_squared_error ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_beta ... FAILED
[INFO] [stdout] test kernels::mse::test::tests_f64::test_mean_squared_error ... FAILED
[INFO] [stdout] test kernels::scoring::test::tests_f32::test_accum_multiclass_confusion_matrix ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_large ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_small_rectangle ... FAILED
[INFO] [stdout] test kernels::transpose::test::test_transpose_small_square ... FAILED
[INFO] [stdout] test backend::matmul::test::test_small_t_b ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f32::test_sigmoid_error ... FAILED
[INFO] [stdout] test kernels::general::test::tests_f64::test_add_assign ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_non_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_non_block_size_2d ... 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_f32::test_2x3 ... FAILED
[INFO] [stdout] test kernels::scoring::test::tests_f64::test_accum_multiclass_confusion_matrix ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_3x2 ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_3x2 ... 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_non_block_size_2d ... FAILED
[INFO] [stdout] test util::test::test_format_defines ... ok
[INFO] [stdout] test kernels::gemm::test::tests_f64::test_gemm ... FAILED
[INFO] [stdout] test tensor::tests_f64::test_block_size_1d ... FAILED
[INFO] [stdout] test tensor::tests_f32::test_block_size_2d ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `-p rcann-opencl --lib`
[INFO] [stdout] test kernels::softmax::test::test_softmax ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[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_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_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_large stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_1block_t_b stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_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_large_t stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::gemm::test::tests_f32::test_gemm stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- backend::matmul::test::test_small_t_a stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f64::test_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_f64::test_sigmoid stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_f64::test_sigmoid_error stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- 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_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] ---- kernels::general::test::tests_f32::test_add_assign stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::general::test::tests_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] ---- 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] ---- 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::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::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::transpose::test::test_transpose_large stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- kernels::transpose::test::test_transpose_small_rectangle stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- 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] ---- 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] ---- 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] ---- 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] ---- 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_non_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_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_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] ---- 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_3x2 stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_3x2 stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_non_block_size_1d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- tensor::tests_f64::test_non_block_size_2d stdout ----
[INFO] [stdout] Error: ClError { code: -1001, code_str: "CL_PLATFORM_NOT_FOUND_KHR", msg: Some("Failed to enumerate devices") }
[INFO] [stdout] 
[INFO] [stdout] ---- 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] ---- 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_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::softmax::test::test_softmax stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'kernels::softmax::test::test_softmax' (60) 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:     0x5e057c401242 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5e057c401242 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5e057c401242 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5e057c401242 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5e057c4172ca - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5e057c4172ca - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x5e057c4060b6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5e057c4060b6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5e057c3df2ef - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5e057c3df2ef - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5e057c3f8fc9 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5e057c3480be - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5e057c3480be - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5e057c3f9232 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5e057c3f9232 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5e057c3df3a8 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5e057c3d4629 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5e057c3e01fd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5e057c4179cc - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5e057c417742 - core[27de1724e4349be2]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5e057c323928 - <core[27de1724e4349be2]::result::Result<rcann_opencl[45c0b001cea67d07]::util::TestContext, rcann_opencl[45c0b001cea67d07]::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5e057c323928 - rcann_opencl[45c0b001cea67d07]::kernels::softmax::test::test_softmax
[INFO] [stdout]                                at /opt/rustwide/workdir/rcann-opencl/src/kernels/softmax/test.rs:13:72
[INFO] [stdout]   22:     0x5e057c32f039 - rcann_opencl[45c0b001cea67d07]::kernels::softmax::test::test_softmax::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/rcann-opencl/src/kernels/softmax/test.rs:12:18
[INFO] [stdout]   23:     0x5e057c32f039 - <rcann_opencl[45c0b001cea67d07]::kernels::softmax::test::test_softmax::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5e057c33c46b - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5e057c33c46b - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5e057c348cca - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5e057c348cca - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5e057c348cca - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5e057c348cca - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5e057c348cca - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5e057c348cca - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5e057c348cca - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5e057c344274 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5e057c344274 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5e057c34b7c2 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5e057c34b7c2 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5e057c34b7c2 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5e057c34b7c2 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5e057c34b7c2 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5e057c34b7c2 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5e057c34b7c2 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5e057c400aaf - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5e057c400aaf - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7b827ec71aa4 - <unknown>
[INFO] [stdout]   45:     0x7b827ecfea64 - 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.06s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "82eec23eb559f2fb3c6843f2d32a688a3a22a78ddf7d49259274ae7285ba38eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82eec23eb559f2fb3c6843f2d32a688a3a22a78ddf7d49259274ae7285ba38eb", kill_on_drop: false }`
[INFO] [stdout] 82eec23eb559f2fb3c6843f2d32a688a3a22a78ddf7d49259274ae7285ba38eb
