[INFO] cloning repository https://github.com/rakaarwaky/hipfire
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rakaarwaky/hipfire" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frakaarwaky%2Fhipfire", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frakaarwaky%2Fhipfire'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3d6c5e6ad752090f7f4932aed51d0179be1390a0
[INFO] checking rakaarwaky/hipfire against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frakaarwaky%2Fhipfire" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/rakaarwaky/hipfire
[INFO] finished tweaking git repo https://github.com/rakaarwaky/hipfire
[INFO] tweaked toml for git repo https://github.com/rakaarwaky/hipfire written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rakaarwaky/hipfire on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rakaarwaky/hipfire 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `collect_hessian` should have a kebab-case name
[INFO] [stderr]     |
[INFO] [stderr]   1 | /workspace/builds/worker-7-tc1/source/target/.../collect_hessian
[INFO] [stderr]     |                                                  ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `collect-hessian`, convert `bin.name`
[INFO] [stderr]    --> crates/hipfire-runtime/Cargo.toml:426:8
[INFO] [stderr]     |
[INFO] [stderr] 426 - name = "collect_hessian"
[INFO] [stderr] 426 + name = "collect-hessian"
[INFO] [stderr]     |
[INFO] [stderr] warning: binary `collect_imatrix` should have a kebab-case name
[INFO] [stderr]     |
[INFO] [stderr]   1 | /workspace/builds/worker-7-tc1/source/target/.../collect_imatrix
[INFO] [stderr]     |                                                  ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to change the binary name to `collect-imatrix`, convert `bin.name`
[INFO] [stderr]    --> crates/hipfire-runtime/Cargo.toml:421:8
[INFO] [stderr]     |
[INFO] [stderr] 421 - name = "collect_imatrix"
[INFO] [stderr] 421 + name = "collect-imatrix"
[INFO] [stderr]     |
[INFO] [stderr] warning: `hipfire-runtime` (manifest) generated 2 warnings
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> crates/radiowave/Cargo.toml:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | repository = "https://github.com/warpfront/hipfire"
[INFO] [stderr]    |              --------------------------------------
[INFO] [stderr] 15 | homepage = "https://github.com/warpfront/hipfire"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `radiowave` (manifest) generated 1 warning
[INFO] [stderr] warning: binary `collect_e8_hessian` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-7-tc1/source/target/.../collect_e8_hessian
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `collect-e8-hessian`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/collect_e8_hessian.rs
[INFO] [stderr] 1 + src/bin/collect-e8-hessian.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `dflash_convert` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-7-tc1/source/target/.../dflash_convert
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `dflash-convert`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/dflash_convert.rs
[INFO] [stderr] 1 + src/bin/dflash-convert.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `draft_to_mq4` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-7-tc1/source/target/.../draft_to_mq4
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `draft-to-mq4`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/draft_to_mq4.rs
[INFO] [stderr] 1 + src/bin/draft-to-mq4.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `mq4_merge_mtp` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-7-tc1/source/target/.../mq4_merge_mtp
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `mq4-merge-mtp`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/mq4_merge_mtp.rs
[INFO] [stderr] 1 + src/bin/mq4-merge-mtp.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `mtp_extract` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-7-tc1/source/target/.../mtp_extract
[INFO] [stderr]   |                                                  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `mtp-extract`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/mtp_extract.rs
[INFO] [stderr] 1 + src/bin/mtp-extract.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `hipfire-quantize` (manifest) generated 5 warnings
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded md5 v0.8.1
[INFO] [stderr]   Downloaded pest_meta v2.8.7
[INFO] [stderr]   Downloaded pest_derive v2.8.7
[INFO] [stderr]   Downloaded pest_generator v2.8.7
[INFO] [stderr]   Downloaded pest v2.8.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b
[INFO] running `Command { std: "docker" "start" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> crates/radiowave/Cargo.toml:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | repository = "https://github.com/warpfront/hipfire"
[INFO] [stderr]    |              --------------------------------------
[INFO] [stderr] 15 | homepage = "https://github.com/warpfront/hipfire"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `radiowave` (manifest) generated 1 warning
[INFO] [stderr] warning: binary `collect_e8_hessian` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../collect_e8_hessian
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `collect-e8-hessian`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/collect_e8_hessian.rs
[INFO] [stderr] 1 + src/bin/collect-e8-hessian.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `dflash_convert` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../dflash_convert
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `dflash-convert`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/dflash_convert.rs
[INFO] [stderr] 1 + src/bin/dflash-convert.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `draft_to_mq4` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../draft_to_mq4
[INFO] [stderr]   |                          ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `draft-to-mq4`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/draft_to_mq4.rs
[INFO] [stderr] 1 + src/bin/draft-to-mq4.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `mq4_merge_mtp` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../mq4_merge_mtp
[INFO] [stderr]   |                          ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `mq4-merge-mtp`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/mq4_merge_mtp.rs
[INFO] [stderr] 1 + src/bin/mq4-merge-mtp.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `mtp_extract` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../mtp_extract
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `mtp-extract`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/mtp_extract.rs
[INFO] [stderr] 1 + src/bin/mtp-extract.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `hipfire-quantize` (manifest) generated 5 warnings
[INFO] [stderr] warning: binary `collect_hessian` should have a kebab-case name
[INFO] [stderr]     |
[INFO] [stderr]   1 | /opt/rustwide/target/.../collect_hessian
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `collect-hessian`, convert `bin.name`
[INFO] [stderr]    --> crates/hipfire-runtime/Cargo.toml:426:8
[INFO] [stderr]     |
[INFO] [stderr] 426 - name = "collect_hessian"
[INFO] [stderr] 426 + name = "collect-hessian"
[INFO] [stderr]     |
[INFO] [stderr] warning: binary `collect_imatrix` should have a kebab-case name
[INFO] [stderr]     |
[INFO] [stderr]   1 | /opt/rustwide/target/.../collect_imatrix
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to change the binary name to `collect-imatrix`, convert `bin.name`
[INFO] [stderr]    --> crates/hipfire-runtime/Cargo.toml:421:8
[INFO] [stderr]     |
[INFO] [stderr] 421 - name = "collect_imatrix"
[INFO] [stderr] 421 + name = "collect-imatrix"
[INFO] [stderr]     |
[INFO] [stderr] warning: `hipfire-runtime` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking libloading v0.9.0
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking memo-map v0.3.3
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking pxfm v0.1.30
[INFO] [stderr]     Checking regex-automata v0.4.16
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking bytemuck v1.25.1
[INFO] [stderr]     Checking md5 v0.8.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.10
[INFO] [stderr]     Checking redline v0.3.0 (/opt/rustwide/workdir/crates/redline)
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]     Checking rustls-pki-types v1.14.1
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stdout] warning: constant `RELEASE_MEM` is never used
[INFO] [stdout]   --> crates/redline/src/dispatch.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const RELEASE_MEM: u32 = 0x49;
[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 `ACQUIRE_MEM` is never used
[INFO] [stdout]   --> crates/redline/src/dispatch.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const ACQUIRE_MEM: u32 = 0x58;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gpu_id`, `read_ptr`, `ring_handle`, `eop_handle`, and `signal_handle` are never read
[INFO] [stdout]    --> crates/redline/src/kfd.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct AqlQueue {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 152 |     kfd_fd: i32,
[INFO] [stdout] 153 |     gpu_id: u32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     read_ptr: *mut AtomicU64,    // mmap'd read pointer
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 159 |     doorbell: *mut u32,          // mmap'd doorbell register
[INFO] [stdout] 160 |     ring_handle: u64,            // KFD allocation handle for ring
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 161 |     eop_handle: u64,             // KFD allocation handle for EOP
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 162 |     signal_buf: *mut u64,        // mmap'd signal buffer for completion
[INFO] [stdout] 163 |     signal_handle: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]     Checking bytes v1.12.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]     Checking utf8-zero v0.8.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking lru v0.18.1
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]     Checking compact_str v0.9.1
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking mio v1.2.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking ureq-proto v0.6.0
[INFO] [stderr]     Checking time-core v0.1.9
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking line-clipping v0.3.7
[INFO] [stderr]    Compiling hipfire-cli v0.3.0 (/opt/rustwide/workdir/crates/hipfire-cli)
[INFO] [stderr]     Checking ascii v1.1.0
[INFO] [stderr]     Checking chunked_transfer v1.5.0
[INFO] [stderr]     Checking tiny_http v0.12.0
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking ctrlc v3.5.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerocopy-derive v0.8.54
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking time v0.3.53
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stdout] warning: unused import: `KernargBuilder`
[INFO] [stdout]  --> crates/redline/examples/test_aql_dispatch.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use redline::dispatch::{KernargBuilder, Kernel};
[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: `module`
[INFO] [stdout]    --> crates/redline/examples/test_aql_dispatch.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn kernel_kd_offset(module: &redline::dispatch::LoadedModule, name: &str) -> u64 {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `user_sgpr_idx` is never read
[INFO] [stdout]   --> crates/redline/examples/poc_gemm.rs:91:29
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let mut user_sgpr_idx = 0u32; // where to place kernarg ptr
[INFO] [stdout]    |                             ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 95 |     user_sgpr_idx = user_sgpr_count; // kernarg ptr starts after the above
[INFO] [stdout]    |     ------------------------------- `user_sgpr_idx` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stdout] warning: constant `RELEASE_MEM` is never used
[INFO] [stdout]   --> crates/redline/src/dispatch.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const RELEASE_MEM: u32 = 0x49;
[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 `ACQUIRE_MEM` is never used
[INFO] [stdout]   --> crates/redline/src/dispatch.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const ACQUIRE_MEM: u32 = 0x58;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gpu_id`, `read_ptr`, `ring_handle`, `eop_handle`, and `signal_handle` are never read
[INFO] [stdout]    --> crates/redline/src/kfd.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct AqlQueue {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 152 |     kfd_fd: i32,
[INFO] [stdout] 153 |     gpu_id: u32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     read_ptr: *mut AtomicU64,    // mmap'd read pointer
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 159 |     doorbell: *mut u32,          // mmap'd doorbell register
[INFO] [stdout] 160 |     ring_handle: u64,            // KFD allocation handle for ring
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 161 |     eop_handle: u64,             // KFD allocation handle for EOP
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 162 |     signal_buf: *mut u64,        // mmap'd signal buffer for completion
[INFO] [stdout] 163 |     signal_handle: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ratatui-core v0.1.2
[INFO] [stderr]     Checking hipfire-config v0.3.0 (/opt/rustwide/workdir/crates/hipfire-config)
[INFO] [stderr]     Checking minijinja v2.21.0
[INFO] [stderr]     Checking safetensors v0.8.0
[INFO] [stderr]     Checking hipfire-atlas v0.3.0 (/opt/rustwide/workdir/crates/hipfire-atlas)
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking hipfire-detect v0.3.0 (/opt/rustwide/workdir/crates/hipfire-detect)
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking radiowave v0.3.0 (/opt/rustwide/workdir/crates/radiowave)
[INFO] [stderr]     Checking hip-bridge v0.3.0 (/opt/rustwide/workdir/crates/hip-bridge)
[INFO] [stderr]     Checking redline-rocr v0.3.0 (/opt/rustwide/workdir/crates/redline-rocr)
[INFO] [stderr]     Checking ratatui-widgets v0.3.2
[INFO] [stdout] warning: field `fn_comm_init_all` is never read
[INFO] [stdout]   --> crates/hip-bridge/src/rccl.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct RcclComms {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn_comm_init_all: unsafe extern "C" fn(*mut NcclComm, c_int, *const c_int) -> u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SolutionIndex` is never constructed
[INFO] [stdout]   --> crates/hip-bridge/src/rocblas.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum RocblasGemmAlgo {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] 63 |     Standard = 160,
[INFO] [stdout] 64 |     SolutionIndex = 161,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RocblasGemmAlgo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ratatui-crossterm v0.1.2
[INFO] [stdout] warning: field `cpu` is never read
[INFO] [stdout]     --> crates/redline-rocr/src/runtime.rs:1427:5
[INFO] [stdout]      |
[INFO] [stdout] 1423 | struct KernargPoolInner {
[INFO] [stdout]      |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1427 |     cpu: Option<abi::Agent>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device_local` is never read
[INFO] [stdout]     --> crates/redline-rocr/src/runtime.rs:1825:5
[INFO] [stdout]      |
[INFO] [stdout] 1823 | pub struct KernargBuffer {
[INFO] [stdout]      |            ------------- field in this struct
[INFO] [stdout] 1824 |     pool: Arc<KernargPoolInner>,
[INFO] [stdout] 1825 |     device_local: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking redline-dispatch v0.3.0 (/opt/rustwide/workdir/crates/redline-dispatch)
[INFO] [stderr]     Checking hsa-bridge v0.3.0 (/opt/rustwide/workdir/crates/hsa-bridge)
[INFO] [stdout] warning: constant `HSA_QUEUE_TYPE_MULTI` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const HSA_QUEUE_TYPE_MULTI: u32 = 0;
[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 `HSA_PACKET_TYPE_INVALID` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub const HSA_PACKET_TYPE_INVALID: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_FENCE_SCOPE_NONE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub const HSA_FENCE_SCOPE_NONE: u16 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_FENCE_SCOPE_AGENT` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub const HSA_FENCE_SCOPE_AGENT: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_SIGNAL_CONDITION_EQ` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:90:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub const HSA_SIGNAL_CONDITION_EQ: u32 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_SIGNAL_CONDITION_NE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const HSA_SIGNAL_CONDITION_NE: u32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_SIGNAL_CONDITION_GTE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const HSA_SIGNAL_CONDITION_GTE: u32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_PROFILE_BASE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const HSA_PROFILE_BASE: u32 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_AMD_MEMORY_POOL_INFO_SIZE` is never used
[INFO] [stdout]    --> crates/hsa-bridge/src/ffi.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const HSA_AMD_MEMORY_POOL_INFO_SIZE: u32 = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HipModule` is never used
[INFO] [stdout]   --> crates/hsa-bridge/examples/hip_graph_extra_poc.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type HipModule = *mut c_void;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HipGraph` is never used
[INFO] [stdout]   --> crates/hsa-bridge/examples/hip_graph_extra_poc.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | type HipGraph = *mut c_void;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HipGraphExec` is never used
[INFO] [stdout]   --> crates/hsa-bridge/examples/hip_graph_extra_poc.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type HipGraphExec = *mut c_void;
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ratatui-macros v0.7.2
[INFO] [stderr]     Checking ratatui v0.30.2
[INFO] [stdout] warning: constant `HSA_QUEUE_TYPE_MULTI` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const HSA_QUEUE_TYPE_MULTI: u32 = 0;
[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 `HSA_PACKET_TYPE_INVALID` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub const HSA_PACKET_TYPE_INVALID: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_FENCE_SCOPE_NONE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub const HSA_FENCE_SCOPE_NONE: u16 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_FENCE_SCOPE_AGENT` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub const HSA_FENCE_SCOPE_AGENT: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_SIGNAL_CONDITION_EQ` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:90:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub const HSA_SIGNAL_CONDITION_EQ: u32 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_SIGNAL_CONDITION_NE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const HSA_SIGNAL_CONDITION_NE: u32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_SIGNAL_CONDITION_GTE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const HSA_SIGNAL_CONDITION_GTE: u32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_PROFILE_BASE` is never used
[INFO] [stdout]   --> crates/hsa-bridge/src/ffi.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const HSA_PROFILE_BASE: u32 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HSA_AMD_MEMORY_POOL_INFO_SIZE` is never used
[INFO] [stdout]    --> crates/hsa-bridge/src/ffi.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const HSA_AMD_MEMORY_POOL_INFO_SIZE: u32 = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fn_comm_init_all` is never read
[INFO] [stdout]   --> crates/hip-bridge/src/rccl.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct RcclComms {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn_comm_init_all: unsafe extern "C" fn(*mut NcclComm, c_int, *const c_int) -> u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SolutionIndex` is never constructed
[INFO] [stdout]   --> crates/hip-bridge/src/rocblas.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum RocblasGemmAlgo {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] 63 |     Standard = 160,
[INFO] [stdout] 64 |     SolutionIndex = 161,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RocblasGemmAlgo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rdna-compute v0.3.0 (/opt/rustwide/workdir/crates/rdna-compute)
[INFO] [stderr]     Checking minijinja-contrib v2.21.0
[INFO] [stderr]     Checking ureq v3.3.0
[INFO] [stderr]     Checking hipfire-client v0.3.0 (/opt/rustwide/workdir/crates/hipfire-client)
[INFO] [stderr]     Checking hipfire-registry v0.3.0 (/opt/rustwide/workdir/crates/hipfire-registry)
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hipfire-tui v0.3.0 (/opt/rustwide/workdir/crates/hipfire-tui)
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking proptest v1.11.0
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> crates/rdna-compute/src/attention.rs:6323:13
[INFO] [stdout]      |
[INFO] [stdout] 6323 |         let func = &self.functions["kv_cache_write"];
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `head_dim`
[INFO] [stdout]     --> crates/rdna-compute/src/dispatch.rs:2324:9
[INFO] [stdout]      |
[INFO] [stdout] 2324 |         head_dim: usize,
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_dim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> crates/rdna-compute/src/attention.rs:6323:13
[INFO] [stdout]      |
[INFO] [stdout] 6323 |         let func = &self.functions["kv_cache_write"];
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `head_dim`
[INFO] [stdout]     --> crates/rdna-compute/src/dispatch.rs:2324:9
[INFO] [stdout]      |
[INFO] [stdout] 2324 |         head_dim: usize,
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_dim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_baseline`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:372:5
[INFO] [stdout]     |
[INFO] [stdout] 372 |     force_baseline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_baseline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_baseline`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 389 |     force_baseline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_baseline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:454:9
[INFO] [stdout]     |
[INFO] [stdout] 454 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:479:9
[INFO] [stdout]     |
[INFO] [stdout] 479 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:504:9
[INFO] [stdout]     |
[INFO] [stdout] 504 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:523:9
[INFO] [stdout]     |
[INFO] [stdout] 523 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:828:9
[INFO] [stdout]     |
[INFO] [stdout] 828 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:855:9
[INFO] [stdout]     |
[INFO] [stdout] 855 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:882:9
[INFO] [stdout]     |
[INFO] [stdout] 882 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:902:9
[INFO] [stdout]     |
[INFO] [stdout] 902 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> crates/rdna-compute/src/kernels.rs:3461:17
[INFO] [stdout]      |
[INFO] [stdout] 3461 |             let name = names.get(variant as usize).unwrap_or(&"baseline-rdna2");
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> crates/rdna-compute/src/norm.rs:611:13
[INFO] [stdout]     |
[INFO] [stdout] 611 |         let func = &self.functions["rope_f32"];
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> crates/rdna-compute/src/norm.rs:3971:13
[INFO] [stdout]      |
[INFO] [stdout] 3971 |         let func = &self.functions["bias_add_f32"];
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `N_TILE` is never used
[INFO] [stdout]     --> crates/rdna-compute/src/attention.rs:2074:15
[INFO] [stdout]      |
[INFO] [stdout] 2074 |         const N_TILE: usize = 16;
[INFO] [stdout]      |               ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ActivationCapture` is never used
[INFO] [stdout]    --> crates/rdna-compute/src/dispatch.rs:384:11
[INFO] [stdout]     |
[INFO] [stdout] 384 | pub trait ActivationCapture: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GEMV_MQ5G256_SRC` is never used
[INFO] [stdout]     --> crates/rdna-compute/src/kernels.rs:1055:11
[INFO] [stdout]      |
[INFO] [stdout] 1055 | pub const GEMV_MQ5G256_SRC: &str = include_str!("../../../kernels/src/gemv_mq5g256.hip");
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pgm_rsrc2` is never read
[INFO] [stdout]    --> crates/rdna-compute/src/profiler.rs:360:5
[INFO] [stdout]     |
[INFO] [stdout] 358 | struct RawKernelMeta {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 359 |     pgm_rsrc1: u32,
[INFO] [stdout] 360 |     pgm_rsrc2: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-cli/src/main.rs:7512:17
[INFO] [stdout]      |
[INFO] [stdout] 7512 |             let mut guard = UpdateRollbackGuard::arm(installed.clone(), checkpoint.clone());
[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: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-cli/src/main.rs:7563:13
[INFO] [stdout]      |
[INFO] [stdout] 7563 |         let mut guard = UpdateRollbackGuard::arm(installed.clone(), checkpoint);
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-dispatch v0.3.0 (/opt/rustwide/workdir/crates/hipfire-dispatch)
[INFO] [stdout] warning: unused import: `GpuTensor`
[INFO] [stdout]   --> crates/rdna-compute/examples/test_gated_delta_net_tree.rs:27:36
[INFO] [stdout]    |
[INFO] [stdout] 27 |     use rdna_compute::{DType, Gpu, GpuTensor};
[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: `force_baseline`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:372:5
[INFO] [stdout]     |
[INFO] [stdout] 372 |     force_baseline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_baseline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_baseline`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 389 |     force_baseline: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_baseline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:454:9
[INFO] [stdout]     |
[INFO] [stdout] 454 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:479:9
[INFO] [stdout]     |
[INFO] [stdout] 479 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:504:9
[INFO] [stdout]     |
[INFO] [stdout] 504 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:523:9
[INFO] [stdout]     |
[INFO] [stdout] 523 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:828:9
[INFO] [stdout]     |
[INFO] [stdout] 828 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:855:9
[INFO] [stdout]     |
[INFO] [stdout] 855 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:882:9
[INFO] [stdout]     |
[INFO] [stdout] 882 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]    --> crates/rdna-compute/src/kernels.rs:902:9
[INFO] [stdout]     |
[INFO] [stdout] 902 |     let arch = caps.arch();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> crates/rdna-compute/src/kernels.rs:3461:17
[INFO] [stdout]      |
[INFO] [stdout] 3461 |             let name = names.get(variant as usize).unwrap_or(&"baseline-rdna2");
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]     --> crates/rdna-compute/src/kernels.rs:5399:30
[INFO] [stdout]      |
[INFO] [stdout] 5399 |                         let (src, mod_name) = gemm_mq4g256_lloyd_residual_wmma_for_arch(&caps);
[INFO] [stdout]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]     --> crates/rdna-compute/src/kernels.rs:5406:30
[INFO] [stdout]      |
[INFO] [stdout] 5406 |                         let (src, mod_name) = gemm_mq4g256_lloyd_residual_wmma_for_arch(&caps);
[INFO] [stdout]      |                              ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GpuTensor`
[INFO] [stdout]   --> crates/rdna-compute/examples/test_mq4g256_lloyd_fused_parity.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rdna_compute::{Gpu, DType, GpuTensor};
[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: `func`
[INFO] [stdout]    --> crates/rdna-compute/src/norm.rs:611:13
[INFO] [stdout]     |
[INFO] [stdout] 611 |         let func = &self.functions["rope_f32"];
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/rdna-compute/examples/q8_windowed_attn_test.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut run = |gpu: &mut Gpu, kv: &[u8], window: i32| -> Vec<f32> {
[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: variable does not need to be mutable
[INFO] [stdout]    --> crates/rdna-compute/examples/q8_windowed_attn_test.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let mut run_nb = |gpu: &mut Gpu, kv: &[u8], window: i32| -> Vec<f32> {
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes_per_pos`
[INFO] [stdout]   --> crates/rdna-compute/examples/q8_windowed_attn_test.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let bytes_per_pos = NKV * blocks_per_head * BLK;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes_per_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> crates/rdna-compute/src/norm.rs:3971:13
[INFO] [stdout]      |
[INFO] [stdout] 3971 |         let func = &self.functions["bias_add_f32"];
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `guard_gate_up_hfq4g256`, `guard_gate_up_hfq6g256`, `guard_gate_up_mq3g256lloyd`, and `guard_qkv_mq3g256lloyd`
[INFO] [stdout]     --> crates/hipfire-dispatch/src/tests.rs:1049:5
[INFO] [stdout]      |
[INFO] [stdout] 1049 |     guard_gate_up_hfq4g256, guard_gate_up_hfq6g256, guard_gate_up_mq3g256lloyd,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1050 |     guard_gate_up_mq4g256lloyd, guard_qkv_hfq4g256, guard_qkv_hfq6g256, guard_qkv_mq3g256lloyd,
[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: `mu`
[INFO] [stdout]    --> crates/hipfire-dispatch/src/families/fused_qkv.rs:589:22
[INFO] [stdout]     |
[INFO] [stdout] 589 |             let [mg, mu] =
[INFO] [stdout]     |                      ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cpu_gemm` is never used
[INFO] [stdout]   --> crates/rdna-compute/examples/bench_q8_wmma_4w.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn cpu_gemm(a: &[f32], x: &[f32], m: usize, k: usize, n: usize) -> Vec<f32> {
[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 `N_TILE` is never used
[INFO] [stdout]     --> crates/rdna-compute/src/attention.rs:2074:15
[INFO] [stdout]      |
[INFO] [stdout] 2074 |         const N_TILE: usize = 16;
[INFO] [stdout]      |               ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ActivationCapture` is never used
[INFO] [stdout]    --> crates/rdna-compute/src/dispatch.rs:384:11
[INFO] [stdout]     |
[INFO] [stdout] 384 | pub trait ActivationCapture: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GEMV_MQ5G256_SRC` is never used
[INFO] [stdout]     --> crates/rdna-compute/src/kernels.rs:1055:11
[INFO] [stdout]      |
[INFO] [stdout] 1055 | pub const GEMV_MQ5G256_SRC: &str = include_str!("../../../kernels/src/gemv_mq5g256.hip");
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pgm_rsrc2` is never read
[INFO] [stdout]    --> crates/rdna-compute/src/profiler.rs:360:5
[INFO] [stdout]     |
[INFO] [stdout] 358 | struct RawKernelMeta {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 359 |     pgm_rsrc1: u32,
[INFO] [stdout] 360 |     pgm_rsrc2: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISPATCHED_KV_WRITE_KEYS` is never used
[INFO] [stdout]     --> crates/hipfire-dispatch/src/families/attention.rs:1483:18
[INFO] [stdout]      |
[INFO] [stdout] 1483 | pub(crate) const DISPATCHED_KV_WRITE_KEYS: &[KernelKey] = &[
[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 `DISPATCHED_ATTEND_KEYS` is never used
[INFO] [stdout]     --> crates/hipfire-dispatch/src/families/attention.rs:1509:18
[INFO] [stdout]      |
[INFO] [stdout] 1509 | pub(crate) const DISPATCHED_ATTEND_KEYS: &[KernelKey] = &[
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISPATCHED_FULL_ATTENTION_KEYS` is never used
[INFO] [stdout]     --> crates/hipfire-dispatch/src/families/attention.rs:1542:7
[INFO] [stdout]      |
[INFO] [stdout] 1542 | const DISPATCHED_FULL_ATTENTION_KEYS: &[KernelKey] = &[
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_contiguous_permutation` is never used
[INFO] [stdout]    --> crates/hipfire-dispatch/src/pipeline/mod.rs:990:4
[INFO] [stdout]     |
[INFO] [stdout] 990 | fn build_contiguous_permutation(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-runtime v0.3.0 (/opt/rustwide/workdir/crates/hipfire-runtime)
[INFO] [stdout] warning: function `f32_to_f16_bytes` is never used
[INFO] [stdout]   --> crates/rdna-compute/examples/bench_mq2g256_lloyd_moe_4w.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn f32_to_f16_bytes(f: &[f32]) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cpu` is never read
[INFO] [stdout]     --> crates/redline-rocr/src/runtime.rs:1427:5
[INFO] [stdout]      |
[INFO] [stdout] 1423 | struct KernargPoolInner {
[INFO] [stdout]      |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1427 |     cpu: Option<abi::Agent>,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device_local` is never read
[INFO] [stdout]     --> crates/redline-rocr/src/runtime.rs:1825:5
[INFO] [stdout]      |
[INFO] [stdout] 1823 | pub struct KernargBuffer {
[INFO] [stdout]      |            ------------- field in this struct
[INFO] [stdout] 1824 |     pool: Arc<KernargPoolInner>,
[INFO] [stdout] 1825 |     device_local: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DType`
[INFO] [stdout]   --> crates/rdna-compute/examples/test_gemm_mq3g256_lloyd_residual_wmma.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use rdna_compute::{Gpu, DType};
[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: `DType`
[INFO] [stdout]   --> crates/rdna-compute/examples/test_gfx906_mmq_correctness.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 | use rdna_compute::{DType, Gpu};
[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: `bytes_per_row`
[INFO] [stdout]    --> crates/rdna-compute/examples/test_moe_grouped_wmma_mixed.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 215 |     let bytes_per_row = groups * 200;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes_per_row`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes_per_row`
[INFO] [stdout]    --> crates/rdna-compute/examples/test_moe_grouped_wmma_mixed.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let bytes_per_row = groups * 136;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes_per_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes_per_row`
[INFO] [stdout]    --> crates/rdna-compute/examples/test_moe_grouped_wmma_mixed.rs:339:9
[INFO] [stdout]     |
[INFO] [stdout] 339 |     let bytes_per_row = groups * 72;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes_per_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> crates/hipfire-dispatch/src/families/fused_qkv.rs:589:22
[INFO] [stdout]     |
[INFO] [stdout] 589 |             let [mg, mu] =
[INFO] [stdout]     |                      ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_n_tiles` is never used
[INFO] [stdout]   --> crates/rdna-compute/examples/test_attention_dflash.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn compute_n_tiles(l: usize, head_dim: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-dispatch/src/tests.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let mut reg = KernelRegistry::new();
[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: variable does not need to be mutable
[INFO] [stdout]    --> crates/rdna-compute/examples/vmm_tensor_smoke.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let mut tensor2 = unsafe { gpu.alloc_vmm_tensor(&[chunk], DType::Raw, chunk, &access)? };
[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: variable does not need to be mutable
[INFO] [stdout]    --> crates/rdna-compute/examples/vmm_tensor_smoke.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let mut tensor3 = unsafe { gpu.alloc_vmm_tensor(&[chunk], DType::Raw, chunk, &access)? };
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dp4a_variant` is never used
[INFO] [stdout]   --> crates/hipfire-dispatch/src/tests.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn dp4a_variant(key: KernelKey) -> KernelVariant {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DType`
[INFO] [stdout]   --> crates/rdna-compute/examples/test_gfx906_mmq_realdata.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rdna_compute::{DType, Gpu};
[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: `DType`
[INFO] [stdout]   --> crates/rdna-compute/examples/test_conv1d_tree.rs:24:24
[INFO] [stdout]    |
[INFO] [stdout] 24 |     use rdna_compute::{DType, Gpu};
[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: `qd`
[INFO] [stdout]     --> crates/hipfire-runtime/src/dflash.rs:1567:9
[INFO] [stdout]      |
[INFO] [stdout] 1567 |     let qd = cfg.q_dim();
[INFO] [stdout]      |         ^^ help: if this is intentional, prefix it with an underscore: `_qd`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row0`
[INFO] [stdout]     --> crates/hipfire-runtime/src/dflash.rs:1730:14
[INFO] [stdout]      |
[INFO] [stdout] 1730 |         for (row0, slot0, len) in ring_segments(fc_start, l, swa_w) {
[INFO] [stdout]      |              ^^^^ help: if this is intentional, prefix it with an underscore: `_row0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index_start`
[INFO] [stdout]    --> crates/hipfire-runtime/src/hfq.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let index_start = metadata_offset;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_index_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/hipfire-runtime/src/hfq.rs:811:27
[INFO] [stdout]     |
[INFO] [stdout] 811 |     fn tensor_data(&self, name: &str) -> Option<(&crate::model_source::TensorInfo, &[u8])> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/hipfire-runtime/src/hfq.rs:820:27
[INFO] [stdout]     |
[INFO] [stdout] 820 |     fn tensor_info(&self, name: &str) -> Option<&crate::model_source::TensorInfo> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:1560:13
[INFO] [stdout]      |
[INFO] [stdout] 1560 |         for i in 0..batch {
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:4895:9
[INFO] [stdout]      |
[INFO] [stdout] 4895 |     let mut x = gpu.alloc_tensor(&[dim], DType::F32)?;
[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: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:5098:9
[INFO] [stdout]      |
[INFO] [stdout] 5098 |     let mut x = gpu.alloc_tensor(&[dim], DType::F32)?;
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `prefix_k_bytes` and `prefix_v_bytes` are never used
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:5395:8
[INFO] [stdout]      |
[INFO] [stdout] 5391 | impl VmmKvLayout {
[INFO] [stdout]      | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 5395 |     fn prefix_k_bytes(self, n_positions: usize) -> HipResult<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5401 |     fn prefix_v_bytes(self, n_positions: usize) -> HipResult<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `q8_vmm_layout`, `asym3_vmm_layout`, and `fwht3_vmm_layout` are never used
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:5713:8
[INFO] [stdout]      |
[INFO] [stdout] 5406 | impl KvCache {
[INFO] [stdout]      | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 5713 |     fn q8_vmm_layout(
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5727 |     fn asym3_vmm_layout(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5745 |     fn fwht3_vmm_layout(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `append_assistant_turn_tokens` is never used
[INFO] [stdout]    --> crates/hipfire-runtime/src/prompt_frame.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl<'a> ChatScaffold<'a> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn append_assistant_turn_tokens(&self, out: &mut Vec<u32>, body: &[u32]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-reap v0.3.0 (/opt/rustwide/workdir/crates/hipfire-reap)
[INFO] [stderr]     Checking hipfire-arch-qwen2 v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-qwen2)
[INFO] [stderr]     Checking hipfire-arch-cohere2moe v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-cohere2moe)
[INFO] [stderr]     Checking hipfire-arch-llama v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-llama)
[INFO] [stderr]     Checking hipfire-arch-qwen35-vl v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-qwen35-vl)
[INFO] [stderr]     Checking hipfire-dispatch-tests v0.3.0 (/opt/rustwide/workdir/crates/hipfire-dispatch-tests)
[INFO] [stdout] warning: unused import: `MoeResolution`
[INFO] [stdout]    --> crates/hipfire-dispatch-tests/src/qwen35.rs:131:50
[INFO] [stdout]     |
[INFO] [stdout] 131 | use hipfire_dispatch::families::moe::{MoeDtypes, MoeResolution};
[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: `rdna_compute::DType`
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/llama.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rdna_compute::DType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rdna_compute::DType`
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/qwen2.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rdna_compute::DType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hipfire_dispatch::context::DispatchCtx`
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/qwen2.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use hipfire_dispatch::context::DispatchCtx;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hipfire_dispatch::families::fused_qkv::FusedQkvFamily`
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/qwen2.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use hipfire_dispatch::families::fused_qkv::FusedQkvFamily;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hipfire_dispatch::types::KernelKey`
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/qwen2.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use hipfire_dispatch::types::KernelKey;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rdna_compute::DType`
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/deepseek4.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rdna_compute::DType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALL_ARCHS` is never used
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/arch_caps.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const ALL_ARCHS: &[&str] = &[
[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 `make_caps` is never used
[INFO] [stdout]   --> crates/hipfire-dispatch-tests/src/arch_caps.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn make_caps(arch: &str) -> ArchCaps {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUANTIZED_DTYPES` is never used
[INFO] [stdout]  --> crates/hipfire-dispatch-tests/src/dtype.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const QUANTIZED_DTYPES: &[DType] = &[
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGNUMQUANT_DTYPES` is never used
[INFO] [stdout]   --> crates/hipfire-dispatch-tests/src/dtype.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAGNUMQUANT_DTYPES: &[DType] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HFQ_DTYPES` is never used
[INFO] [stdout]   --> crates/hipfire-dispatch-tests/src/dtype.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const HFQ_DTYPES: &[DType] = &[
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mq4_dtypes` is never used
[INFO] [stdout]    --> crates/hipfire-dispatch-tests/src/qwen35.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn mq4_dtypes() -> MoeDtypes {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tier_inputs_base` is never used
[INFO] [stdout]   --> crates/hipfire-dispatch-tests/src/llama.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn tier_inputs_base() -> hipfire_dispatch::families::kv_tier::KvTierInputs {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `KvTierInputsExt` is never used
[INFO] [stdout]    --> crates/hipfire-dispatch-tests/src/llama.rs:136:7
[INFO] [stdout]     |
[INFO] [stdout] 136 | trait KvTierInputsExt: Sized {
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-arch-deepseek4 v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-deepseek4)
[INFO] [stderr]     Checking hipfire-arch-minimax v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-minimax)
[INFO] [stderr]     Checking hipfire-arch-lfm2moe v0.1.0 (/opt/rustwide/workdir/crates/hipfire-arch-lfm2moe)
[INFO] [stderr]     Checking hipfire-arch-qwen35 v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-qwen35)
[INFO] [stderr]     Checking hipfire-quantize v0.3.0 (/opt/rustwide/workdir/crates/hipfire-quantize)
[INFO] [stdout] warning: unused import: `json`
[INFO] [stdout]   --> crates/hipfire-arch-deepseek4/src/dsml.rs:34:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | use serde_json::{json, Value};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-arch-dots-ocr v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-dots-ocr)
[INFO] [stdout] warning: unused macro definition: `probe`
[INFO] [stdout]     --> crates/hipfire-arch-dots-ocr/src/dots_ocr.rs:1448:18
[INFO] [stdout]      |
[INFO] [stdout] 1448 |     macro_rules! probe {
[INFO] [stdout]      |                  ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LayerType`
[INFO] [stdout]   --> crates/hipfire-arch-qwen35/src/dflash_spec.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::qwen35::{self, DeltaNetState, LayerType, Qwen35Config};
[INFO] [stdout]    |                                          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:3324:18
[INFO] [stdout]      |
[INFO] [stdout] 3324 |     source: &mut (impl WeightSource<Layer = LayerWeights>),
[INFO] [stdout]      |                  ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 3324 -     source: &mut (impl WeightSource<Layer = LayerWeights>),
[INFO] [stdout] 3324 +     source: &mut impl WeightSource<Layer = LayerWeights>,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `givens_cos_view`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8723:18
[INFO] [stdout]      |
[INFO] [stdout] 8723 |     macro_rules! givens_cos_view {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `givens_sin_view`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8729:18
[INFO] [stdout]      |
[INFO] [stdout] 8729 |     macro_rules! givens_sin_view {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hipfire_dispatch::families::kv_tier::KTier`
[INFO] [stdout]   --> crates/hipfire-arch-qwen35/src/speculative.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use hipfire_dispatch::families::kv_tier::KTier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last` is never read
[INFO] [stdout]    --> crates/hipfire-arch-cohere2moe/examples/longctx_probe.rs:118:30
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut last: Vec<f32> = Vec::new();
[INFO] [stdout]     |                              ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 138 |             last = decode_step(&cfg, &weights, &mut state, &mut gpu, toks[i], i as u32)
[INFO] [stdout]     |             ---- `last` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `conv_L_cache` should have a snake case name
[INFO] [stdout]   --> crates/hipfire-arch-lfm2moe/src/config.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     conv_L_cache: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `conv_l_cache`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/hipfire-arch-minimax/examples/ep_minimax.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let mut hfq0 = HfqFile::open(&model).expect("open model");
[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 macro definition: `probe`
[INFO] [stdout]     --> crates/hipfire-arch-dots-ocr/src/dots_ocr.rs:1448:18
[INFO] [stdout]      |
[INFO] [stdout] 1448 |     macro_rules! probe {
[INFO] [stdout]      |                  ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-arch-llama/examples/qwen3_dspark_bench.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut hfq = HfqFile::open(Path::new(&path)).map_err(|e| format!("open: {e:?}"))?;
[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 import: `LayerType`
[INFO] [stdout]   --> crates/hipfire-arch-qwen35/src/dflash_spec.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::qwen35::{self, DeltaNetState, LayerType, Qwen35Config};
[INFO] [stdout]    |                                          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:3324:18
[INFO] [stdout]      |
[INFO] [stdout] 3324 |     source: &mut (impl WeightSource<Layer = LayerWeights>),
[INFO] [stdout]      |                  ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 3324 -     source: &mut (impl WeightSource<Layer = LayerWeights>),
[INFO] [stdout] 3324 +     source: &mut impl WeightSource<Layer = LayerWeights>,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `givens_cos_view`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8723:18
[INFO] [stdout]      |
[INFO] [stdout] 8723 |     macro_rules! givens_cos_view {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `givens_sin_view`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8729:18
[INFO] [stdout]      |
[INFO] [stdout] 8729 |     macro_rules! givens_sin_view {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hipfire_dispatch::families::kv_tier::KTier`
[INFO] [stdout]   --> crates/hipfire-arch-qwen35/src/speculative.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use hipfire_dispatch::families::kv_tier::KTier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `conv_L_cache` should have a snake case name
[INFO] [stdout]   --> crates/hipfire-arch-lfm2moe/src/config.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     conv_L_cache: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `conv_l_cache`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-arch-toy v0.3.0 (/opt/rustwide/workdir/crates/hipfire-arch-toy)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5952:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5952 |                   GgufFormat::Mq4 => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5960:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5960 |                   GgufFormat::Mq3 => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5964:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5964 |                   GgufFormat::Mq2 => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5968:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5968 |                   GgufFormat::Mq2Lloyd => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5972:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5972 |                   GgufFormat::Mq3Lloyd => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5984:17
[INFO] [stdout]      |
[INFO] [stdout] 5894 |                 GgufFormat::Hfq4 | GgufFormat::Hfq6 => {
[INFO] [stdout]      |                 ----------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5984 |                 GgufFormat::Hfq4 => {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5952:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5952 |                   GgufFormat::Mq4 => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5960:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5960 |                   GgufFormat::Mq3 => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5964:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5964 |                   GgufFormat::Mq2 => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5968:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5968 |                   GgufFormat::Mq2Lloyd => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5972:17
[INFO] [stdout]      |
[INFO] [stdout] 5885 | /                 GgufFormat::Mq4
[INFO] [stdout] 5886 | |                 | GgufFormat::Mq3
[INFO] [stdout] 5887 | |                 | GgufFormat::Mq2
[INFO] [stdout] 5888 | |                 | GgufFormat::Mq2Lloyd
[INFO] [stdout] 5889 | |                 | GgufFormat::Mq3Lloyd
[INFO] [stdout] 5890 | |                 | GgufFormat::Mq6 => {
[INFO] [stdout]      | |_________________________________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5972 |                   GgufFormat::Mq3Lloyd => {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:5984:17
[INFO] [stdout]      |
[INFO] [stdout] 5894 |                 GgufFormat::Hfq4 | GgufFormat::Hfq6 => {
[INFO] [stdout]      |                 ----------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5984 |                 GgufFormat::Hfq4 => {
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8697:9
[INFO] [stdout]      |
[INFO] [stdout] 8697 |     let ctx = hipfire_dispatch::context::DispatchCtx::new(gpu);
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q_dim`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:9921:21
[INFO] [stdout]      |
[INFO] [stdout] 9921 |                 let q_dim = config.n_heads * config.head_dim;
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_q_dim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_fa3_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12077:9
[INFO] [stdout]       |
[INFO] [stdout] 12077 |     let fused_fa3_lloyd_mq4 = fa3_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_fa3_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kv_dim`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12176:9
[INFO] [stdout]       |
[INFO] [stdout] 12176 |     let kv_dim = config.n_kv_heads * config.head_dim;
[INFO] [stdout]       |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kv_dim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quantize_mfp3g32_e8_row` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:1641:4
[INFO] [stdout]      |
[INFO] [stdout] 1641 | fn quantize_mfp3g32_e8_row(row: &[f32]) -> Vec<u8> {
[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 `quantize_mfp2g32_e8_row` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:1645:4
[INFO] [stdout]      |
[INFO] [stdout] 1645 | fn quantize_mfp2g32_e8_row(row: &[f32]) -> Vec<u8> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PARO4G128` and `PARO4G128T` are never constructed
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4284:5
[INFO] [stdout]      |
[INFO] [stdout] 4242 | pub(crate) enum QuantType {
[INFO] [stdout]      |                 --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 4284 |     PARO4G128 = 28,  // ParoQuant native AWQ W4 + pairwise activation rotation metadata
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 4285 |     PARO4G128T = 29, // ParoQuant engine-tiled qweight [M/8, K] for coalesced GEMV reads
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `QuantType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_promote_target` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4337:4
[INFO] [stdout]      |
[INFO] [stdout] 4337 | fn default_promote_target(base: GgufFormat) -> GgufFormat {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_promote_pair_supported` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4363:4
[INFO] [stdout]      |
[INFO] [stdout] 4363 | fn is_promote_pair_supported(base: GgufFormat, promote: GgufFormat) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kmap_resolve` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4447:4
[INFO] [stdout]      |
[INFO] [stdout] 4447 | fn kmap_resolve(name: &str, n_layers: usize, is_moe: bool) -> QuantLevel {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `E8_SIGMA` is never used
[INFO] [stdout]   --> crates/hipfire-quantize/src/e8.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const E8_SIGMA: f32 = 1.7;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_f32` is never used
[INFO] [stdout]    --> crates/hipfire-quantize/src/gguf_input.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl MetaValue {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn as_f32(&self) -> Option<f32> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `meta_u32` and `meta_f32` are never used
[INFO] [stdout]    --> crates/hipfire-quantize/src/gguf_input.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl GgufFile {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn meta_u32(&self, key: &str) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn meta_f32(&self, key: &str) -> Option<f32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `kv_layer_idx` is assigned to, but never used
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12577:9
[INFO] [stdout]       |
[INFO] [stdout] 12577 |     let mut kv_layer_idx = 0usize;
[INFO] [stdout]       |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: consider using `_kv_layer_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kv_layer_idx` is never read
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12876:17
[INFO] [stdout]       |
[INFO] [stdout] 12876 |                 kv_layer_idx += 1;
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 13148 |                 kv_layer_idx += 1;
[INFO] [stdout]       |                 ----------------- `kv_layer_idx` is overwritten here before the previous value is read
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kv_layer_idx` is never read
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:13148:17
[INFO] [stdout]       |
[INFO] [stdout] 13148 |                 kv_layer_idx += 1;
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_la4_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:15667:25
[INFO] [stdout]       |
[INFO] [stdout] 15667 |                     let fused_la4_lloyd_mq4 = la4_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_la4_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_gu_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:15836:25
[INFO] [stdout]       |
[INFO] [stdout] 15836 |                     let fused_gu_lloyd_mq4 = same_dtype && dt_g == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_gu_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_fa3_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:15898:25
[INFO] [stdout]       |
[INFO] [stdout] 15898 |                     let fused_fa3_lloyd_mq4 = fa3_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_fa3_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_gu_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:16271:25
[INFO] [stdout]       |
[INFO] [stdout] 16271 |                     let fused_gu_lloyd_mq4 = same_dtype && dt_g == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_gu_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_la4_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:16334:25
[INFO] [stdout]       |
[INFO] [stdout] 16334 |                     let fused_la4_lloyd_mq4 = la4_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_la4_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_fa3_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:16522:25
[INFO] [stdout]       |
[INFO] [stdout] 16522 |                     let fused_fa3_lloyd_mq4 = fa3_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_fa3_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/speculative.rs:2957:9
[INFO] [stdout]      |
[INFO] [stdout] 2957 |     let mut t_phase = t_spec_start;
[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: function `quantize_mfp3g32_e8_row` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:1641:4
[INFO] [stdout]      |
[INFO] [stdout] 1641 | fn quantize_mfp3g32_e8_row(row: &[f32]) -> Vec<u8> {
[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 `quantize_mfp2g32_e8_row` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:1645:4
[INFO] [stdout]      |
[INFO] [stdout] 1645 | fn quantize_mfp2g32_e8_row(row: &[f32]) -> Vec<u8> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PARO4G128` and `PARO4G128T` are never constructed
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4284:5
[INFO] [stdout]      |
[INFO] [stdout] 4242 | pub(crate) enum QuantType {
[INFO] [stdout]      |                 --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 4284 |     PARO4G128 = 28,  // ParoQuant native AWQ W4 + pairwise activation rotation metadata
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 4285 |     PARO4G128T = 29, // ParoQuant engine-tiled qweight [M/8, K] for coalesced GEMV reads
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `QuantType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_promote_target` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4337:4
[INFO] [stdout]      |
[INFO] [stdout] 4337 | fn default_promote_target(base: GgufFormat) -> GgufFormat {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_promote_pair_supported` is never used
[INFO] [stdout]     --> crates/hipfire-quantize/src/main.rs:4363:4
[INFO] [stdout]      |
[INFO] [stdout] 4363 | fn is_promote_pair_supported(base: GgufFormat, promote: GgufFormat) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_f32` is never used
[INFO] [stdout]    --> crates/hipfire-quantize/src/gguf_input.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl MetaValue {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn as_f32(&self) -> Option<f32> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `meta_u32` and `meta_f32` are never used
[INFO] [stdout]    --> crates/hipfire-quantize/src/gguf_input.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl GgufFile {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn meta_u32(&self, key: &str) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn meta_f32(&self, key: &str) -> Option<f32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]      --> crates/hipfire-quantize/src/main.rs:12410:9
[INFO] [stdout]       |
[INFO] [stdout] 12407 |     struct TensorInfo {
[INFO] [stdout]       |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12410 |         shape: Vec<u32>,
[INFO] [stdout]       |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `repack_awq_to_hfq4g128` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:1869:4
[INFO] [stdout]      |
[INFO] [stdout] 1869 | fn repack_awq_to_hfq4g128(
[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 `load_paroquant_weight` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:1951:4
[INFO] [stdout]      |
[INFO] [stdout] 1951 | fn load_paroquant_weight(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fp16_weight_from_source` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2032:4
[INFO] [stdout]      |
[INFO] [stdout] 2032 | fn load_fp16_weight_from_source(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paro_repack_moe_projection` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2067:4
[INFO] [stdout]      |
[INFO] [stdout] 2067 | fn paro_repack_moe_projection(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paro_load_moe_shared_sidecars` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2097:4
[INFO] [stdout]      |
[INFO] [stdout] 2097 | fn paro_load_moe_shared_sidecars(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alias_paro_rotation` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2133:4
[INFO] [stdout]      |
[INFO] [stdout] 2133 | fn alias_paro_rotation(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paro_load_moe_ffn` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2163:4
[INFO] [stdout]      |
[INFO] [stdout] 2163 | fn paro_load_moe_ffn(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_any_as_f32` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2336:4
[INFO] [stdout]      |
[INFO] [stdout] 2336 | fn load_any_as_f32(hfq: &HfqFile, gpu: &mut Gpu, name: &str, n: usize) -> HipResult<GpuTensor> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_raw_f32` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:3232:4
[INFO] [stdout]      |
[INFO] [stdout] 3232 | fn load_raw_f32(hfq: &HfqFile, gpu: &mut Gpu, name: &str, n: usize) -> HipResult<GpuTensor> {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `moe_ffn_decode` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:4335:4
[INFO] [stdout]      |
[INFO] [stdout] 4335 | fn moe_ffn_decode(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `owned_prefill_scratch_plan` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:7422:4
[INFO] [stdout]      |
[INFO] [stdout] 7422 | fn owned_prefill_scratch_plan(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `givens_cos` and `givens_sin` are never read
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8582:9
[INFO] [stdout]      |
[INFO] [stdout] 8571 | pub(crate) struct PrefillBandCtx<'a> {
[INFO] [stdout]      |                   -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8582 |     pub givens_cos: Option<&'a GpuTensor>,
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout] 8583 |     pub givens_sin: Option<&'a GpuTensor>,
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hipfire-loader v0.3.0 (/opt/rustwide/workdir/crates/hipfire-loader)
[INFO] [stdout] warning: constant `IMAGE_SIZE` is never used
[INFO] [stdout]   --> crates/hipfire-runtime/examples/infer_vl.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const IMAGE_SIZE: usize = 448;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> crates/hipfire-runtime/examples/infer_vl.rs:30:50
[INFO] [stdout]    |
[INFO] [stdout] 30 |         libc::signal(libc::SIGINT, handle_sigint as libc::sighandler_t);
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 30 |         libc::signal(libc::SIGINT, handle_sigint as *const () as libc::sighandler_t);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> crates/hipfire-runtime/examples/infer_qwen35.rs:61:50
[INFO] [stdout]    |
[INFO] [stdout] 61 |         libc::signal(libc::SIGINT, handle_sigint as libc::sighandler_t);
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 61 |         libc::signal(libc::SIGINT, handle_sigint as *const () as libc::sighandler_t);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> crates/hipfire-runtime/examples/infer_qwen3.rs:37:50
[INFO] [stdout]    |
[INFO] [stdout] 37 |         libc::signal(libc::SIGINT, handle_sigint as libc::sighandler_t);
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 37 |         libc::signal(libc::SIGINT, handle_sigint as *const () as libc::sighandler_t);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/ddtree_pq_sim.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut mc = |mut step: Box<dyn FnMut(&Slot, &mut u64) -> Option<usize>>, rng: &mut u64| {
[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: direct cast of function item into an integer
[INFO] [stdout]   --> crates/hipfire-runtime/examples/infer_hfq.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 |         libc::signal(libc::SIGINT, handle_sigint as libc::sighandler_t);
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 25 |         libc::signal(libc::SIGINT, handle_sigint as *const () as libc::sighandler_t);
[INFO] [stdout]    |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DType`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/profile_layers.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rdna_compute::{DType, Gpu};
[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: `test_token`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/infer.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let test_token = tokenizer.encode("Hello")[0];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_token`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `max_idx` is assigned to, but never used
[INFO] [stdout]    --> crates/hipfire-runtime/examples/infer.rs:298:17
[INFO] [stdout]     |
[INFO] [stdout] 298 |             let mut max_idx = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_max_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `max_idx` is never read
[INFO] [stdout]    --> crates/hipfire-runtime/examples/infer.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 303 |                     max_idx = j;
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMAGE_SIZE` is never used
[INFO] [stdout]   --> crates/hipfire-runtime/examples/infer.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const IMAGE_SIZE: usize = 448;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hipfire_arch_qwen35::qwen35::LayerWeights`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/channel_test_mmq.rs:794:9
[INFO] [stdout]     |
[INFO] [stdout] 794 |     use hipfire_arch_qwen35::qwen35::LayerWeights;
[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: `i`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/test_qwen35_load.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 149 |         for (i, layer) in weights.layers.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/profile_host_vs_gpu.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let mean = |v: &[f64]| -> f64 { v.iter().sum::<f64>() / v.len() as f64 };
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p99`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/profile_host_vs_gpu.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let p99 = |v: &[f64]| -> f64 {
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_p99`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/c8_sampler_validate.rs:832:52
[INFO] [stdout]     |
[INFO] [stdout] 832 |         let draft_p_at_tok: Vec<f32> = (0..b).map(|i| p_d_val).collect();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8697:9
[INFO] [stdout]      |
[INFO] [stdout] 8697 |     let ctx = hipfire_dispatch::context::DispatchCtx::new(gpu);
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q_dim`
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:9921:21
[INFO] [stdout]      |
[INFO] [stdout] 9921 |                 let q_dim = config.n_heads * config.head_dim;
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_q_dim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_bands`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/triattn_validate.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 509 |         let n_bands = config.head_dim / 2;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_bands`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_fa3_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12077:9
[INFO] [stdout]       |
[INFO] [stdout] 12077 |     let fused_fa3_lloyd_mq4 = fa3_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_fa3_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kv_dim`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12176:9
[INFO] [stdout]       |
[INFO] [stdout] 12176 |     let kv_dim = config.n_kv_heads * config.head_dim;
[INFO] [stdout]       |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kv_dim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `kv_layer_idx` is assigned to, but never used
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12577:9
[INFO] [stdout]       |
[INFO] [stdout] 12577 |     let mut kv_layer_idx = 0usize;
[INFO] [stdout]       |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: consider using `_kv_layer_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kv_layer_idx` is never read
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:12876:17
[INFO] [stdout]       |
[INFO] [stdout] 12876 |                 kv_layer_idx += 1;
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 13148 |                 kv_layer_idx += 1;
[INFO] [stdout]       |                 ----------------- `kv_layer_idx` is overwritten here before the previous value is read
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `kv_layer_idx` is never read
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:13148:17
[INFO] [stdout]       |
[INFO] [stdout] 13148 |                 kv_layer_idx += 1;
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_per_fwd_us`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/profile_bandwidth_fwd.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let total_per_fwd_us = total_time_us / measure as f64;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_per_fwd_us`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_la4_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:15667:25
[INFO] [stdout]       |
[INFO] [stdout] 15667 |                     let fused_la4_lloyd_mq4 = la4_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_la4_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_gu_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:15836:25
[INFO] [stdout]       |
[INFO] [stdout] 15836 |                     let fused_gu_lloyd_mq4 = same_dtype && dt_g == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_gu_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_fa3_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:15898:25
[INFO] [stdout]       |
[INFO] [stdout] 15898 |                     let fused_fa3_lloyd_mq4 = fa3_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_fa3_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_gu_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:16271:25
[INFO] [stdout]       |
[INFO] [stdout] 16271 |                     let fused_gu_lloyd_mq4 = same_dtype && dt_g == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_gu_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_la4_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:16334:25
[INFO] [stdout]       |
[INFO] [stdout] 16334 |                     let fused_la4_lloyd_mq4 = la4_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_la4_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fused_fa3_lloyd_mq4`
[INFO] [stdout]      --> crates/hipfire-arch-qwen35/src/qwen35.rs:16522:25
[INFO] [stdout]       |
[INFO] [stdout] 16522 |                     let fused_fa3_lloyd_mq4 = fa3_same_dtype && dt == DType::MQ4G256Lloyd;
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fused_fa3_lloyd_mq4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gemv_total_ms`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/profile.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let gemv_total_ms = gemv_ms * 7.0 * config.n_layers as f64;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gemv_total_ms`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/test_long_ctx.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |     let mut rng_state: u64 = 0xDEADBEEF_CAFEBABE;
[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: `max_err3`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let (ok3, max_err3, mean_err3) = compare("MQ3", &y_mq3_cpu, &y_mq3_gpu);
[INFO] [stdout]    |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_err3`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_err3`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let (ok3, max_err3, mean_err3) = compare("MQ3", &y_mq3_cpu, &y_mq3_gpu);
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_err3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_err2`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let (ok2, max_err2, mean_err2) = compare("MQ2", &y_mq2_cpu, &y_mq2_gpu);
[INFO] [stdout]    |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_err2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_err2`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let (ok2, max_err2, mean_err2) = compare("MQ2", &y_mq2_cpu, &y_mq2_gpu);
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_err2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ci`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:148:25
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     let ci = chunk * 8;
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_ci`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:270:34
[INFO] [stdout]     |
[INFO] [stdout] 270 |     gpu.hip.memcpy_dtoh(y_bytes, unsafe { &d_y.buf }).unwrap();
[INFO] [stdout]     |                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:281:33
[INFO] [stdout]     |
[INFO] [stdout] 281 |         .memcpy_dtoh(out_bytes, unsafe { &d_xr.buf })
[INFO] [stdout]     |                                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:290:39
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn quantize_mq3g256(f32_data: &[f32], k: usize) -> Vec<u8> {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> crates/hipfire-runtime/examples/verify_mq_kernel.rs:336:39
[INFO] [stdout]     |
[INFO] [stdout] 336 | fn quantize_mq2g256(f32_data: &[f32], k: usize) -> Vec<u8> {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/speculative.rs:2957:9
[INFO] [stdout]      |
[INFO] [stdout] 2957 |     let mut t_phase = t_spec_start;
[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 import: `weight_gemv`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/eval_hipfire.rs:48:47
[INFO] [stdout]    |
[INFO] [stdout] 48 |     use hipfire_runtime::llama::{gemv_family, weight_gemv, DispatchCtx, KvCache, VMode};
[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 macro definition: `skip`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/test_kernels.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 41 |     macro_rules! skip {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `repack_awq_to_hfq4g128` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:1869:4
[INFO] [stdout]      |
[INFO] [stdout] 1869 | fn repack_awq_to_hfq4g128(
[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 `load_paroquant_weight` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:1951:4
[INFO] [stdout]      |
[INFO] [stdout] 1951 | fn load_paroquant_weight(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fp16_weight_from_source` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2032:4
[INFO] [stdout]      |
[INFO] [stdout] 2032 | fn load_fp16_weight_from_source(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paro_repack_moe_projection` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2067:4
[INFO] [stdout]      |
[INFO] [stdout] 2067 | fn paro_repack_moe_projection(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paro_load_moe_shared_sidecars` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2097:4
[INFO] [stdout]      |
[INFO] [stdout] 2097 | fn paro_load_moe_shared_sidecars(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alias_paro_rotation` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2133:4
[INFO] [stdout]      |
[INFO] [stdout] 2133 | fn alias_paro_rotation(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paro_load_moe_ffn` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2163:4
[INFO] [stdout]      |
[INFO] [stdout] 2163 | fn paro_load_moe_ffn(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_any_as_f32` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:2336:4
[INFO] [stdout]      |
[INFO] [stdout] 2336 | fn load_any_as_f32(hfq: &HfqFile, gpu: &mut Gpu, name: &str, n: usize) -> HipResult<GpuTensor> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_raw_f32` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:3232:4
[INFO] [stdout]      |
[INFO] [stdout] 3232 | fn load_raw_f32(hfq: &HfqFile, gpu: &mut Gpu, name: &str, n: usize) -> HipResult<GpuTensor> {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `moe_ffn_decode` is never used
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:4335:4
[INFO] [stdout]      |
[INFO] [stdout] 4335 | fn moe_ffn_decode(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `givens_cos` and `givens_sin` are never read
[INFO] [stdout]     --> crates/hipfire-arch-qwen35/src/qwen35.rs:8582:9
[INFO] [stdout]      |
[INFO] [stdout] 8571 | pub(crate) struct PrefillBandCtx<'a> {
[INFO] [stdout]      |                   -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8582 |     pub givens_cos: Option<&'a GpuTensor>,
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout] 8583 |     pub givens_sin: Option<&'a GpuTensor>,
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/hipfire-runtime/examples/test_kernels.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut skipped = 0;
[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: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/ep_decode_parity.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut w = {
[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: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/test_inference.rs:54:17
[INFO] [stdout]     |
[INFO] [stdout]  54 |               let mut closure = || -> Result<String, String> { $body };
[INFO] [stdout]     |                   ----^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 170 | /     test!("</think> encodes to detectable token(s)", 1000, {
[INFO] [stdout] 171 | |         let think_end = tokenizer.encode("</think>");
[INFO] [stdout] 172 | |         assert!(!think_end.is_empty(), "</think> encoded to empty");
[INFO] [stdout] 173 | |         Ok(format!("{} token(s): {:?}", think_end.len(), think_end))
[INFO] [stdout] 174 | |     });
[INFO] [stdout]     | |______- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `test` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/test_inference.rs:54:17
[INFO] [stdout]     |
[INFO] [stdout]  54 |               let mut closure = || -> Result<String, String> { $body };
[INFO] [stdout]     |                   ----^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 177 | /     test!("ChatML special tokens encode as single tokens", 1000, {
[INFO] [stdout] 178 | |         let im_start = tokenizer.encode("<|im_start|>");
[INFO] [stdout] 179 | |         let im_end = tokenizer.encode("<|im_end|>");
[INFO] [stdout] 180 | |         assert_eq!(
[INFO] [stdout] ...   |
[INFO] [stdout] 194 | |         Ok(format!("im_start={} im_end={}", im_start[0], im_end[0]))
[INFO] [stdout] 195 | |     });
[INFO] [stdout]     | |______- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tool_calls_parsed_count` is never read
[INFO] [stdout]      --> crates/hipfire-runtime/examples/daemon.rs:13027:46
[INFO] [stdout]       |
[INFO] [stdout] 13027 |     let mut tool_calls_parsed_count: usize = 0;
[INFO] [stdout]       |                                              ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 13254 |         tool_calls_parsed_count = emit_tool_calls_buf.len();
[INFO] [stdout]       |         --------------------------------------------------- `tool_calls_parsed_count` is overwritten here before the previous value is read
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `probe_state` is never read
[INFO] [stdout]    --> crates/hipfire-runtime/examples/pflash_load_demo.rs:238:33
[INFO] [stdout]     |
[INFO] [stdout] 238 | ...                   probe_state = false;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> crates/hipfire-runtime/examples/test_gemv_hfq3g256_residual.rs:60:39
[INFO] [stdout]    |
[INFO] [stdout] 60 |             .memcpy_dtoh(y_ref_bytes, unsafe { &d_y_ref.buf })
[INFO] [stdout]    |                                       ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> crates/hipfire-runtime/examples/test_gemv_hfq3g256_residual.rs:72:40
[INFO] [stdout]    |
[INFO] [stdout] 72 |             .memcpy_dtoh(y_test_bytes, unsafe { &d_y_test.buf })
[INFO] [stdout]    |                                        ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cpu_dequant_row` is never used
[INFO] [stdout]   --> crates/hipfire-runtime/examples/diag_mq4_lloyd_multiacc.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn cpu_dequant_row(row_bytes: &[u8], groups_per_row: usize) -> Vec<f32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kv_dim`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/bench.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let kv_dim = config.n_kv_heads * config.head_dim;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kv_dim`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DType`
[INFO] [stdout]   --> crates/hipfire-runtime/examples/test_wmma_residual_hfq3.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rdna_compute::{DType, Gpu};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/run.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let mut spec_active = speculative && draft_slot.is_some();
[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: variable does not need to be mutable
[INFO] [stdout]    --> crates/hipfire-runtime/examples/run.rs:389:13
[INFO] [stdout]     |
[INFO] [stdout] 389 |         let mut emit_token = |tok: u32,
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qd`
[INFO] [stdout]     --> crates/hipfire-runtime/src/dflash.rs:1567:9
[INFO] [stdout]      |
[INFO] [stdout] 1567 |     let qd = cfg.q_dim();
[INFO] [stdout]      |         ^^ help: if this is intentional, prefix it with an underscore: `_qd`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row0`
[INFO] [stdout]     --> crates/hipfire-runtime/src/dflash.rs:1730:14
[INFO] [stdout]      |
[INFO] [stdout] 1730 |         for (row0, slot0, len) in ring_segments(fc_start, l, swa_w) {
[INFO] [stdout]      |              ^^^^ help: if this is intentional, prefix it with an underscore: `_row0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index_start`
[INFO] [stdout]    --> crates/hipfire-runtime/src/hfq.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let index_start = metadata_offset;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_index_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/hipfire-runtime/src/hfq.rs:811:27
[INFO] [stdout]     |
[INFO] [stdout] 811 |     fn tensor_data(&self, name: &str) -> Option<(&crate::model_source::TensorInfo, &[u8])> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> crates/hipfire-runtime/src/hfq.rs:820:27
[INFO] [stdout]     |
[INFO] [stdout] 820 |     fn tensor_info(&self, name: &str) -> Option<&crate::model_source::TensorInfo> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:1560:13
[INFO] [stdout]      |
[INFO] [stdout] 1560 |         for i in 0..batch {
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:4895:9
[INFO] [stdout]      |
[INFO] [stdout] 4895 |     let mut x = gpu.alloc_tensor(&[dim], DType::F32)?;
[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: variable does not need to be mutable
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:5098:9
[INFO] [stdout]      |
[INFO] [stdout] 5098 |     let mut x = gpu.alloc_tensor(&[dim], DType::F32)?;
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `q8_vmm_layout` is never used
[INFO] [stdout]     --> crates/hipfire-runtime/src/llama.rs:5713:8
[INFO] [stdout]      |
[INFO] [stdout] 5406 | impl KvCache {
[INFO] [stdout]      | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 5713 |     fn q8_vmm_layout(
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `layout` is never read
[INFO] [stdout]    --> crates/hipfire-runtime/src/paro.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |     struct MockSource {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 353 |         layout: &'static str,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `append_assistant_turn_tokens` is never used
[INFO] [stdout]    --> crates/hipfire-runtime/src/prompt_frame.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl<'a> ChatScaffold<'a> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn append_assistant_turn_tokens(&self, out: &mut Vec<u32>, body: &[u32]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 34s
[INFO] running `Command { std: "docker" "inspect" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b", kill_on_drop: false }`
[INFO] [stdout] 69cbd3a5cc8e2656295b4f8e0d72528af24ef7273d436eed7b4855e8f8df788b
