[INFO] fetching crate nncombinator 0.9.8...
[INFO] checking nncombinator-0.9.8 against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] extracting crate nncombinator 0.9.8 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate nncombinator 0.9.8
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate nncombinator 0.9.8
[INFO] tweaked toml for crates.io crate nncombinator 0.9.8 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nncombinator 0.9.8 on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nncombinator 0.9.8 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97
[INFO] running `Command { std: "docker" "start" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.2.0
[INFO] [stderr]    Compiling libm v0.2.8
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking getrandom v0.2.14
[INFO] [stderr]    Compiling rcublas-sys v0.5.0
[INFO] [stderr]    Compiling rcudnn-sys v0.5.0
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling cuda-config v0.1.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking either v1.11.0
[INFO] [stderr]    Compiling thiserror v1.0.59
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling cuda-runtime-sys v0.3.0-alpha.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.8
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]     Checking flate2 v1.0.29
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.5
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-iter v0.1.44
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling serde v1.0.199
[INFO] [stderr]    Compiling cc v1.0.95
[INFO] [stderr]     Checking simba v0.5.1
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking num v0.4.2
[INFO] [stderr]    Compiling nncombinator v0.9.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking fdeflate v0.3.4
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]     Checking bytemuck v1.15.0
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking csv-core v0.1.11
[INFO] [stderr]     Checking exr v1.72.0
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.59
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking try-from-primitive v0.1.0
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]     Checking mnist v0.5.0
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]     Checking rcudnn v1.8.0
[INFO] [stderr]     Checking rcublas v0.6.0
[INFO] [stderr]     Checking nalgebra v0.27.1
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking csv v1.3.0
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:13:102
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn sigmoid_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                  ----^^^^^^
[INFO] [stdout]    |                                                                                                  |
[INFO] [stdout]    |                                                                                                  help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout]    = note: `#[warn(c_void_returns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:14:99
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn relu_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                               ----^^^^^^
[INFO] [stdout]    |                                                                                               |
[INFO] [stdout]    |                                                                                               help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:15:121
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn clipped_relu_forward_float(input: *const f32, ceiling: f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                                     ----^^^^^^
[INFO] [stdout]    |                                                                                                                     |
[INFO] [stdout]    |                                                                                                                     help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:16:105
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn leaky_relu_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                     ----^^^^^^
[INFO] [stdout]    |                                                                                                     |
[INFO] [stdout]    |                                                                                                     help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:17:100
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn swish_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                ----^^^^^^
[INFO] [stdout]    |                                                                                                |
[INFO] [stdout]    |                                                                                                help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:18:99
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn tanh_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                               ----^^^^^^
[INFO] [stdout]    |                                                                                               |
[INFO] [stdout]    |                                                                                               help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:19:103
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn softmax_forward_float(input: *const f32, output: *mut f32, len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                   ----^^^^^^
[INFO] [stdout]    |                                                                                                   |
[INFO] [stdout]    |                                                                                                   help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:20:139
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:21:136
[INFO] [stdout]    |
[INFO] [stdout] 21 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:22:158
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:23:142
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:24:137
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:25:136
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:26:139
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:27:103
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn sigmoid_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                   ----^^^^^^
[INFO] [stdout]    |                                                                                                   |
[INFO] [stdout]    |                                                                                                   help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:28:100
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn relu_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                ----^^^^^^
[INFO] [stdout]    |                                                                                                |
[INFO] [stdout]    |                                                                                                help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:29:122
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn clipped_relu_forward_double(input: *const f64, ceiling: f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                                      ----^^^^^^
[INFO] [stdout]    |                                                                                                                      |
[INFO] [stdout]    |                                                                                                                      help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:30:106
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn leaky_relu_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                      ----^^^^^^
[INFO] [stdout]    |                                                                                                      |
[INFO] [stdout]    |                                                                                                      help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:31:101
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn swish_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                 ----^^^^^^
[INFO] [stdout]    |                                                                                                 |
[INFO] [stdout]    |                                                                                                 help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:32:100
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn tanh_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                ----^^^^^^
[INFO] [stdout]    |                                                                                                |
[INFO] [stdout]    |                                                                                                help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:33:104
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn softmax_forward_double(input: *const f64, output: *mut f64, len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                    ----^^^^^^
[INFO] [stdout]    |                                                                                                    |
[INFO] [stdout]    |                                                                                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:34:140
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:35:137
[INFO] [stdout]    |
[INFO] [stdout] 35 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:36:159
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:37:143
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:38:138
[INFO] [stdout]    |
[INFO] [stdout] 38 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:39:137
[INFO] [stdout]    |
[INFO] [stdout] 39 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:40:140
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:12:126
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn loss_linear_batch_mse_derive_float(r: *const f32, t: *const f32, output: *mut f32, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                                          ----^^^^^^
[INFO] [stdout]    |                                                                                                                          |
[INFO] [stdout]    |                                                                                                                          help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:13:127
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn loss_linear_batch_mse_derive_double(r: *const f64, t: *const f64, output: *mut f64, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                                           ----^^^^^^
[INFO] [stdout]    |                                                                                                                           |
[INFO] [stdout]    |                                                                                                                           help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:14:136
[INFO] [stdout]    |
[INFO] [stdout] 14 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:15:137
[INFO] [stdout]    |
[INFO] [stdout] 15 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:16:147
[INFO] [stdout]    |
[INFO] [stdout] 16 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:17:148
[INFO] [stdout]    |
[INFO] [stdout] 17 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:14:106
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn reduce_linear_batch_float(input: *const f32, output: *mut f32, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                      ----^^^^^^
[INFO] [stdout]    |                                                                                                      |
[INFO] [stdout]    |                                                                                                      help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:15:107
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn reduce_linear_batch_double(input: *const f64, output: *mut f64, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                       ----^^^^^^
[INFO] [stdout]    |                                                                                                       |
[INFO] [stdout]    |                                                                                                       help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:16:171
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:17:172
[INFO] [stdout]    |
[INFO] [stdout] 17 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:18:153
[INFO] [stdout]    |
[INFO] [stdout] 18 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:19:154
[INFO] [stdout]    |
[INFO] [stdout] 19 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:20:173
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ize: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:21:174
[INFO] [stdout]    |
[INFO] [stdout] 21 | ...ize: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:22:145
[INFO] [stdout]    |
[INFO] [stdout] 22 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:23:146
[INFO] [stdout]    |
[INFO] [stdout] 23 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:24:174
[INFO] [stdout]    |
[INFO] [stdout] 24 | ..._size: size_t, diff_len: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:25:175
[INFO] [stdout]    |
[INFO] [stdout] 25 | ..._size: size_t, diff_len: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:26:110
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn addbias_batch_float(bias: *const f32, input_output: *mut f32, units_len: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                          ----^^^^^^
[INFO] [stdout]    |                                                                                                          |
[INFO] [stdout]    |                                                                                                          help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:27:111
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn addbias_batch_double(bias: *const f64, input_output: *mut f64, units_len: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                           ----^^^^^^
[INFO] [stdout]    |                                                                                                           |
[INFO] [stdout]    |                                                                                                           help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking statrs v0.15.0
[INFO] [stdout] error[E0284]: type annotations needed
[INFO] [stdout]    --> tests/cuda/cublas.rs:40:31
[INFO] [stdout]     |
[INFO] [stdout]  40 |     let d_output = device_gpu.batch_forward_linear(&d_bias,&d_units,&d_inputs).unwrap();
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: cannot satisfy `<_ as BatchDataType>::Type == &CudaVec<f32, _, _>`
[INFO] [stdout]     = note: the type must also implement `BatchDataType`
[INFO] [stdout] note: multiple `impl`s or `where` clauses satisfying `DeviceGpu<f32, MemoryPoolAllocator<DeviceAlloc>>: DeviceLinear<f32, CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, 500, 600>, CudaTensor1dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, 600>, _, 500, 600>` found
[INFO] [stdout]    --> tests/cuda/cublas.rs:22:29
[INFO] [stdout]     |
[INFO] [stdout]  22 |     where DeviceGpu<f32,A>: DeviceLinear<f32,CudaTensor2dPtr<f32,A,NI,NO>,CudaTensor1dPtr<f32,A,NO>,CudaTensor1dPtr<f32,A,NI>,NI,NO> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: and another `impl` found in the `nncombinator` crate:
[INFO] [stdout]             - impl<I, A, NI, NO> DeviceLinear<f32, CudaTensor2dPtr<f32, A, NI, NO>, CudaTensor1dPtr<f32, A, NO>, I, NI, NO> for DeviceGpu<f32, A>
[INFO] [stdout]               where <<I as BatchDataType>::Type as TryFrom<<CudaVec<f32, CudaTensor1dPtr<f32, A, NI>, A> as IntoConverter>::Converter>>::Error == nncombinator::error::TypeConvertError, <CudaTensor1dPtr<f32, A, NI> as AsCudaMutPtr>::Pointee == f32, <CudaTensor1dPtr<f32, A, NI> as AsCudaMutPtr>::Allocator == A, <CudaTensor1dPtr<f32, A, NI> as AsCudaReadOnlyPtr>::Pointee == f32, for<'a> <CudaVecView<'a, f32, CudaTensor1dPtrView<'a, f32, NI>> as TryFrom<<<&'a <I as BatchDataType>::Type as CudaView<'a>>::Type as IntoConverter>::Converter>>::Error == nncombinator::error::TypeConvertError, for<'a> <CudaVecView<'a, f32, CudaTensor1dPtrView<'a, f32, NO>> as TryFrom<&'a CudaVec<f32, CudaTensor1dPtr<f32, A, NO>, A>>>::Error == nncombinator::error::TypeConvertError, for<'a> <AddBias<'a, f32, A, NO> as Kernel>::Args == AddBiasArgs<'a, f32, A, NO>, for<'a> <AddBiasBatch<'a, f32, A, NO> as Kernel>::Args == AddBiasBatchArgs<'a, f32, A, NO>, for<'a> <ReduceLinearBatch<'a, f32, A, NO> as Kernel>::Args == ReduceLinearBatchArgs<'a, f32, A, NO>, I: Debug, I: 'static, <I as BatchDataType>::Type: Debug, <I as BatchDataType>::Type: BatchSize, <I as BatchDataType>::Type: IntoConverter, <I as BatchDataType>::Type: 'static, <I as BatchDataType>::Type: TryFrom<<CudaVec<f32, CudaTensor1dPtr<f32, A, NI>, A> as IntoConverter>::Converter>, A: CudaAllocator, A: MemoryType, A: 'static, CudaPtr<f32, A>: AsPtr<f32>, CudaPtr<f32, A>: WriteMemory<f32>, CudaVec<f32, CudaTensor1dPtr<f32, A, NI>, A>: IntoConverter, CudaTensor1dPtr<f32, A, NO>: AsConstKernelPtr, CudaTensor1dPtr<f32, A, NO>: AsKernelPtr, CudaTensor1dPtr<f32, A, NO>: MemorySize, CudaTensor1dPtr<f32, A, NO>: MemoryMoveTo<f32, CudaTensor1dPtr<f32, A, NO>>, CudaTensor1dPtr<f32, A, NO>: ReadMemory<f32>, CudaTensor1dPtr<f32, A, NO>: WriteMemory<f32>, CudaTensor2dPtr<f32, A, NI, NO>: ReadMemory<f32>, CudaTensor2dPtr<f32, A, NI, NO>: WriteMemory<f32>, DeviceGpu<f32, A>: DeviceReduce<CudaVec<f32, CudaTensor1dPtr<f32, A, NO>, A>, CudaTensor1dPtr<f32, A, NO>, f32, NO>, for<'a> I: CudaView<'a>, for<'a> <I as BatchDataType>::Type: CudaView<'a>, for<'a> CudaTensor1dPtr<f32, A, NI>: AsCudaPtr<'a>, CudaTensor1dPtr<f32, A, NI>: AsCudaMutPtr, the constant `NI` has type `usize`, CudaTensor1dPtr<f32, A, NI>: AsCudaReadOnlyPtr, the constant `NO` has type `usize`, for<'a> CudaMutPtr<'a, f32, A>: AsMutPtr<f32>, for<'a> CudaTensor1dPtr<f32, A, NO>: CudaView<'a>, for<'a> &'a I: AsCudaView<'a>, for<'a> &'a <I as BatchDataType>::Type: AsCudaView<'a>, for<'a> &'a CudaTensor1dPtr<f32, A, NO>: AsCudaView<'a>, for<'a> CudaTensor1dPtrView<'a, f32, NI>: MemorySize, for<'a> CudaTensor1dPtrView<'a, f32, NI>: AsConstKernelPtr, for<'a> CudaTensor1dPtrView<'a, f32, NI>: From<<I as CudaView<'a>>::Type>, for<'a> CudaTensor1dPtrView<'a, f32, NI>: From<<&'a I as CudaView<'a>>::Type>, for<'a> CudaTensor1dPtrView<'a, f32, NO>: MemorySize, for<'a> CudaTensor1dPtrView<'a, f32, NO>: AsConstKernelPtr, for<'a> CudaTensor1dPtrView<'a, f32, NO>: From<<CudaTensor1dPtr<f32, A, NO> as CudaView<'a>>::Type>, for<'a> CudaTensor1dPtrView<'a, f32, NO>: From<<&'a CudaTensor1dPtr<f32, A, NO> as CudaView<'a>>::Type>, for<'a> <&'a <I as BatchDataType>::Type as CudaView<'a>>::Type: IntoConverter, for<'a> CudaVecView<'a, f32, CudaTensor1dPtrView<'a, f32, NI>>: TryFrom<<<&'a <I as BatchDataType>::Type as CudaView<'a>>::Type as IntoConverter>::Converter>, I: BatchDataType, for<'a> CudaVecView<'a, f32, CudaTensor1dPtrView<'a, f32, NO>>: TryFrom<&'a CudaVec<f32, CudaTensor1dPtr<f32, A, NO>, A>>, I: MemorySize, for<'a> AddBias<'a, f32, A, NO>: Kernel, I: AsConstKernelPtr, for<'a> AddBiasBatch<'a, f32, A, NO>: Kernel, I: AsKernelPtr, for<'a> ReduceLinearBatch<'a, f32, A, NO>: Kernel, I: From<CudaTensor1dPtr<f32, A, NI>>, <I as BatchDataType>::Type: ?Sized, CudaPtr<f32, A>: ?Sized, CudaVec<f32, CudaTensor1dPtr<f32, A, NI>, A>: ?Sized, CudaTensor1dPtr<f32, A, NO>: ?Sized, CudaTensor2dPtr<f32, A, NI, NO>: ?Sized, DeviceGpu<f32, A>: ?Sized, CudaTensor1dPtr<f32, A, NI>: ?Sized, CudaMutPtr<'a, f32, A>: ?Sized, &'a I: ?Sized, &'a <I as BatchDataType>::Type: ?Sized, &'a CudaTensor1dPtr<f32, A, NO>: ?Sized, CudaTensor1dPtrView<'a, f32, NI>: ?Sized, CudaTensor1dPtrView<'a, f32, NO>: ?Sized, <&'a <I as BatchDataType>::Type as CudaView<'a>>::Type: ?Sized, CudaVecView<'a, f32, CudaTensor1dPtrView<'a, f32, NI>>: ?Sized, CudaVecView<'a, f32, CudaTensor1dPtrView<'a, f32, NO>>: ?Sized, AddBias<'a, f32, A, NO>: ?Sized, AddBiasBatch<'a, f32, A, NO>: ?Sized, ReduceLinearBatch<'a, f32, A, NO>: ?Sized;
[INFO] [stdout] note: required by a bound in `batch_forward_linear`
[INFO] [stdout]    --> src/device/linear.rs:32:14
[INFO] [stdout]     |
[INFO] [stdout]  30 | pub trait DeviceLinear<U,T,B,I,const NI: usize,const NO: usize>
[INFO] [stdout]  31 |     where U: UnitValue<U>,
[INFO] [stdout]  32 |           I: BatchDataType {
[INFO] [stdout]     |              ^^^^^^^^^^^^^ required by this bound in `DeviceLinear::batch_forward_linear`
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn batch_forward_linear<'a>(&self,bias:&B,units:&T,input: &'a <I as BatchDataType>::Type)
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/build/nncombinator/81a2942cccfc2e8a/out/lib-81a2942cccfc2e8a.long-type-11405963694816593273.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]     |
[INFO] [stdout]  40 -     let d_output = device_gpu.batch_forward_linear(&d_bias,&d_units,&d_inputs).unwrap();
[INFO] [stdout]  40 +     let d_output = <DeviceGpu<f32, MemoryPoolAllocator<DeviceAlloc>> as DeviceLinear<f32, CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, 500, 600>, CudaTensor1dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, 600>, I, 500, 600>>::batch_forward_linear(&device_gpu, &d_bias,&d_units,&d_inputs).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/cuda/cublas.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let d_output = device_gpu.batch_backward_linear(&d_units,(&d_loss).into()).unwrap();
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 98 |
[INFO] [stdout] 99 |     let gpu_out = d_output.read_to_vec().unwrap();
[INFO] [stdout]    |                   -------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `d_output` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let d_output: /* Type */ = device_gpu.batch_backward_linear(&d_units,(&d_loss).into()).unwrap();
[INFO] [stdout]    |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed
[INFO] [stdout]    --> tests/cuda/cublas.rs:165:31
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: cannot satisfy `<_ as BatchDataType>::Type == CudaVec<f32, _, _>`
[INFO] [stdout]     = note: the type must also implement `BatchDataType`
[INFO] [stdout] note: required by a bound in `batch_backward_weight_gradient`
[INFO] [stdout]    --> src/device/linear.rs:32:14
[INFO] [stdout]     |
[INFO] [stdout]  30 | pub trait DeviceLinear<U,T,B,I,const NI: usize,const NO: usize>
[INFO] [stdout]  31 |     where U: UnitValue<U>,
[INFO] [stdout]  32 |           I: BatchDataType {
[INFO] [stdout]     |              ^^^^^^^^^^^^^ required by this bound in `DeviceLinear::batch_backward_weight_gradient`
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn batch_backward_weight_gradient<'a>(&self, o: &'a <I as BatchDataType>::Type, loss: &'a Self::BatchOutput)
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/build/nncombinator/81a2942cccfc2e8a/out/lib-81a2942cccfc2e8a.long-type-18364055377175997387.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]     |
[INFO] [stdout] 165 -     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout] 165 +     let d_output = <DeviceGpu<f32, MemoryPoolAllocator<DeviceAlloc>> as DeviceLinear<f32, CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, NI, 600>, CudaTensor1dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, 600>, I, NI, 600>>::batch_backward_weight_gradient(&device_gpu, d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>`
[INFO] [stdout]    --> tests/cuda/cublas.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]     |         ^^^^^^^^              ------------------------------ type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout]     = note: cannot satisfy `DeviceGpu<f32, _>: DeviceLinear<f32, _, _, _, _, 600>`
[INFO] [stdout] note: required by a const generic parameter in `batch_backward_weight_gradient`
[INFO] [stdout]    --> src/device/linear.rs:30:32
[INFO] [stdout]     |
[INFO] [stdout]  30 | pub trait DeviceLinear<U,T,B,I,const NI: usize,const NO: usize>
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^ required by this const generic parameter in `DeviceLinear::batch_backward_weight_gradient`
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn batch_backward_weight_gradient<'a>(&self, o: &'a <I as BatchDataType>::Type, loss: &'a Self::BatchOutput)
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/build/nncombinator/81a2942cccfc2e8a/out/lib-81a2942cccfc2e8a.long-type-13761365512199905472.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: consider giving `d_output` an explicit type, where the value of const parameter `NI` is specified
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let d_output: CudaTensor2dPtr<_, _, NI, 600> = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]     |                 ++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>`
[INFO] [stdout]     --> tests/cuda/cublas.rs:165:9
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |         ^^^^^^^^   -------------------------------------------------------------------- type must be known at this point
[INFO] [stdout]      |
[INFO] [stdout] note: required by a const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout]     --> src/cuda/mod.rs:1219:32
[INFO] [stdout]      |
[INFO] [stdout] 1219 | pub struct CudaTensor2dPtr<T,A,const N1:usize,const N2:usize>
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^ required by this const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout] help: consider giving `d_output` an explicit type, where the value of const parameter `NI` is specified
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output: CudaTensor2dPtr<_, _, NI, 600> = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |                 ++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>`
[INFO] [stdout]     --> tests/cuda/cublas.rs:165:9
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |         ^^^^^^^^   ----------------------------------------------------------------------------- type must be known at this point
[INFO] [stdout]      |
[INFO] [stdout] note: required by a const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout]     --> src/cuda/mod.rs:1219:32
[INFO] [stdout]      |
[INFO] [stdout] 1219 | pub struct CudaTensor2dPtr<T,A,const N1:usize,const N2:usize>
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^ required by this const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout] help: consider giving `d_output` an explicit type, where the value of const parameter `NI` is specified
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output: CudaTensor2dPtr<_, _, NI, 600> = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |                 ++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>`
[INFO] [stdout]     --> tests/cuda/cublas.rs:165:9
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |         ^^^^^^^^                                                                        ------ type must be known at this point
[INFO] [stdout]      |
[INFO] [stdout] note: required by a const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout]     --> src/cuda/mod.rs:1219:32
[INFO] [stdout]      |
[INFO] [stdout] 1219 | pub struct CudaTensor2dPtr<T,A,const N1:usize,const N2:usize>
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^ required by this const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout] help: consider giving `d_output` an explicit type, where the value of const parameter `NI` is specified
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output: CudaTensor2dPtr<_, _, NI, 600> = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |                 ++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>`
[INFO] [stdout]    --> tests/cuda/cublas.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 166 |
[INFO] [stdout] 167 |     let gpu_out = d_output.read_to_vec().unwrap();
[INFO] [stdout]     |                            ----------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>` to implement `PointerElement`
[INFO] [stdout] note: required by a bound in `read_to_vec`
[INFO] [stdout]    --> src/cuda/mod.rs:315:43
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub trait ReadMemory<T: Default + Debug>: PointerElement {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^ required by this bound in `ReadMemory::read_to_vec`
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn read_to_vec(&self) -> Result<Vec<T>,rcudnn::Error>;
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `d_output` an explicit type, where the value of const parameter `NI` is specified
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let d_output: CudaTensor2dPtr<_, _, NI, 600> = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]     |                 ++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed for `CudaTensor2dPtr<f32, MemoryPoolAllocator<DeviceAlloc>, _, 600>`
[INFO] [stdout]     --> tests/cuda/cublas.rs:165:9
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |         ^^^^^^^^
[INFO] [stdout]  166 |
[INFO] [stdout]  167 |     let gpu_out = d_output.read_to_vec().unwrap();
[INFO] [stdout]      |                   ---------------------- type must be known at this point
[INFO] [stdout]      |
[INFO] [stdout] note: required by a const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout]     --> src/cuda/mod.rs:1219:32
[INFO] [stdout]      |
[INFO] [stdout] 1219 | pub struct CudaTensor2dPtr<T,A,const N1:usize,const N2:usize>
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^ required by this const generic parameter in `CudaTensor2dPtr`
[INFO] [stdout] help: consider giving `d_output` an explicit type, where the value of const parameter `NI` is specified
[INFO] [stdout]      |
[INFO] [stdout]  165 |     let d_output: CudaTensor2dPtr<_, _, NI, 600> = device_gpu.batch_backward_weight_gradient(d_inputs,(&d_loss).into()).unwrap();
[INFO] [stdout]      |                 ++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0284.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nncombinator` (test "lib") due to 9 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:13:102
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn sigmoid_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                  ----^^^^^^
[INFO] [stdout]    |                                                                                                  |
[INFO] [stdout]    |                                                                                                  help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout]    = note: `#[warn(c_void_returns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:14:99
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn relu_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                               ----^^^^^^
[INFO] [stdout]    |                                                                                               |
[INFO] [stdout]    |                                                                                               help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:15:121
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn clipped_relu_forward_float(input: *const f32, ceiling: f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                                     ----^^^^^^
[INFO] [stdout]    |                                                                                                                     |
[INFO] [stdout]    |                                                                                                                     help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:16:105
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn leaky_relu_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                     ----^^^^^^
[INFO] [stdout]    |                                                                                                     |
[INFO] [stdout]    |                                                                                                     help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:17:100
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn swish_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                ----^^^^^^
[INFO] [stdout]    |                                                                                                |
[INFO] [stdout]    |                                                                                                help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:18:99
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn tanh_forward_float(input: *const f32, output: *mut f32, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                               ----^^^^^^
[INFO] [stdout]    |                                                                                               |
[INFO] [stdout]    |                                                                                               help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:19:103
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn softmax_forward_float(input: *const f32, output: *mut f32, len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                   ----^^^^^^
[INFO] [stdout]    |                                                                                                   |
[INFO] [stdout]    |                                                                                                   help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:20:139
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:21:136
[INFO] [stdout]    |
[INFO] [stdout] 21 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:22:158
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:23:142
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:24:137
[INFO] [stdout]    |
[INFO] [stdout] 24 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:25:136
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:26:139
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:27:103
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn sigmoid_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                   ----^^^^^^
[INFO] [stdout]    |                                                                                                   |
[INFO] [stdout]    |                                                                                                   help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:28:100
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn relu_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                ----^^^^^^
[INFO] [stdout]    |                                                                                                |
[INFO] [stdout]    |                                                                                                help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:29:122
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn clipped_relu_forward_double(input: *const f64, ceiling: f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                                      ----^^^^^^
[INFO] [stdout]    |                                                                                                                      |
[INFO] [stdout]    |                                                                                                                      help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:30:106
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn leaky_relu_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                      ----^^^^^^
[INFO] [stdout]    |                                                                                                      |
[INFO] [stdout]    |                                                                                                      help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:31:101
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn swish_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                 ----^^^^^^
[INFO] [stdout]    |                                                                                                 |
[INFO] [stdout]    |                                                                                                 help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:32:100
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn tanh_forward_double(input: *const f64, output: *mut f64, len: size_t, units_len: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                ----^^^^^^
[INFO] [stdout]    |                                                                                                |
[INFO] [stdout]    |                                                                                                help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:33:104
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn softmax_forward_double(input: *const f64, output: *mut f64, len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                                                                                    ----^^^^^^
[INFO] [stdout]    |                                                                                                    |
[INFO] [stdout]    |                                                                                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:34:140
[INFO] [stdout]    |
[INFO] [stdout] 34 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:35:137
[INFO] [stdout]    |
[INFO] [stdout] 35 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:36:159
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:37:143
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:38:138
[INFO] [stdout]    |
[INFO] [stdout] 38 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:39:137
[INFO] [stdout]    |
[INFO] [stdout] 39 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/activation.rs:40:140
[INFO] [stdout]    |
[INFO] [stdout] 40 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:12:126
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn loss_linear_batch_mse_derive_float(r: *const f32, t: *const f32, output: *mut f32, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                                          ----^^^^^^
[INFO] [stdout]    |                                                                                                                          |
[INFO] [stdout]    |                                                                                                                          help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:13:127
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn loss_linear_batch_mse_derive_double(r: *const f64, t: *const f64, output: *mut f64, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                                           ----^^^^^^
[INFO] [stdout]    |                                                                                                                           |
[INFO] [stdout]    |                                                                                                                           help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:14:136
[INFO] [stdout]    |
[INFO] [stdout] 14 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:15:137
[INFO] [stdout]    |
[INFO] [stdout] 15 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:16:147
[INFO] [stdout]    |
[INFO] [stdout] 16 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/lossfunction.rs:17:148
[INFO] [stdout]    |
[INFO] [stdout] 17 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:14:106
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn reduce_linear_batch_float(input: *const f32, output: *mut f32, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                      ----^^^^^^
[INFO] [stdout]    |                                                                                                      |
[INFO] [stdout]    |                                                                                                      help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:15:107
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn reduce_linear_batch_double(input: *const f64, output: *mut f64, nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                       ----^^^^^^
[INFO] [stdout]    |                                                                                                       |
[INFO] [stdout]    |                                                                                                       help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:16:171
[INFO] [stdout]    |
[INFO] [stdout] 16 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:17:172
[INFO] [stdout]    |
[INFO] [stdout] 17 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:18:153
[INFO] [stdout]    |
[INFO] [stdout] 18 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:19:154
[INFO] [stdout]    |
[INFO] [stdout] 19 | ...len: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:20:173
[INFO] [stdout]    |
[INFO] [stdout] 20 | ...ize: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:21:174
[INFO] [stdout]    |
[INFO] [stdout] 21 | ...ize: size_t, batch_size: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:22:145
[INFO] [stdout]    |
[INFO] [stdout] 22 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:23:146
[INFO] [stdout]    |
[INFO] [stdout] 23 | ... nlen: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:24:174
[INFO] [stdout]    |
[INFO] [stdout] 24 | ..._size: size_t, diff_len: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:25:175
[INFO] [stdout]    |
[INFO] [stdout] 25 | ..._size: size_t, diff_len: size_t) -> c_void;
[INFO] [stdout]    |                                    ----^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:26:110
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn addbias_batch_float(bias: *const f32, input_output: *mut f32, units_len: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                          ----^^^^^^
[INFO] [stdout]    |                                                                                                          |
[INFO] [stdout]    |                                                                                                          help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declarations returning `c_void` are not compatible with C functions returning `void`
[INFO] [stdout]   --> src/cuda/kernel/device.rs:27:111
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn addbias_batch_double(bias: *const f64, input_output: *mut f64, units_len: c_int, batch_size: c_int) -> c_void;
[INFO] [stdout]    |                                                                                                           ----^^^^^^
[INFO] [stdout]    |                                                                                                           |
[INFO] [stdout]    |                                                                                                           help: remove the return type to implicitly return `()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: returning `()` in Rust is equivalent to returning `void` in C
[INFO] [stdout]    = note: `c_void` is only used through raw pointers for compatibility with `void` pointers
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97", kill_on_drop: false }`
[INFO] [stdout] 45e9d89f96d6dbc6e2481d8984f78068ca14507ef288755d6070202aa0414f97
