[INFO] fetching crate decision_transformer_dfdx 0.2.0... [INFO] testing decision_transformer_dfdx-0.2.0 against 1.90.0 for beta-1.91-3 [INFO] extracting crate decision_transformer_dfdx 0.2.0 into /workspace/builds/worker-5-tc1/source [INFO] removed /workspace/builds/worker-5-tc1/source/rust-toolchain [INFO] started tweaking crates.io crate decision_transformer_dfdx 0.2.0 [INFO] finished tweaking crates.io crate decision_transformer_dfdx 0.2.0 [INFO] tweaked toml for crates.io crate decision_transformer_dfdx 0.2.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate decision_transformer_dfdx 0.2.0 on toolchain 1.90.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 53 packages to latest compatible versions [INFO] [stderr] Adding rand v0.8.5 (available: v0.9.2) [INFO] [stderr] Adding rand_distr v0.4.3 (available: v0.5.1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded gemm-common v0.15.5 [INFO] [stderr] Downloaded dyn-stack v0.9.1 [INFO] [stderr] Downloaded gemm-c64 v0.15.5 [INFO] [stderr] Downloaded gemm-f32 v0.15.5 [INFO] [stderr] Downloaded gemm-f64 v0.15.5 [INFO] [stderr] Downloaded gemm v0.15.5 [INFO] [stderr] Downloaded gemm-c32 v0.15.5 [INFO] [stderr] Downloaded gemm-f16 v0.15.5 [INFO] [stderr] Downloaded dfdx v0.13.0 [INFO] [stderr] Downloaded cudarc v0.9.15 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270 [INFO] running `Command { std: "docker" "start" "-a" "fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270", kill_on_drop: false }` [INFO] [stdout] fb415b6cffffcd2f153f16784c8c623b0671693ad9ad32415ea053d7cf258270 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853 [INFO] running `Command { std: "docker" "start" "-a" "e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853", kill_on_drop: false }` [INFO] [stderr] Compiling libm v0.2.15 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling reborrow v0.5.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling bytemuck v1.23.2 [INFO] [stderr] Compiling raw-cpuid v10.7.0 [INFO] [stderr] Compiling seq-macro v0.3.6 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling dfdx v0.13.0 [INFO] [stderr] Compiling dyn-stack v0.9.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling memmap2 v0.5.10 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling safetensors v0.3.3 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling gemm-common v0.15.5 [INFO] [stderr] Compiling gemm-f32 v0.15.5 [INFO] [stderr] Compiling gemm-c64 v0.15.5 [INFO] [stderr] Compiling gemm-f64 v0.15.5 [INFO] [stderr] Compiling gemm-c32 v0.15.5 [INFO] [stderr] Compiling gemm-f16 v0.15.5 [INFO] [stderr] Compiling gemm v0.15.5 [INFO] [stderr] Compiling decision_transformer_dfdx v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel [INFO] [stdout] --> src/lib.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(generic_const_exprs)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:313:5 [INFO] [stdout] | [INFO] [stdout] 313 | / fn try_forward_mut( [INFO] [stdout] 314 | | &mut self, [INFO] [stdout] 315 | | input: BatchedInput, [INFO] [stdout] 316 | | ) -> Result { [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:313:5 [INFO] [stdout] | [INFO] [stdout] 313 | / fn try_forward_mut( [INFO] [stdout] 314 | | &mut self, [INFO] [stdout] 315 | | input: BatchedInput, [INFO] [stdout] 316 | | ) -> Result { [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:313:5 [INFO] [stdout] | [INFO] [stdout] 313 | / fn try_forward_mut( [INFO] [stdout] 314 | | &mut self, [INFO] [stdout] 315 | | input: BatchedInput, [INFO] [stdout] 316 | | ) -> Result { [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:313:5 [INFO] [stdout] | [INFO] [stdout] 313 | / fn try_forward_mut( [INFO] [stdout] 314 | | &mut self, [INFO] [stdout] 315 | | input: BatchedInput, [INFO] [stdout] 316 | | ) -> Result { [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:313:5 [INFO] [stdout] | [INFO] [stdout] 313 | / fn try_forward_mut( [INFO] [stdout] 314 | | &mut self, [INFO] [stdout] 315 | | input: BatchedInput, [INFO] [stdout] 316 | | ) -> Result { [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | > ModuleMut> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | > ModuleMut> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | > ModuleMut> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | > ModuleMut> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | > ModuleMut> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:36:75 [INFO] [stdout] | [INFO] [stdout] 36 | ...nsor+ TensorToArray<(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>), E>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28 [INFO] [stdout] | [INFO] [stdout] 431 | pub trait TensorToArray: Storage { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:36:75 [INFO] [stdout] | [INFO] [stdout] 36 | ...nsor+ TensorToArray<(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>), E>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::HIDDEN_SIZE}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28 [INFO] [stdout] | [INFO] [stdout] 431 | pub trait TensorToArray: Storage { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:36:75 [INFO] [stdout] | [INFO] [stdout] 36 | ...nsor+ TensorToArray<(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>), E>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28 [INFO] [stdout] | [INFO] [stdout] 431 | pub trait TensorToArray: Storage { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:67:6 [INFO] [stdout] | [INFO] [stdout] 67 | ) -> (Vec>, Vec) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>,)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:194:95 [INFO] [stdout] | [INFO] [stdout] 194 | ...> + CopySlice + TensorToArray<(Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{Config::HIDDEN_SIZE}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28 [INFO] [stdout] | [INFO] [stdout] 431 | pub trait TensorToArray: Storage { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 196 | Game: DTState + HumanEvaluatable + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:194:95 [INFO] [stdout] | [INFO] [stdout] 194 | ...> + CopySlice + TensorToArray<(Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::HIDDEN_SIZE}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28 [INFO] [stdout] | [INFO] [stdout] 431 | pub trait TensorToArray: Storage { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 196 | Game: DTState + HumanEvaluatable + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:194:95 [INFO] [stdout] | [INFO] [stdout] 194 | ...> + CopySlice + TensorToArray<(Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/storage_traits.rs:431:28 [INFO] [stdout] | [INFO] [stdout] 431 | pub trait TensorToArray: Storage { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 196 | Game: DTState + HumanEvaluatable + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:310:6 [INFO] [stdout] | [INFO] [stdout] 310 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 311 | | BatchedInput, [INFO] [stdout] 312 | | [Game::Action; B], [INFO] [stdout] 313 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 314 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | ) -> Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{ Config::SEQ_LEN }>,)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 5 | pub fn stack_usize, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | ) -> Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 5 | pub fn stack_usize, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | tensors: [Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D>; B], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{ Config::SEQ_LEN }>,)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 21 | Config: DTModelConfig + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | tensors: [Tensor<(Const<{ Config::SEQ_LEN }>,), usize, D>; B], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 21 | Config: DTModelConfig + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:26:6 [INFO] [stdout] | [INFO] [stdout] 26 | ) -> Tensor<(Const, Const<{ Config::SEQ_LEN }>), usize, D>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{ Config::SEQ_LEN }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 21 | Config: DTModelConfig + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:26:6 [INFO] [stdout] | [INFO] [stdout] 26 | ) -> Tensor<(Const, Const<{ Config::SEQ_LEN }>), usize, D>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 21 | Config: DTModelConfig + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | inp: &Input, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | inp: &Input, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | inp: &Input, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | inp: &Input, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | inp: &Input, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{Config::SEQ_LEN}>,)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:55:10 [INFO] [stdout] | [INFO] [stdout] 55 | seq: &Tensor<(Const<{ Config::SEQ_LEN }>, Const), E, D>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{ Config::SEQ_LEN }>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 54 | fn print_seq, Config: DTModelConfig + 'static, const M: usize>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:55:10 [INFO] [stdout] | [INFO] [stdout] 55 | seq: &Tensor<(Const<{ Config::SEQ_LEN }>, Const), E, D>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Config::SEQ_LEN }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 54 | fn print_seq, Config: DTModelConfig + 'static, const M: usize>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | input: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | input: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | input: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | input: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | input: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Game::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Game::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | batch: BatchedInput, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:46:28 [INFO] [stdout] | [INFO] [stdout] 46 | fn to_tensor(&self) -> Tensor<(Const<{ Self::STATE_SIZE }>,), E, D>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{ Self::STATE_SIZE }>,)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:46:28 [INFO] [stdout] | [INFO] [stdout] 46 | fn to_tensor(&self) -> Tensor<(Const<{ Self::STATE_SIZE }>,), E, D>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Self::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:59:51 [INFO] [stdout] | [INFO] [stdout] 59 | fn action_to_tensor(action: &Self::Action) -> Tensor<(Const<{ Self::ACTION_SIZE }>,), E, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const<{ Self::ACTION_SIZE }>,)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:59:51 [INFO] [stdout] | [INFO] [stdout] 59 | fn action_to_tensor(action: &Self::Action) -> Tensor<(Const<{ Self::ACTION_SIZE }>,), E, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Self::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::STATE_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Self::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Self::STATE_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{Config::SEQ_LEN}>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<{ Self::ACTION_SIZE }>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Self::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `dfdx::shapes::Const<{ Self::ACTION_SIZE }>` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>, dfdx::shapes::Const<1>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 110 | | BatchedInput, [INFO] [stdout] 111 | | [Self::Action; B], [INFO] [stdout] 112 | | //Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D> [INFO] [stdout] 113 | | ) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_____the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `(dfdx::shapes::Const, dfdx::shapes::Const<{Config::SEQ_LEN}>)` will meet its required lifetime bounds... [INFO] [stdout] | [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dfdx-0.13.0/src/tensor/tensor_impls.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Tensor, T = NoneTape> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:321:22 [INFO] [stdout] | [INFO] [stdout] 321 | let states = self.state_head.forward_mut(states); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:322:23 [INFO] [stdout] | [INFO] [stdout] 322 | let actions = self.action_head.forward_mut(actions.retaped::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:322:52 [INFO] [stdout] | [INFO] [stdout] 322 | let actions = self.action_head.forward_mut(actions.retaped::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:322:60 [INFO] [stdout] | [INFO] [stdout] 322 | let actions = self.action_head.forward_mut(actions.retaped::()); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:323:23 [INFO] [stdout] | [INFO] [stdout] 323 | let rewards = self.return_head.forward_mut(rewards.retaped::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:323:52 [INFO] [stdout] | [INFO] [stdout] 323 | let rewards = self.return_head.forward_mut(rewards.retaped::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:323:60 [INFO] [stdout] | [INFO] [stdout] 323 | let rewards = self.return_head.forward_mut(rewards.retaped::()); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:325:21 [INFO] [stdout] | [INFO] [stdout] 325 | let times = self.time_embeddings.forward_mut(timesteps); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:327:23 [INFO] [stdout] | [INFO] [stdout] 327 | let rewards = rewards + times.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:327:33 [INFO] [stdout] | [INFO] [stdout] 327 | let rewards = rewards + times.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:328:23 [INFO] [stdout] | [INFO] [stdout] 328 | let actions = actions + times.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:328:33 [INFO] [stdout] | [INFO] [stdout] 328 | let actions = actions + times.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:329:22 [INFO] [stdout] | [INFO] [stdout] 329 | let states = states + times; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 331 | let stacked = [rewards, states, actions] [INFO] [stdout] | _______________________^ [INFO] [stdout] 332 | | .stack() [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |____________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 331 | let stacked = [rewards, states, actions] [INFO] [stdout] | _______________________^ [INFO] [stdout] 332 | | .stack() [INFO] [stdout] 333 | | .permute::<_, Axes4<1, 2, 0, 3>>() [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 331 | let stacked = [rewards, states, actions] [INFO] [stdout] | _______________________^ [INFO] [stdout] 332 | | .stack() [INFO] [stdout] 333 | | .permute::<_, Axes4<1, 2, 0, 3>>() [INFO] [stdout] 334 | | .reshape::<(Const, Const<{ 3 * Config::SEQ_LEN }>, Const<{Config::HIDDEN_SIZE}>)>(); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________________________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:333:14 [INFO] [stdout] | [INFO] [stdout] 333 | .permute::<_, Axes4<1, 2, 0, 3>>() [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:334:14 [INFO] [stdout] | [INFO] [stdout] 334 | .reshape::<(Const, Const<{ 3 * Config::SEQ_LEN }>, Const<{Config::HIDDEN_SIZE}>)>(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:337:20 [INFO] [stdout] | [INFO] [stdout] 337 | let input: Tensor<(Const, Const<{ 3 * Config::SEQ_LEN }>, Const<{Config::HIDDEN_SIZE}>), E, D, T> = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | dev.build_module::, E>().forward_mut(stacked); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:342:19 [INFO] [stdout] | [INFO] [stdout] 342 | let out = out [INFO] [stdout] | ___________________^ [INFO] [stdout] 343 | | .reshape::<( [INFO] [stdout] 344 | | Const, [INFO] [stdout] 345 | | Const<{3 * Config::HIDDEN_SIZE * Config::SEQ_LEN}>)>(); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______________________________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:343:14 [INFO] [stdout] | [INFO] [stdout] 343 | .reshape::<( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/dt_model.rs:347:23 [INFO] [stdout] | [INFO] [stdout] 347 | let actions = self.predict_action.forward_mut(out); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 291 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:59:33 [INFO] [stdout] | [INFO] [stdout] 59 | let mut actions_in_seq: [Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D>; [INFO] [stdout] | _________________________________^ [INFO] [stdout] 60 | | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |____________________________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:60:32 [INFO] [stdout] | [INFO] [stdout] 60 | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:60:56 [INFO] [stdout] | [INFO] [stdout] 60 | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:60:56 [INFO] [stdout] | [INFO] [stdout] 34 | action_history: &Vec, [INFO] [stdout] | ------------------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 60 | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn make_move<'a>( [INFO] [stdout] 32 | &self, [INFO] [stdout] 33 | state_history: &Vec, [INFO] [stdout] 34 ~ action_history: &'a Vec, [INFO] [stdout] 35 | temperature: E, [INFO] [stdout] 36 | desired_total_reward: f32, [INFO] [stdout] 37 ~ ) -> Game::Action where Game: 'a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:61:32 [INFO] [stdout] | [INFO] [stdout] 61 | let mut states_in_seq: [Tensor<(Const<{ Game::STATE_SIZE }>,), E, D>; [INFO] [stdout] | ________________________________^ [INFO] [stdout] 62 | | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |____________________________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:62:32 [INFO] [stdout] | [INFO] [stdout] 62 | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:62:56 [INFO] [stdout] | [INFO] [stdout] 62 | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:62:56 [INFO] [stdout] | [INFO] [stdout] 34 | action_history: &Vec, [INFO] [stdout] | ------------------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 62 | Config::SEQ_LEN] = std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn make_move<'a>( [INFO] [stdout] 32 | &self, [INFO] [stdout] 33 | state_history: &Vec, [INFO] [stdout] 34 ~ action_history: &'a Vec, [INFO] [stdout] 35 | temperature: E, [INFO] [stdout] 36 | desired_total_reward: f32, [INFO] [stdout] 37 ~ ) -> Game::Action where Game: 'a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:78:41 [INFO] [stdout] | [INFO] [stdout] 78 | actions_in_seq[seq_index] = Game::action_to_tensor(action); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:82:47 [INFO] [stdout] | [INFO] [stdout] 82 | actions_in_seq[Config::SEQ_LEN - 1] = dev.zeros() + mask; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:82:47 [INFO] [stdout] | [INFO] [stdout] 82 | actions_in_seq[Config::SEQ_LEN - 1] = dev.zeros() + mask; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:94:40 [INFO] [stdout] | [INFO] [stdout] 94 | states_in_seq[seq_index] = state.to_tensor(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:123:20 [INFO] [stdout] | [INFO] [stdout] 123 | let input: Input< [INFO] [stdout] | ____________________^ [INFO] [stdout] 124 | | { Game::STATE_SIZE }, [INFO] [stdout] 125 | | { Game::ACTION_SIZE }, [INFO] [stdout] 126 | | E, [INFO] [stdout] ... | [INFO] [stdout] 129 | | NoneTape, [INFO] [stdout] 130 | | > = ( [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | states_in_seq.stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | actions_in_seq.stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | rtg_in_seq.stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:138:18 [INFO] [stdout] | [INFO] [stdout] 138 | let out: Tensor< [INFO] [stdout] | __________________^ [INFO] [stdout] 139 | | ( [INFO] [stdout] 140 | | //Const<{ Config::SEQ_LEN }>, [INFO] [stdout] 141 | | Const<{ Game::ACTION_SIZE }>, [INFO] [stdout] ... | [INFO] [stdout] 144 | | D, [INFO] [stdout] 145 | | > = self.0.forward(input); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | > = self.0.forward(input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:150:22 [INFO] [stdout] | [INFO] [stdout] 150 | let logits = out / temperature; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:151:20 [INFO] [stdout] | [INFO] [stdout] 151 | let probs: Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D> = logits.softmax(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:151:68 [INFO] [stdout] | [INFO] [stdout] 151 | let probs: Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D> = logits.softmax(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/predict.rs:155:26 [INFO] [stdout] | [INFO] [stdout] 155 | for (i, prob) in probs.as_vec().iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 15 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | let v = self [INFO] [stdout] | _________________^ [INFO] [stdout] 194 | | .w_v [INFO] [stdout] 195 | | .forward_mut(input.clone().put_tape(tape)) [INFO] [stdout] 196 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 200 | | Const<{ HIDDEN / NUM_HEADS }>, [INFO] [stdout] 201 | | )>()? [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | let v = self [INFO] [stdout] | _________________^ [INFO] [stdout] 194 | | .w_v [INFO] [stdout] 195 | | .forward_mut(input.clone().put_tape(tape)) [INFO] [stdout] 196 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 200 | | Const<{ HIDDEN / NUM_HEADS }>, [INFO] [stdout] 201 | | )>()? [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | let v = self [INFO] [stdout] | _________________^ [INFO] [stdout] 194 | | .w_v [INFO] [stdout] 195 | | .forward_mut(input.clone().put_tape(tape)) [INFO] [stdout] 196 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 201 | | )>()? [INFO] [stdout] 202 | | .try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | let v = self [INFO] [stdout] | _________________^ [INFO] [stdout] 194 | | .w_v [INFO] [stdout] 195 | | .forward_mut(input.clone().put_tape(tape)) [INFO] [stdout] 196 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 201 | | )>()? [INFO] [stdout] 202 | | .try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |___________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:196:14 [INFO] [stdout] | [INFO] [stdout] 196 | .try_reshape::<( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:202:14 [INFO] [stdout] | [INFO] [stdout] 202 | .try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let k = self [INFO] [stdout] | _________________^ [INFO] [stdout] 205 | | .w_k [INFO] [stdout] 206 | | .forward(input.clone().retaped::()) [INFO] [stdout] 207 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 211 | | Const<{ HIDDEN / NUM_HEADS }>, [INFO] [stdout] 212 | | )>()? [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let k = self [INFO] [stdout] | _________________^ [INFO] [stdout] 205 | | .w_k [INFO] [stdout] 206 | | .forward(input.clone().retaped::()) [INFO] [stdout] 207 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 211 | | Const<{ HIDDEN / NUM_HEADS }>, [INFO] [stdout] 212 | | )>()? [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let k = self [INFO] [stdout] | _________________^ [INFO] [stdout] 205 | | .w_k [INFO] [stdout] 206 | | .forward(input.clone().retaped::()) [INFO] [stdout] 207 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 212 | | )>()? [INFO] [stdout] 213 | | .try_permute::<_, Axes4<0, 2, 3, 1>>()?; [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let k = self [INFO] [stdout] | _________________^ [INFO] [stdout] 205 | | .w_k [INFO] [stdout] 206 | | .forward(input.clone().retaped::()) [INFO] [stdout] 207 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 212 | | )>()? [INFO] [stdout] 213 | | .try_permute::<_, Axes4<0, 2, 3, 1>>()?; [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |___________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:207:14 [INFO] [stdout] | [INFO] [stdout] 207 | .try_reshape::<( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:213:14 [INFO] [stdout] | [INFO] [stdout] 213 | .try_permute::<_, Axes4<0, 2, 3, 1>>()?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:215:17 [INFO] [stdout] | [INFO] [stdout] 215 | let q = self [INFO] [stdout] | _________________^ [INFO] [stdout] 216 | | .w_q [INFO] [stdout] 217 | | .forward(input.retaped::()) [INFO] [stdout] 218 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 222 | | Const<{ HIDDEN / NUM_HEADS }>, [INFO] [stdout] 223 | | )>()? [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:215:17 [INFO] [stdout] | [INFO] [stdout] 215 | let q = self [INFO] [stdout] | _________________^ [INFO] [stdout] 216 | | .w_q [INFO] [stdout] 217 | | .forward(input.retaped::()) [INFO] [stdout] 218 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 222 | | Const<{ HIDDEN / NUM_HEADS }>, [INFO] [stdout] 223 | | )>()? [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:215:17 [INFO] [stdout] | [INFO] [stdout] 215 | let q = self [INFO] [stdout] | _________________^ [INFO] [stdout] 216 | | .w_q [INFO] [stdout] 217 | | .forward(input.retaped::()) [INFO] [stdout] 218 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 223 | | )>()? [INFO] [stdout] 224 | | .try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:215:17 [INFO] [stdout] | [INFO] [stdout] 215 | let q = self [INFO] [stdout] | _________________^ [INFO] [stdout] 216 | | .w_q [INFO] [stdout] 217 | | .forward(input.retaped::()) [INFO] [stdout] 218 | | .try_reshape::<( [INFO] [stdout] ... | [INFO] [stdout] 223 | | )>()? [INFO] [stdout] 224 | | .try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |___________________________________________________the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:218:14 [INFO] [stdout] | [INFO] [stdout] 218 | .try_reshape::<( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:224:14 [INFO] [stdout] | [INFO] [stdout] 224 | .try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 227 | let qk = q.try_matmul(k)?.try_mul(scalar)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:230:22 [INFO] [stdout] | [INFO] [stdout] 230 | let tokens = qk.try_matmul(v)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:230:22 [INFO] [stdout] | [INFO] [stdout] 230 | let tokens = qk.try_matmul(v)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | let tokens = tokens.try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | let tokens = tokens.try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:231:29 [INFO] [stdout] | [INFO] [stdout] 231 | let tokens = tokens.try_permute::<_, Axes4<0, 2, 1, 3>>()?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:232:22 [INFO] [stdout] | [INFO] [stdout] 232 | let tokens = tokens.try_reshape::<(Const, Const, Const)>()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough [INFO] [stdout] --> src/self_attn.rs:232:29 [INFO] [stdout] | [INFO] [stdout] 232 | let tokens = tokens.try_reshape::<(Const, Const, Const)>()?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `T` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `T` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 178 | T: Tape + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | let mut t = dev.zeros(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Self` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | t[[Self::action_to_index(action)]] = 1.0_f32.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Self` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | t.to_device(&D::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Self` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 17 | >: Clone where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/state_trait.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | get_batch_from_fn(rng, Self::play_one_game, cap_from_game) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 106 | fn get_batch( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Self` may not live long enough [INFO] [stdout] --> src/state_trait.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | get_batch_from_fn(rng, Self::play_one_game, cap_from_game) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Self` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Self` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 94 | >: DTState where Self: 'static [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 70 | let batch: BatchedInput< [INFO] [stdout] | ____________________^ [INFO] [stdout] 71 | | B, [INFO] [stdout] 72 | | { Game::STATE_SIZE }, [INFO] [stdout] 73 | | { Game::ACTION_SIZE }, [INFO] [stdout] ... | [INFO] [stdout] 77 | | OwnedTape, [INFO] [stdout] 78 | | > = (batch.0.traced(grads), batch.1, batch.2, batch.3); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 70 | let batch: BatchedInput< [INFO] [stdout] | ____________________^ [INFO] [stdout] 71 | | B, [INFO] [stdout] 72 | | { Game::STATE_SIZE }, [INFO] [stdout] 73 | | { Game::ACTION_SIZE }, [INFO] [stdout] ... | [INFO] [stdout] 77 | | OwnedTape, [INFO] [stdout] 78 | | > = (batch.0.traced(grads), batch.1, batch.2, batch.3); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_________the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `O` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:78:14 [INFO] [stdout] | [INFO] [stdout] 78 | > = (batch.0.traced(grads), batch.1, batch.2, batch.3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/train.rs:78:14 [INFO] [stdout] | [INFO] [stdout] 78 | > = (batch.0.traced(grads), batch.1, batch.2, batch.3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `O` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 56 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | let y = self.0.forward_mut(batch); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:82:22 [INFO] [stdout] | [INFO] [stdout] 82 | let actual = actions [INFO] [stdout] | ______________________^ [INFO] [stdout] 83 | | .map(|action| Game::action_to_tensor(&action)) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |__________________________________________________________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:82:22 [INFO] [stdout] | [INFO] [stdout] 82 | let actual = actions [INFO] [stdout] | ______________________^ [INFO] [stdout] 83 | | .map(|action| Game::action_to_tensor(&action)) [INFO] [stdout] 84 | | .stack(); [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |____________________the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | .map(|action| Game::action_to_tensor(&action)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 62 | optimizer: &mut O, [INFO] [stdout] | ------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 83 | .map(|action| Game::action_to_tensor(&action)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 55 ~ 'a, const B: usize, [INFO] [stdout] 56 | O: Optimizer, D, E>, [INFO] [stdout] ... [INFO] [stdout] 61 | //mask: Tensor<(Const, Const<{Config::SEQ_LEN}>, Const<{Config::HIDDEN_SIZE}>), E, D>, [INFO] [stdout] 62 ~ optimizer: &'a mut O, [INFO] [stdout] 63 | ) -> E [INFO] [stdout] 64 | where [INFO] [stdout] 65 ~ [(); 3 * { Config::SEQ_LEN }]: Sized, Game: 'a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/train.rs:87:20 [INFO] [stdout] | [INFO] [stdout] 87 | let loss = loss(pred, actual); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:81:29 [INFO] [stdout] | [INFO] [stdout] 81 | let mut actions_in_seq: [Tensor<(Const<{ Game::ACTION_SIZE }>,), E, D>; Config::SEQ_LEN] = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:82:33 [INFO] [stdout] | [INFO] [stdout] 82 | std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:82:33 [INFO] [stdout] | [INFO] [stdout] 66 | dev: &D, [INFO] [stdout] | -- the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 82 | std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 59 ~ 'a, E: Dtype + From + num_traits::Float + rand_distr::uniform::SampleUniform, [INFO] [stdout] 60 | D: Device + dfdx::tensor::ZerosTensor, [INFO] [stdout] 61 | Config: DTModelConfig + 'static, [INFO] [stdout] 62 ~ Game: DTState + 'a, [INFO] [stdout] 63 | >( [INFO] [stdout] 64 | states: Vec, [INFO] [stdout] 65 | actions: Vec, [INFO] [stdout] 66 ~ dev: &'a D, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:83:28 [INFO] [stdout] | [INFO] [stdout] 83 | let mut states_in_seq: [Tensor<(Const<{ Game::STATE_SIZE }>,), E, D>; Config::SEQ_LEN] = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:84:33 [INFO] [stdout] | [INFO] [stdout] 84 | std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:84:33 [INFO] [stdout] | [INFO] [stdout] 66 | dev: &D, [INFO] [stdout] | -- the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 84 | std::array::from_fn(|_| dev.zeros()); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 59 ~ 'a, E: Dtype + From + num_traits::Float + rand_distr::uniform::SampleUniform, [INFO] [stdout] 60 | D: Device + dfdx::tensor::ZerosTensor, [INFO] [stdout] 61 | Config: DTModelConfig + 'static, [INFO] [stdout] 62 ~ Game: DTState + 'a, [INFO] [stdout] 63 | >( [INFO] [stdout] 64 | states: Vec, [INFO] [stdout] 65 | actions: Vec, [INFO] [stdout] 66 ~ dev: &'a D, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:92:26 [INFO] [stdout] | [INFO] [stdout] 92 | let new_action = Game::action_to_tensor(&action); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | next_sequence(&mut actions_in_seq, new_action); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:96:25 [INFO] [stdout] | [INFO] [stdout] 96 | let new_state = state.to_tensor(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | next_sequence(&mut states_in_seq, new_state); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | states_in_seq.clone().stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | states_in_seq.clone().stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | masked_next(&actions_in_seq, dev).stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | masked_next(&actions_in_seq, dev).stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | rtg_in_seq.clone().stack(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | inputs.push(input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:76:22 [INFO] [stdout] | [INFO] [stdout] 76 | let mut inputs = vec![]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:76:22 [INFO] [stdout] | [INFO] [stdout] 76 | let mut inputs = vec![]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 62 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 255 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/trait_helpers.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 258 | &mut self, [INFO] [stdout] | --------- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `temp`, which is owned by the current function [INFO] [stdout] --> src/trait_helpers.rs:278:36 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^^^^^ ---- `temp` is borrowed here [INFO] [stdout] | | [INFO] [stdout] | may outlive borrowed value `temp` [INFO] [stdout] | [INFO] [stdout] note: function requires argument type to outlive `'static` [INFO] [stdout] --> src/trait_helpers.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: to force the closure to take ownership of `temp` (and any other referenced variables), use the `move` keyword [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, move |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `desired_reward`, which is owned by the current function [INFO] [stdout] --> src/trait_helpers.rs:278:36 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^^^^^ -------------- `desired_reward` is borrowed here [INFO] [stdout] | | [INFO] [stdout] | may outlive borrowed value `desired_reward` [INFO] [stdout] | [INFO] [stdout] note: function requires argument type to outlive `'static` [INFO] [stdout] --> src/trait_helpers.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: to force the closure to take ownership of `desired_reward` (and any other referenced variables), use the `move` keyword [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, move |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:278:103 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 255 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `O` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 280 | self.train_on_batch::(batch, actual, optimizer) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `O` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `O` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 256 | O: Optimizer, D, E> + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/trait_helpers.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 278 | get_batch_from_fn(rng, |rng| self.play_one_game(temp, desired_reward, rng), cap_from_game); [INFO] [stdout] | ------------------------------------------------------------------------------------------ [INFO] [stdout] | | | | [INFO] [stdout] | | | first borrow occurs due to use of `*self` in closure [INFO] [stdout] | | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] 279 | [INFO] [stdout] 280 | self.train_on_batch::(batch, actual, optimizer) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:281:5 [INFO] [stdout] | [INFO] [stdout] 281 | } [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 255 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:325:20 [INFO] [stdout] | [INFO] [stdout] 325 | let mut batch: [Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>; B] = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:325:20 [INFO] [stdout] | [INFO] [stdout] 325 | let mut batch: [Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>; B] = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:325:20 [INFO] [stdout] | [INFO] [stdout] 325 | let mut batch: [Input<{ Game::STATE_SIZE }, { Game::ACTION_SIZE }, E, D, Config, NoneTape>; B] = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:34 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:34 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:34 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `F` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] 308 | player_fn: F, [INFO] [stdout] ... [INFO] [stdout] 315 | where [INFO] [stdout] 316 ~ F: Fn(&mut R) -> (Vec, Vec) + 'a, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:34 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:34 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 304 | Config: DTModelConfig + 'static, [INFO] [stdout] 305 ~ Game: DTState + 'a, [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `F` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] 308 | player_fn: F, [INFO] [stdout] ... [INFO] [stdout] 315 | where [INFO] [stdout] 316 ~ F: Fn(&mut R) -> (Vec, Vec) + 'a, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 304 | Config: DTModelConfig + 'static, [INFO] [stdout] 305 ~ Game: DTState + 'a, [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:60 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:60 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:60 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `F` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] 308 | player_fn: F, [INFO] [stdout] ... [INFO] [stdout] 315 | where [INFO] [stdout] 316 ~ F: Fn(&mut R) -> (Vec, Vec) + 'a, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:60 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:60 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 304 | Config: DTModelConfig + 'static, [INFO] [stdout] 305 ~ Game: DTState + 'a, [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:73 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:73 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:73 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `F` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] 308 | player_fn: F, [INFO] [stdout] ... [INFO] [stdout] 315 | where [INFO] [stdout] 316 ~ F: Fn(&mut R) -> (Vec, Vec) + 'a, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:73 [INFO] [stdout] | [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0311]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:326:73 [INFO] [stdout] | [INFO] [stdout] 307 | rng: &mut R, [INFO] [stdout] | ------ the parameter type `Game` must be valid for the anonymous lifetime defined here... [INFO] [stdout] ... [INFO] [stdout] 326 | std::array::from_fn(|_| (dev.zeros(), dev.zeros(), dev.zeros(), dev.zeros())); [INFO] [stdout] | ^^^^^^^^^^^ ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 299 ~ 'a, const B: usize, [INFO] [stdout] 300 | R: rand::Rng + ?Sized, [INFO] [stdout] ... [INFO] [stdout] 304 | Config: DTModelConfig + 'static, [INFO] [stdout] 305 ~ Game: DTState + 'a, [INFO] [stdout] 306 | >( [INFO] [stdout] 307 ~ rng: &'a mut R, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:378:39 [INFO] [stdout] | [INFO] [stdout] 378 | let (inputs, last_elements) = game_to_inputs(states, actions, &dev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:381:19 [INFO] [stdout] | [INFO] [stdout] 381 | let len = inputs.len(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:384:27 [INFO] [stdout] | [INFO] [stdout] 384 | for (i, input) in inputs.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:384:27 [INFO] [stdout] | [INFO] [stdout] 384 | for (i, input) in inputs.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:384:27 [INFO] [stdout] | [INFO] [stdout] 384 | for (i, input) in inputs.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `R` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:405:26 [INFO] [stdout] | [INFO] [stdout] 405 | let batched_inputs = batch_inputs(batch, &dev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `R` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `R` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 300 | R: rand::Rng + ?Sized + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `F` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:405:26 [INFO] [stdout] | [INFO] [stdout] 405 | let batched_inputs = batch_inputs(batch, &dev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `F` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `F` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 316 | F: Fn(&mut R) -> (Vec, Vec) + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Game` may not live long enough [INFO] [stdout] --> src/trait_helpers.rs:405:26 [INFO] [stdout] | [INFO] [stdout] 405 | let batched_inputs = batch_inputs(batch, &dev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Game` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Game` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 305 | Game: DTState + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | dev.tensor(data) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 5 | pub fn stack_usize, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | tensors[i].copy_into(&mut data[i]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 21 | Config: DTModelConfig + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | dev.tensor(data) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 21 | Config: DTModelConfig + 'static, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | print_seq(&inp.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | print_seq(&inp.1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | print_seq(&inp.2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:50:23 [INFO] [stdout] | [INFO] [stdout] 50 | println!("{:?}", &inp.3.as_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 38 | pub fn print_input, Config: DTModelConfig + 'static>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:59:31 [INFO] [stdout] | [INFO] [stdout] 59 | println!("{i}: {:?}", seq.clone().select(dev.tensor(i)).as_vec()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 54 | fn print_seq, Config: DTModelConfig + 'static, const M: usize>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0310]: the parameter type `Config` may not live long enough [INFO] [stdout] --> src/utils.rs:59:31 [INFO] [stdout] | [INFO] [stdout] 59 | println!("{i}: {:?}", seq.clone().select(dev.tensor(i)).as_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | the parameter type `Config` must be valid for the static lifetime... [INFO] [stdout] | ...so that the type `Config` will meet its required lifetime bounds [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 54 | fn print_seq, Config: DTModelConfig + 'static, const M: usize>( [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0310, E0311, E0373, E0502, E0521, E0554. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0310`. [INFO] [stdout] [INFO] [stderr] error: could not compile `decision_transformer_dfdx` (lib) due to 252 previous errors [INFO] running `Command { std: "docker" "inspect" "e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853", kill_on_drop: false }` [INFO] [stdout] e9f0a81353420cc0997bd4afa6962d2af80afce5203b143eca785025c372e853