[INFO] cloning repository https://github.com/pandas-coding/crab-llm-scratch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pandas-coding/crab-llm-scratch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpandas-coding%2Fcrab-llm-scratch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpandas-coding%2Fcrab-llm-scratch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1c36ae8a8a3f4570579b26a62e24640b279269cc
[INFO] checking pandas-coding/crab-llm-scratch against try#ad93f57d532978d6739002a21bc66b45ed22f998 for pr-155418
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpandas-coding%2Fcrab-llm-scratch" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pandas-coding/crab-llm-scratch
[INFO] finished tweaking git repo https://github.com/pandas-coding/crab-llm-scratch
[INFO] tweaked toml for git repo https://github.com/pandas-coding/crab-llm-scratch written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pandas-coding/crab-llm-scratch on toolchain ad93f57d532978d6739002a21bc66b45ed22f998
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad93f57d532978d6739002a21bc66b45ed22f998" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pandas-coding/crab-llm-scratch already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad93f57d532978d6739002a21bc66b45ed22f998" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-0-tc2/source/Cargo.toml: unused manifest key: workspace.package.name
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ad93f57d532978d6739002a21bc66b45ed22f998" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ddb3307bbfb23d91a0d992c81640e8c48e422b76f2a3b715e3beaeb793f73634
[INFO] running `Command { std: "docker" "start" "-a" "ddb3307bbfb23d91a0d992c81640e8c48e422b76f2a3b715e3beaeb793f73634", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ddb3307bbfb23d91a0d992c81640e8c48e422b76f2a3b715e3beaeb793f73634", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ddb3307bbfb23d91a0d992c81640e8c48e422b76f2a3b715e3beaeb793f73634", kill_on_drop: false }`
[INFO] [stdout] ddb3307bbfb23d91a0d992c81640e8c48e422b76f2a3b715e3beaeb793f73634
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ad93f57d532978d6739002a21bc66b45ed22f998" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5256bc928e3d755e745fdda50e308193fd6067e41b9150c1ed7a51bc00fe4f26
[INFO] running `Command { std: "docker" "start" "-a" "5256bc928e3d755e745fdda50e308193fd6067e41b9150c1ed7a51bc00fe4f26", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.package.name
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling zmij v1.0.12
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]     Checking indexmap v2.12.0
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling aws-lc-rs v1.15.2
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]     Checking zlib-rs v0.5.4
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking iri-string v0.7.9
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking reborrow v0.5.5
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling pulp v0.21.5
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking libz-rs-sys v0.5.4
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling dyn-stack-macros v0.1.3
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking raw-cpuid v10.7.0
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking array-init-cursor v0.2.1
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking lexical-util v0.8.5
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]    Compiling virtue v0.0.18
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking rmp v0.8.14
[INFO] [stderr]    Compiling polars-utils v0.51.0
[INFO] [stderr]     Checking simdutf8 v0.1.5
[INFO] [stderr]     Checking unty v0.0.4
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking phf_shared v0.12.1
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling bincode_derive v2.0.1
[INFO] [stderr]    Compiling polars-schema v0.51.0
[INFO] [stderr]    Compiling zip v1.1.4
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling chrono-tz v0.10.4
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking arrow-schema v51.0.0
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking lexical-parse-integer v0.8.6
[INFO] [stderr]     Checking lexical-write-integer v0.8.5
[INFO] [stderr]     Checking phf v0.12.1
[INFO] [stderr]    Compiling polars-arrow v0.51.0
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]     Checking ethnum v1.5.2
[INFO] [stderr]     Checking lexical-write-float v0.8.5
[INFO] [stderr]     Checking atoi v2.0.0
[INFO] [stderr]    Compiling polars-compute v0.51.0
[INFO] [stderr]     Checking debug_unsafe v0.1.3
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]    Compiling flatbuffers v23.5.26
[INFO] [stderr]     Checking lexical-parse-float v0.8.5
[INFO] [stderr]     Checking atoi_simd v0.16.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking socks v0.3.4
[INFO] [stderr]     Checking brotli-decompressor v2.5.1
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]     Checking twox-hash v2.1.2
[INFO] [stderr]     Checking zune-core v0.5.0
[INFO] [stderr]     Checking lexical-core v0.8.5
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]     Checking integer-encoding v3.0.4
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.2.2
[INFO] [stderr]     Checking fast-float2 v0.2.3
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking thrift v0.17.0
[INFO] [stderr]     Checking zune-jpeg v0.5.5
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking macro_rules_attribute v0.2.2
[INFO] [stderr]     Checking lz4_flex v0.11.5
[INFO] [stderr]     Checking rayon-cond v0.4.0
[INFO] [stderr]    Compiling aws-lc-sys v0.35.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling stacker v0.1.22
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]    Compiling lz4-sys v1.11.1+lz4-1.10.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]     Checking brotli v3.5.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking unicode-normalization-alignments v0.1.12
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking unicode_categories v0.1.1
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking boxcar v0.2.14
[INFO] [stderr]    Compiling polars-core v0.51.0
[INFO] [stderr]    Compiling polars-ops v0.51.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]     Checking argminmax v0.6.3
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]     Checking comfy-table v7.2.1
[INFO] [stderr]     Checking streaming-decompression v0.1.2
[INFO] [stderr]    Compiling ar_archive_writer v0.2.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling polars-plan v0.51.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking rustls-pki-types v1.13.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking rustls-native-certs v0.8.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking dyn-stack v0.13.2
[INFO] [stderr]     Checking pulp v0.18.22
[INFO] [stderr]     Checking dyn-stack v0.10.0
[INFO] [stderr]    Compiling psm v0.1.28
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling num_enum_derive v0.7.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking serde_stacker v0.1.14
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking webpki-roots v1.0.4
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]    Compiling monostate-impl v0.1.18
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking onig v6.5.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking monostate v0.1.18
[INFO] [stderr]     Checking num_enum v0.7.5
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking fancy-regex v0.13.0
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking skiplist v0.6.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking quick-xml v0.38.4
[INFO] [stderr]     Checking bincode v2.0.1
[INFO] [stderr]     Checking rmp-serde v1.3.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking safetensors v0.4.5
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking spm_precompiled v0.1.4
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking gemm-common v0.18.2
[INFO] [stderr]     Checking gemm-common v0.17.1
[INFO] [stderr]     Checking arrow-buffer v51.0.0
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking dary_heap v0.3.8
[INFO] [stderr]     Checking tiktoken-rs v0.9.1
[INFO] [stderr]     Checking now v0.1.3
[INFO] [stderr]     Checking gemm-f32 v0.18.2
[INFO] [stderr]     Checking gemm-c64 v0.18.2
[INFO] [stderr]     Checking gemm-f64 v0.18.2
[INFO] [stderr]     Checking gemm-c32 v0.18.2
[INFO] [stderr]     Checking gemm-f32 v0.17.1
[INFO] [stderr]     Checking gemm-c64 v0.17.1
[INFO] [stderr]     Checking gemm-f64 v0.17.1
[INFO] [stderr]     Checking planus v1.1.1
[INFO] [stderr]     Checking gemm-c32 v0.17.1
[INFO] [stderr]     Checking tokenizers v0.21.4
[INFO] [stderr]     Checking gemm-f16 v0.18.2
[INFO] [stderr]     Checking arrow-data v51.0.0
[INFO] [stderr]     Checking gemm-f16 v0.17.1
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking polars-parquet-format v0.1.0
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking polars-arrow-format v0.2.1
[INFO] [stderr]    Compiling recursive-proc-macro-impl v0.1.1
[INFO] [stderr]     Checking fs4 v0.13.1
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking arrow-array v51.0.0
[INFO] [stderr]     Checking home v0.5.12
[INFO] [stderr]     Checking recursive v0.1.1
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]     Checking gemm v0.18.2
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking ug v0.4.0
[INFO] [stderr]    Compiling serde_with_macros v3.16.1
[INFO] [stderr]    Compiling polars-stream v0.51.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling polars-lazy v0.51.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling erased-serde v0.4.9
[INFO] [stderr]     Checking gemm v0.17.1
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking arrow-select v51.0.0
[INFO] [stderr]    Compiling polars v0.51.0
[INFO] [stderr]     Checking bumpalo v3.19.0
[INFO] [stderr]     Checking libbz2-rs-sys v0.2.2
[INFO] [stderr]     Checking lzma-rust2 v0.13.0
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking serde_with v3.16.1
[INFO] [stderr]     Checking candle-core v0.9.1
[INFO] [stderr]     Checking arrow-cast v51.0.0
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking bzip2 v0.6.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking arrow-ipc v51.0.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling plotly_derive v0.13.5
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking deflate64 v0.1.10
[INFO] [stderr]     Checking ppmd-rust v1.3.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling askama_parser v0.14.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking parquet v51.0.0
[INFO] [stderr]     Checking zip v6.0.0
[INFO] [stderr]     Checking candle-nn v0.9.1
[INFO] [stderr]     Checking candle_addons v0.1.0 (/opt/rustwide/workdir/crates/candle_addons)
[INFO] [stderr]    Compiling askama_derive v0.14.0
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking hyper-util v0.1.18
[INFO] [stderr]     Checking lz4 v1.28.1
[INFO] [stderr]     Checking askama v0.14.0
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking plotly v0.13.5
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking ureq v2.12.1
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.26
[INFO] [stderr]     Checking reqwest v0.13.1
[INFO] [stderr]     Checking object_store v0.12.4
[INFO] [stderr]     Checking hf-hub v0.4.3
[INFO] [stderr]     Checking candle-datasets v0.9.1
[INFO] [stderr]     Checking ch03_attention v0.1.0 (/opt/rustwide/workdir/chapters/ch03_attention)
[INFO] [stderr]     Checking ch02_text_processing v0.1.0 (/opt/rustwide/workdir/chapters/ch02_text_processing)
[INFO] [stderr]     Checking ch07_instruction_tuning v0.1.0 (/opt/rustwide/workdir/chapters/ch07_instruction_tuning)
[INFO] [stdout] warning: unused import: `dropout`
[INFO] [stdout]  --> chapters/ch03_attention/src/listing/list_05_multi_head_attention.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use candle_nn::ops::{dropout, softmax};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dropout`
[INFO] [stdout]  --> chapters/ch03_attention/src/listing/list_05_multi_head_attention.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use candle_nn::ops::{dropout, softmax};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d_in`
[INFO] [stdout]   --> chapters/ch03_attention/src/listing/list_05_multi_head_attention.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let (b, num_tokens, d_in) = xs.dims3()?;
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_d_in`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ch04_gpt_implementation v0.1.0 (/opt/rustwide/workdir/chapters/ch04_gpt_implementation)
[INFO] [stdout] warning: unused import: `IndexOp`
[INFO] [stdout]  --> chapters/ch04_gpt_implementation/src/listing/list_05_example_deep_neural_network.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use candle_core::{IndexOp, Module, Tensor, TensorId, bail};
[INFO] [stdout]   |                   ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d_in`
[INFO] [stdout]   --> chapters/ch03_attention/src/listing/list_05_multi_head_attention.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let (b, num_tokens, d_in) = xs.dims3()?;
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_d_in`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IndexOp`
[INFO] [stdout]  --> chapters/ch04_gpt_implementation/src/listing/list_05_example_deep_neural_network.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use candle_core::{IndexOp, Module, Tensor, TensorId, bail};
[INFO] [stdout]   |                   ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPECIAL_TOKENS` is never used
[INFO] [stdout]   --> chapters/ch02_text_processing/src/listing/list_04_text_tokenizer_v2.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SPECIAL_TOKENS: [&str; 2] = ["<|unk|>", "<|endoftext|>"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stdout]   --> chapters/ch02_text_processing/src/listing/list_04_text_tokenizer_v2.rs:46:33
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 let int_val = *v.borrow();
[INFO] [stdout]    |                                 ^^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `i32` does not implement `Borrow`, so calling `borrow` on `&i32` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `instruction_example` is never used
[INFO] [stdout]  --> chapters/ch07_instruction_tuning/src/test_utils.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn instruction_example() -> InstructionResponseExample {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `another_instruction_example` is never used
[INFO] [stdout]   --> chapters/ch07_instruction_tuning/src/test_utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn another_instruction_example() -> InstructionResponseExample {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `instruction_data` is never used
[INFO] [stdout]   --> chapters/ch07_instruction_tuning/src/test_utils.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn instruction_data(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> chapters/ch04_gpt_implementation/src/listing/list_01_dummy_gpt_model.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut trf_blocks = seq();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trf_blocks`
[INFO] [stdout]   --> chapters/ch04_gpt_implementation/src/listing/list_01_dummy_gpt_model.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut trf_blocks = seq();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trf_blocks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPECIAL_TOKENS` is never used
[INFO] [stdout]   --> chapters/ch02_text_processing/src/listing/list_04_text_tokenizer_v2.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SPECIAL_TOKENS: [&str; 2] = ["<|unk|>", "<|endoftext|>"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stdout]   --> chapters/ch02_text_processing/src/listing/list_04_text_tokenizer_v2.rs:46:33
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 let int_val = *v.borrow();
[INFO] [stdout]    |                                 ^^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `i32` does not implement `Borrow`, so calling `borrow` on `&i32` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ch05_pretraining v0.1.0 (/opt/rustwide/workdir/chapters/ch05_pretraining)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> chapters/ch04_gpt_implementation/src/listing/list_01_dummy_gpt_model.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut trf_blocks = seq();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trf_blocks`
[INFO] [stdout]   --> chapters/ch04_gpt_implementation/src/listing/list_01_dummy_gpt_model.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut trf_blocks = seq();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trf_blocks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vb`
[INFO] [stdout]    --> chapters/ch04_gpt_implementation/src/listing/list_01_dummy_gpt_model.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let vb = get_vb();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_vb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `unset_transpose` and `set_drop_after_loading` are never used
[INFO] [stdout]    --> chapters/ch05_pretraining/src/listing/list_05_load_weights_into_gpt.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl HuggingFaceWeightBuilder {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn unset_transpose(mut self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn set_drop_after_loading(mut self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `unset_transpose` and `set_drop_after_loading` are never used
[INFO] [stdout]    --> chapters/ch05_pretraining/src/listing/list_05_load_weights_into_gpt.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl HuggingFaceWeightBuilder {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn unset_transpose(mut self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn set_drop_after_loading(mut self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking polars-error v0.51.0
[INFO] [stderr]     Checking polars-dtype v0.51.0
[INFO] [stderr]     Checking polars-row v0.51.0
[INFO] [stderr]     Checking polars-parquet v0.51.0
[INFO] [stderr]     Checking polars-time v0.51.0
[INFO] [stderr]     Checking polars-io v0.51.0
[INFO] [stderr]     Checking polars-expr v0.51.0
[INFO] [stderr]     Checking polars-mem-engine v0.51.0
[INFO] [stderr]     Checking ch06_classification_tuning v0.1.0 (/opt/rustwide/workdir/chapters/ch06_classification_tuning)
[INFO] [stdout] warning: unused variable: `extracted_path`
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     extracted_path: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extracted_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `URL` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const URL: &str = "https://archive.ics.uci.edu/static/public/228/sms+spam+collection.zip";
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZIP_PATH` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ZIP_PATH: &str = "data/sms_spam_collection.zip";
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTRACTED_PATH` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const EXTRACTED_PATH: &str = "sms_spam_collection";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTRACTED_FILENAME` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const EXTRACTED_FILENAME: &str = "SMSSpamCollection";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARQUET_URL` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const PARQUET_URL: &str = "https://huggingface.co/datasets/ucirvine/sms_spam/resolve/main/plain_text/train-00000-of-00001.parque...
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARQUET_FILENAME` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const PARQUET_FILENAME: &str = "train-00000-of-00001.parquet";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_smsspam_parquet` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn download_smsspam_parquet(url: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_and_unzip_spam_data` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn download_and_unzip_spam_data(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unzip_file` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn unzip_file(filename: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_file_if_exists` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn remove_file_if_exists<P: AsRef<Path>>(fileName: P) -> anyhow::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_balanced_dataset` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_02_create_balanced_dataset.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn create_balanced_dataset(df: DataFrame) -> anyhow::Result<DataFrame> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_split` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_03_split_dataset.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn random_split(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAD_TOKEN_ID` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const PAD_TOKEN_ID: u32 = 50_256_u32;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpamDataset` is never constructed
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct SpamDataset {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `is_empty`, `max_len`, `get_item_at_index`, and `get_raw_max_len` are never used
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl SpamDataset {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  31 |     /// Creates a new `SpamDataset`.
[INFO] [stdout]  32 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn max_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn get_item_at_index(&self, index: usize) -> anyhow::Result<(&Vec<u32>, Vec<i64>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn get_raw_max_len(encodings: &[Vec<u32>]) -> anyhow::Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpamDatasetBuilder` is never constructed
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct SpamDatasetBuilder<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load_data_from_request`, `data`, `max_len`, `pad_token_id`, and `build` are never used
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<'a> SpamDatasetBuilder<'a> {
[INFO] [stdout]     | ------------------------------- associated items in this implementation
[INFO] [stdout] 124 |     /// Creates a new `SpamDatasetBuilder`.
[INFO] [stdout] 125 |     pub fn new(tokenizer: &'a tiktoken_rs::CoreBPE) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn load_data_from_request<P: AsRef<Path>>(mut self, parquet_file: P) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn data(mut self, data: DataFrame) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn max_len(mut self, max_len: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn pad_token_id(mut self, pad_token_id: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn build(self) -> SpamDataset {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpamDatasetIter` is never constructed
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct SpamDatasetIter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 191 | impl SpamDatasetIter {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn new(dataset: SpamDataset, shuffle: bool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SpamDataBatcher` is never used
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:228:10
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub type SpamDataBatcher = Batcher<IterResult2<SpamDatasetIter>>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpamDataLoader` is never constructed
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_05_spam_data_loader.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SpamDataLoader {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `batcher`, `len`, and `is_empty` are never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_05_spam_data_loader.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl SpamDataLoader {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 12 |     /// Creates a new SpamLoader.
[INFO] [stdout] 13 |     pub fn new(dataset: SpamDataset, batch_size: usize, shuffle: bool, drop_last: bool) -> SpamDataLoader {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn batcher(&self) -> SpamDataBatcher {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HF_GPT2_MODEL_ID` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_06_download_and_load_gpt2.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const HF_GPT2_MODEL_ID: &str = "openai-community/gpt2";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_and_load_gpt2` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_06_download_and_load_gpt2.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn download_and_load_gpt2(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modify_out_head_for_classification` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_07_add_classification_layer.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn modify_out_head_for_classification(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_accuracy_loader` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_08_calc_accuracy_loader.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn calc_accuracy_loader<M>(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_num_correct_batch` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_08_calc_accuracy_loader.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn calc_num_correct_batch<M: GPT + ModuleT>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_loss_loader` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_09_calc_loss_loader.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn calc_loss_loader<M: GPT + ModuleT>(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_loss_batch` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_09_calc_loss_loader.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn calc_loss_batch<M: GPT + ModuleT>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ClassifierTrainingResult` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type ClassifierTrainingResult = (Vec<f32>, Vec<f32>, Vec<f32>, Vec<f32>, usize);
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `train_classifier_simple` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn train_classifier_simple<T: Optimizer, M: GPT + ModuleT>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_model` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn evaluate_model<M: GPT + ModuleT>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TextClassification` is never used
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:118:10
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub enum TextClassification {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_values` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_11_plot_values.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn plot_values<P: AsRef<Path>>(
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_review` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_12_classify_review.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn classify_review(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fileName` should have a snake case name
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:97:42
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn remove_file_if_exists<P: AsRef<Path>>(fileName: P) -> anyhow::Result<()> {
[INFO] [stdout]    |                                          ^^^^^^^^ help: convert the identifier to snake case: `file_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extracted_path`
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     extracted_path: &str,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extracted_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `URL` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const URL: &str = "https://archive.ics.uci.edu/static/public/228/sms+spam+collection.zip";
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZIP_PATH` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ZIP_PATH: &str = "data/sms_spam_collection.zip";
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTRACTED_PATH` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const EXTRACTED_PATH: &str = "sms_spam_collection";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTRACTED_FILENAME` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const EXTRACTED_FILENAME: &str = "SMSSpamCollection";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARQUET_URL` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const PARQUET_URL: &str = "https://huggingface.co/datasets/ucirvine/sms_spam/resolve/main/plain_text/train-00000-of-00001.parque...
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARQUET_FILENAME` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const PARQUET_FILENAME: &str = "train-00000-of-00001.parquet";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_smsspam_parquet` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn download_smsspam_parquet(url: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_and_unzip_spam_data` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn download_and_unzip_spam_data(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unzip_file` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn unzip_file(filename: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_file_if_exists` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn remove_file_if_exists<P: AsRef<Path>>(fileName: P) -> anyhow::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pad_token_id` is never read
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct SpamDataset {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pad_token_id: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpamDataset` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl SpamDataset {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data` and `pad_token_id` are never used
[INFO] [stdout]    --> chapters/ch06_classification_tuning/src/listing/list_04_spam_dataset.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl<'a> SpamDatasetBuilder<'a> {
[INFO] [stdout]     | ------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn data(mut self, data: DataFrame) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn pad_token_id(mut self, pad_token_id: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HF_GPT2_MODEL_ID` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_06_download_and_load_gpt2.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const HF_GPT2_MODEL_ID: &str = "openai-community/gpt2";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_and_load_gpt2` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_06_download_and_load_gpt2.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn download_and_load_gpt2(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_accuracy_loader` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_08_calc_accuracy_loader.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn calc_accuracy_loader<M>(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_loss_loader` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_09_calc_loss_loader.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn calc_loss_loader<M: GPT + ModuleT>(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ClassifierTrainingResult` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type ClassifierTrainingResult = (Vec<f32>, Vec<f32>, Vec<f32>, Vec<f32>, usize);
[INFO] [stdout]   |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `train_classifier_simple` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn train_classifier_simple<T: Optimizer, M: GPT + ModuleT>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_model` is never used
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_10_train_classifier.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn evaluate_model<M: GPT + ModuleT>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plot_values` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_11_plot_values.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn plot_values<P: AsRef<Path>>(
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_review` is never used
[INFO] [stdout]  --> chapters/ch06_classification_tuning/src/listing/list_12_classify_review.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn classify_review(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fileName` should have a snake case name
[INFO] [stdout]   --> chapters/ch06_classification_tuning/src/listing/list_01_download_dataset.rs:97:42
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn remove_file_if_exists<P: AsRef<Path>>(fileName: P) -> anyhow::Result<()> {
[INFO] [stdout]    |                                          ^^^^^^^^ help: convert the identifier to snake case: `file_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 47s
[INFO] running `Command { std: "docker" "inspect" "5256bc928e3d755e745fdda50e308193fd6067e41b9150c1ed7a51bc00fe4f26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5256bc928e3d755e745fdda50e308193fd6067e41b9150c1ed7a51bc00fe4f26", kill_on_drop: false }`
[INFO] [stdout] 5256bc928e3d755e745fdda50e308193fd6067e41b9150c1ed7a51bc00fe4f26
