[2026-10-07T00:06:16Z] t27b lab run: https://github.com/gHashTag/t27 master @ 403b27f29dda78afa7e57582e9b375acbfdb1d5a
[2026-10-07T00:06:16Z] image: lab.py a493fc6ca6ea3d4bbf193fe59d20001fbb27970c Dockerfile 639d422b83a63d2e718ea36ac61f715a48b7bebc built 2026-10-06T15:43:14Z deployment fcefb065-8c75-4270-8cda-43a329875567
[2026-10-07T00:06:16Z] $ git fetch --filter=blob:none origin 403b27f29dda78afa7e57582e9b375acbfdb1d5a
From https://github.com/gHashTag/t27
 * branch                403b27f29dda78afa7e57582e9b375acbfdb1d5a -> FETCH_HEAD
[2026-10-07T00:06:18Z] exit 0 in 1.4 s
[2026-10-07T00:06:18Z] $ git checkout --force --detach 403b27f29dda78afa7e57582e9b375acbfdb1d5a
Previous HEAD position was 670480bdd Merge pull request #6979 from gHashTag/queen-6299
HEAD is now at 403b27f29 Merge pull request #7018 from gHashTag/queen-4933
[2026-10-07T00:06:19Z] exit 0 in 1.0 s
[2026-10-07T00:06:19Z] $ cargo build --release -p t27c --target-dir /work/target
   Compiling t27c v0.4.0 (/work/t27/bootstrap)
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+043A ('к') in file docs/ROADMAP_BRIEF.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0441 ('с') in file docs/reports/ISSUE-REGISTRY-CORRECTED.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/reports/TNF-ARTICLE-RECONCILIATION.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0434 ('д') in file docs/reports/TNF-ARTICLE-AUDIT-W845.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0441 ('с') in file docs/reports/FPGA_LOOP_CLOSEOUT_W849_2026-08-04.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+041F ('П') in file docs/reports/ISSUE-REGISTRY.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0438 ('и') in file docs/reports/tnf-sweep/2026-08-14-local-cost-sweep.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0438 ('и') in file docs/reports/OPENXC7-SRL16E-DEFECT.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+041F ('П') in file docs/reports/W805-TERNARY-FPGA-FIELD-SURVEY.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-prune-platform-baseline.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0437 ('з') in file docs/now/2026-09-05-master-was-green-in-two-of-sixty-three.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-mul-noop-width.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-dma-addr-per-arm.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-09-27-a-clock-that-counted-the-process-never-reached-its-first-tick.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-conformance-pipefail.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-min-runs-floor-value-bound.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0413 ('Г') in file docs/now/2026-09-24-refuse-the-task-the-queen-could-never-take.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-bench-counters-subcommand.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-rca2-terminator.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+043C ('м') in file docs/now/2026-08-24-two-mechanisms-the-taxonomy-lacked.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0421 ('С') in file docs/now/2026-09-27-published-bee-work.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-bootstrap-test-ratchet.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/now/2026-08-22-translate-guard-bands.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0422 ('Т') in file docs/TERNARY_LANDSCAPE.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0438 ('и') in file docs/PUBLICATION_AUDIT.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+042D ('Э') in file docs/wave_ecosystem_2026-07-08/FINAL_REPORT.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+041D ('Н') in file docs/wave_ecosystem_2026-07-08/SCIENCE_BASELINE.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0440 ('р') in file docs/wave_ecosystem_2026-07-08/WEAKNESS_AUDIT.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+041F ('П') in file docs/wave_ecosystem_2026-07-08/EPIC.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0427 ('Ч') in file docs/FOUR_FAMILIES.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+041A ('К') in file docs/metrics/NUMERIC_FORMATS_83_METRICS.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0442 ('т') in file docs/theory/TNF_ARTICLE_RU.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0423 ('У') in file docs/theory/PATH_TO_HARDWARE_RU.md
warning: t27c@0.4.0: t27c LANGUAGE POLICY VIOLATION: Cyrillic character U+0438 ('и') in file docs/theory/IGLA-FORMAL-RESULTS.md
warning: multiple lines skipped by escaped newline
   --> bootstrap/src/behavior_sva.rs:293:23
    |
293 |   const FOOTER: &str = "\
    |  _______________________^
294 | |
295 | | `default_nettype wire
    | |_^ skipping everything up to and including this point

warning: unnecessary parentheses around `match` scrutinee expression
   --> bootstrap/src/math_bayes.rs:310:31
    |
310 |     let bic_interpret = match (evidence_h0.bic - evidence_h1.bic) {
    |                               ^                                 ^
    |
    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
help: remove these parentheses
    |
310 -     let bic_interpret = match (evidence_h0.bic - evidence_h1.bic) {
310 +     let bic_interpret = match evidence_h0.bic - evidence_h1.bic {
    |

warning: unused import: `PathBuf`
  --> bootstrap/src/notebook.rs:12:23
   |
12 | use std::path::{Path, PathBuf};
   |                       ^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: variant `unknown` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:19:5
   |
19 |     unknown = 0,
   |     ^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Unknown`
   |
   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default

warning: variant `qcd` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:20:5
   |
20 |     qcd = 1,
   |     ^^^ help: convert the identifier to upper camel case: `Qcd`

warning: variant `electroweak` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:21:5
   |
21 |     electroweak = 2,
   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Electroweak`

warning: variant `cosmology` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:22:5
   |
22 |     cosmology = 3,
   |     ^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cosmology`

warning: variant `condensed` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:23:5
   |
23 |     condensed = 4,
   |     ^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Condensed`

warning: variant `nuclear` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:24:5
   |
24 |     nuclear = 5,
   |     ^^^^^^^ help: convert the identifier to upper camel case: `Nuclear`

warning: variant `particle` should have an upper camel case name
  --> bootstrap/src/memory/generated/formula_embed.rs:25:5
   |
25 |     particle = 6,
   |     ^^^^^^^^ help: convert the identifier to upper camel case: `Particle`

warning: unused import: `TtChip`
  --> bootstrap/src/tt_debug.rs:33:26
   |
33 | use crate::tt_manifest::{TtChip, TtManifest};
   |                          ^^^^^^

warning: value assigned to `rbracket_line` is never read
    --> bootstrap/src/compiler.rs:5853:33
     |
5853 |         let mut rbracket_line = self.current.line;
     |                                 ^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
...
5878 |                 rbracket_line = self.current.line;
     |                 --------------------------------- `rbracket_line` is overwritten here before the previous value is read
     |
     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `is_method`
    --> bootstrap/src/compiler.rs:9010:13
     |
9010 |         let is_method = node.params.iter().any(|(name, _)| name == "self");
     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_method`
     |
     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: value assigned to `elem_type` is never read
     --> bootstrap/src/compiler.rs:12973:29
      |
12973 |         let mut elem_type = String::new();
      |                             ^^^^^^^^^^^^^ this value is reassigned later and never used
...
12982 |                     elem_type = Self::base_type_name(ret_ty);
      |                     --------- `elem_type` is overwritten here before the previous value is read

warning: variable does not need to be mutable
     --> bootstrap/src/compiler.rs:13991:17
      |
13991 |             let mut errors: std::collections::HashMap<String, String> =
      |                 ----^^^^^^
      |                 |
      |                 help: remove this `mut`
      |
      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `type_array`
     --> bootstrap/src/compiler.rs:15249:13
      |
15249 |         let type_array = Self::parse_array_type(&node.extra_type);
      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_array`

warning: unused variable: `full_width`
     --> bootstrap/src/compiler.rs:16767:37
      |
16767 | ...                   let full_width = specs
      |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_width`

warning: variable does not need to be mutable
     --> bootstrap/src/compiler.rs:19552:17
      |
19552 |             let mut consider = |ty: &str,
      |                 ----^^^^^^^^
      |                 |
      |                 help: remove this `mut`

warning: unused variable: `rest`
     --> bootstrap/src/compiler.rs:23087:22
      |
23087 |             let Some(rest) = t.strip_prefix("const ") else {
      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_rest`

warning: variable does not need to be mutable
     --> bootstrap/src/compiler.rs:25577:9
      |
25577 |     let mut note = |ty: &str, where_: String, out: &mut Vec<(String, String)>| {
      |         ----^^^^
      |         |
      |         help: remove this `mut`

warning: unreachable pattern
     --> bootstrap/src/compiler.rs:26405:9
      |
26282 |         NodeKind::ExprReturn => {
      |         -------------------- matches all the relevant values
...
26405 |         NodeKind::ExprReturn => {
      |         ^^^^^^^^^^^^^^^^^^^^ no value can reach this
      |
      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default

warning: value assigned to `x_offset` is never read
     --> bootstrap/src/compiler.rs:32533:13
      |
32533 |             x_offset += 11;
      |             ^^^^^^^^^^^^^^
      |
      = help: maybe it is overwritten before being read?

warning: variable does not need to be mutable
    --> bootstrap/src/suite.rs:1947:9
     |
1947 |     let mut record = |name: &str,
     |         ----^^^^^^
     |         |
     |         help: remove this `mut`

warning: unused variable: `p3b_known_failures`
    --> bootstrap/src/suite.rs:2102:22
     |
2102 |     let (p3bp, p3bf, p3b_known_failures) = if yosys_available() {
     |                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p3b_known_failures`

warning: value assigned to `p3b_fail` is never read
    --> bootstrap/src/suite.rs:2085:24
     |
2085 |     let mut p3b_fail = 0usize;
     |                        ^^^^^^ this value is reassigned later and never used
...
2137 |     p3b_fail = p3bf;
     |     --------------- `p3b_fail` is overwritten here before the previous value is read

warning: value assigned to `p3cs_fail` is never read
    --> bootstrap/src/suite.rs:2185:25
     |
2185 |     let mut p3cs_fail = 0usize;
     |                         ^^^^^^ this value is reassigned later and never used
...
2203 |             p3cs_fail = 1;
     |             ------------- `p3cs_fail` is overwritten here before the previous value is read

warning: value assigned to `p3cs_skipped` is never read
    --> bootstrap/src/suite.rs:2186:28
     |
2186 |     let mut p3cs_skipped = 0usize;
     |                            ^^^^^^ this value is reassigned later and never used
...
2208 |         p3cs_skipped = 1;
     |         ---------------- `p3cs_skipped` is overwritten here before the previous value is read

warning: unused variable: `n_obs`
   --> bootstrap/src/math_bayes.rs:262:9
    |
262 |     let n_obs = k * n;
    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_obs`

warning: variable does not need to be mutable
   --> bootstrap/src/math_bayes.rs:364:9
    |
364 |     let mut min_log_bf = f64::MAX;
    |         ----^^^^^^^^^^
    |         |
    |         help: remove this `mut`

warning: unused variable: `min_log_bf`
   --> bootstrap/src/math_bayes.rs:344:54
    |
344 | fn run_verification(experience_path: Option<String>, min_log_bf: f64) -> anyhow::Result<()> {
    |                                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_log_bf`

warning: unused variable: `name`
  --> bootstrap/src/host/firmware.rs:92:13
   |
92 |         let name = std::str::from_utf8(tag).unwrap_or("????");
   |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`

warning: unused variable: `current_vacuous`
    --> bootstrap/src/main.rs:5621:9
     |
5621 |     let current_vacuous = is_vacuous(
     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_vacuous`

warning: variable does not need to be mutable
    --> bootstrap/src/main.rs:8139:13
     |
8139 |         let mut offset = 0u32;
     |             ----^^^^^^
     |             |
     |             help: remove this `mut`

warning: unused variable: `offset`
    --> bootstrap/src/main.rs:8139:13
     |
8139 |         let mut offset = 0u32;
     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`

warning: variable `warnings` is assigned to, but never used
     --> bootstrap/src/main.rs:11477:9
      |
11477 |     let mut warnings = 0u32;
      |         ^^^^^^^^^^^^
      |
      = note: consider using `_warnings` instead

warning: value assigned to `warnings` is never read
     --> bootstrap/src/main.rs:11502:45
      |
11502 |         if has_t { has_tests += 1; } else { warnings += 1; }
      |                                             ^^^^^^^^^^^^^
      |
      = help: maybe it is overwritten before being read?

warning: type `FunctionDef` is more private than the item `FormulaRuntime::get_function_info`
   --> bootstrap/src/runtime/mod.rs:531:5
    |
531 |     pub(crate) fn get_function_info<'a>(&'a self, name: &str) -> Option<&'a FunctionDef> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `FormulaRuntime::get_function_info` is reachable at visibility `pub(crate)`
    |
note: but type `FunctionDef` is only usable at visibility `pub(self)`
   --> bootstrap/src/runtime/mod.rs:50:1
    |
 50 | struct FunctionDef {
    | ^^^^^^^^^^^^^^^^^^
    = note: `#[warn(private_interfaces)]` on by default

warning: struct `NotebookMeta` is never constructed
   --> bootstrap/src/bridge.rs:122:8
    |
122 | struct NotebookMeta {
    |        ^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: struct `NotebookCreateResponse` is never constructed
   --> bootstrap/src/bridge.rs:131:8
    |
131 | struct NotebookCreateResponse {
    |        ^^^^^^^^^^^^^^^^^^^^^^

warning: constant `CURRENT_TASK_DIR` is never used
   --> bootstrap/src/bridge.rs:138:7
    |
138 | const CURRENT_TASK_DIR: &str = ".trinity/current_task";
    |       ^^^^^^^^^^^^^^^^

warning: constant `NOTEBOOK_ID_FILE` is never used
   --> bootstrap/src/bridge.rs:139:7
    |
139 | const NOTEBOOK_ID_FILE: &str = ".notebook_id";
    |       ^^^^^^^^^^^^^^^^

warning: constant `NOTEBOOK_META_FILE` is never used
   --> bootstrap/src/bridge.rs:140:7
    |
140 | const NOTEBOOK_META_FILE: &str = "notebook_meta.json";
    |       ^^^^^^^^^^^^^^^^^^

warning: function `handle_task_start` is never used
   --> bootstrap/src/bridge.rs:142:4
    |
142 | fn handle_task_start(root: &Path, title: &str, sources: &str) {
    |    ^^^^^^^^^^^^^^^^^

warning: variant `ExprRange` is never constructed
  --> bootstrap/src/compiler.rs:42:5
   |
16 | pub enum NodeKind {
   |          -------- variant in this enum
...
42 |     ExprRange, // start..end
   |     ^^^^^^^^^
   |
   = note: `NodeKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: associated items `parse_range_bound` and `type_is_float` are never used
    --> bootstrap/src/compiler.rs:4636:8
     |
1169 | impl Parser {
     | ----------- associated items in this implementation
...
4636 |     fn parse_range_bound(&mut self) -> Result<Node, String> {
     |        ^^^^^^^^^^^^^^^^^
...
7113 |     fn type_is_float(ty: &str) -> bool {
     |        ^^^^^^^^^^^^^

warning: method `packed_struct_width` is never used
     --> bootstrap/src/compiler.rs:12719:8
      |
11232 | impl VerilogCodegen {
      | ------------------- method in this implementation
...
12719 |     fn packed_struct_width(&self, name: &str, depth: u32) -> u32 {
      |        ^^^^^^^^^^^^^^^^^^^

warning: associated function `c_return_type` is never used
     --> bootstrap/src/compiler.rs:20943:8
      |
19112 | impl CCodegen {
      | ------------- associated function in this implementation
...
20943 |     fn c_return_type(ty: &str) -> String {
      |        ^^^^^^^^^^^^^

warning: variant `Inout` is never constructed
     --> bootstrap/src/compiler.rs:29261:5
      |
29258 | pub enum HwPortDir {
      |          --------- variant in this enum
...
29261 |     Inout,
      |     ^^^^^
      |
      = note: `HwPortDir` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: field `param_map` is never read
     --> bootstrap/src/compiler.rs:29332:9
      |
29328 | pub struct HirInstance {
      |            ----------- field in this struct
...
29332 |     pub param_map: Vec<(String, String)>,
      |         ^^^^^^^^^
      |
      = note: `HirInstance` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: variant `Read` is never constructed
     --> bootstrap/src/compiler.rs:29345:5
      |
29344 | pub enum HwMemPortKind {
      |          ------------- variant in this enum
29345 |     Read,
      |     ^^^^
      |
      = note: `HwMemPortKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: field `addr_width` is never read
     --> bootstrap/src/compiler.rs:29364:9
      |
29359 | pub struct HirMemory {
      |            --------- field in this struct
...
29364 |     pub addr_width: u32,
      |         ^^^^^^^^^^
      |
      = note: `HirMemory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: associated items `new_bram`, `new_rom`, `calc_addr_width`, `add_read_port`, `add_write_port`, and `has_read` are never used
     --> bootstrap/src/compiler.rs:29369:12
      |
29368 | impl HirMemory {
      | -------------- associated items in this implementation
29369 |     pub fn new_bram(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^^
...
29381 |     pub fn new_rom(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^
...
29393 |     fn calc_addr_width(depth: u32) -> u32 {
      |        ^^^^^^^^^^^^^^^
...
29406 |     pub fn add_read_port(&mut self, name: &str) {
      |            ^^^^^^^^^^^^^
...
29415 |     pub fn add_write_port(&mut self, name: &str) {
      |            ^^^^^^^^^^^^^^
...
29424 |     pub fn has_read(&self) -> bool {
      |            ^^^^^^^^

warning: enum `HwClkSrcKind` is never used
     --> bootstrap/src/compiler.rs:29469:10
      |
29469 | pub enum HwClkSrcKind {
      |          ^^^^^^^^^^^^

warning: struct `HirClkSource` is never constructed
     --> bootstrap/src/compiler.rs:29477:12
      |
29477 | pub struct HirClkSource {
      |            ^^^^^^^^^^^^

warning: fields `name`, `source_name`, `freq_hz`, and `posedge` are never read
     --> bootstrap/src/compiler.rs:29487:9
      |
29486 | pub struct HirClockDomain {
      |            -------------- fields in this struct
29487 |     pub name: String,
      |         ^^^^
29488 |     pub source_name: String,
      |         ^^^^^^^^^^^
29489 |     pub freq_hz: u32,
      |         ^^^^^^^
29490 |     pub posedge: bool,
      |         ^^^^^^^
      |
      = note: `HirClockDomain` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: associated items `new`, `period_ns`, and `half_period_ns` are never used
     --> bootstrap/src/compiler.rs:29494:12
      |
29493 | impl HirClockDomain {
      | ------------------- associated items in this implementation
29494 |     pub fn new(name: &str, source: &str, freq_hz: u32) -> Self {
      |            ^^^
...
29503 |     pub fn period_ns(&self) -> u32 {
      |            ^^^^^^^^^
...
29510 |     pub fn half_period_ns(&self) -> u32 {
      |            ^^^^^^^^^^^^^^

warning: fields `src_domain`, `dst_domain`, `strategy`, and `data_width` are never read
     --> bootstrap/src/compiler.rs:29525:9
      |
29524 | pub struct HirClockCrossing {
      |            ---------------- fields in this struct
29525 |     pub src_domain: String,
      |         ^^^^^^^^^^
29526 |     pub dst_domain: String,
      |         ^^^^^^^^^^
29527 |     pub strategy: HwCrossStrategy,
      |         ^^^^^^^^
29528 |     pub data_width: u32,
      |         ^^^^^^^^^^
      |
      = note: `HirClockCrossing` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: associated functions `new_sync` and `new_async` are never used
     --> bootstrap/src/compiler.rs:29551:12
      |
29550 | impl HirFifo {
      | ------------ associated functions in this implementation
29551 |     pub fn new_sync(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^^
...
29564 |     pub fn new_async(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^^^

warning: variant `Master` is never constructed
     --> bootstrap/src/compiler.rs:29603:5
      |
29602 | pub enum HwBusRole {
      |          --------- variant in this enum
29603 |     Master,
      |     ^^^^^^
      |
      = note: `HwBusRole` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:29618:12
      |
29617 | impl HirBusPort {
      | --------------- associated items in this implementation
29618 |     pub fn axi4_lite_slave(name: &str, addr_width: u32, data_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^
...
29629 |     pub fn axi4_lite_master(name: &str, addr_width: u32, data_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^^
...
29640 |     pub fn axi4_full_slave(name: &str, addr_width: u32, data_width: u32, id_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^
...
29651 |     pub fn axi4_full_master(name: &str, addr_width: u32, data_width: u32, id_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^^
...
29666 |     pub fn is_lite(&self) -> bool {
      |            ^^^^^^^
...
29670 |     pub fn is_full(&self) -> bool {
      |            ^^^^^^^
...
29674 |     pub fn is_slave(&self) -> bool {
      |            ^^^^^^^^
...
29678 |     pub fn is_master(&self) -> bool {
      |            ^^^^^^^^^
...
29774 |     pub fn total_signal_bits(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^

warning: field `name` is never read
     --> bootstrap/src/compiler.rs:29825:9
      |
29824 | pub struct HirApbPeriphMap {
      |            --------------- field in this struct
29825 |     pub name: String,
      |         ^^^^
      |
      = note: `HirApbPeriphMap` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: associated items `new`, `with_error_response`, `add_peripheral`, `addr_bits_for_peripherals`, and `select_peripheral` are never used
     --> bootstrap/src/compiler.rs:29843:12
      |
29842 | impl HirApbBridge {
      | ----------------- associated items in this implementation
29843 |     pub fn new(name: &str, addr_width: u32, data_width: u32, num_peripherals: u32) -> Self {
      |            ^^^
...
29855 |     pub fn with_error_response(mut self) -> Self {
      |            ^^^^^^^^^^^^^^^^^^^
...
29861 |     pub fn add_peripheral(&mut self, name: &str, base_addr: u32, size: u32, index: u32) {
      |            ^^^^^^^^^^^^^^
...
29874 |     pub fn addr_bits_for_peripherals(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
...
29887 |     pub fn select_peripheral(&self, addr: u32) -> Option<u32> {
      |            ^^^^^^^^^^^^^^^^^

warning: enum `Gf16OpKind` is never used
     --> bootstrap/src/compiler.rs:29924:10
      |
29924 | pub enum Gf16OpKind {
      |          ^^^^^^^^^^

warning: field `name` is never read
     --> bootstrap/src/compiler.rs:29944:9
      |
29943 | pub struct HirGf16FftConfig {
      |            ---------------- field in this struct
29944 |     pub name: String,
      |         ^^^^
      |
      = note: `HirGf16FftConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: field `has_dot_product` is never read
     --> bootstrap/src/compiler.rs:29976:9
      |
29970 | pub struct HirGf16Accel {
      |            ------------ field in this struct
...
29976 |     pub has_dot_product: bool,
      |         ^^^^^^^^^^^^^^^
      |
      = note: `HirGf16Accel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:29984:12
      |
29983 | impl HirGf16Accel {
      | ----------------- associated items in this implementation
29984 |     pub fn basic(name: &str, num_mult: u32) -> Self {
      |            ^^^^^
...
29999 |     pub fn full(name: &str, num_mult: u32, vec_width: u32) -> Self {
      |            ^^^^
...
30014 |     pub fn add_mac_unit(&mut self, name: &str, acc_width: u32, stages: u32) {
      |            ^^^^^^^^^^^^
...
30022 |     pub fn set_fft(&mut self, name: &str, num_points: u32, radix: u32) {
      |            ^^^^^^^
...
30030 |     pub fn total_gf16_bits(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
30034 |     pub fn mac_unit_count(&self) -> u32 {
      |            ^^^^^^^^^^^^^^
...
30057 |     pub fn matmul_cycles(&self, n: u32) -> u32 {
      |            ^^^^^^^^^^^^^
...
30065 |     pub fn dot_product_cycles(&self, vec_len: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^

warning: variants `Immediate`, `Cover`, and `Assume` are never constructed
     --> bootstrap/src/compiler.rs:30102:5
      |
30101 | pub enum HwAssertKind {
      |          ------------ variants in this enum
30102 |     Immediate,
      |     ^^^^^^^^^
30103 |     Concurrent,
30104 |     Cover,
      |     ^^^^^
30105 |     Assume,
      |     ^^^^^^
      |
      = note: `HwAssertKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: variants `Info`, `Warning`, `Error`, and `Fatal` are never constructed
     --> bootstrap/src/compiler.rs:30110:5
      |
30109 | pub enum HwAssertSeverity {
      |          ---------------- variants in this enum
30110 |     Info,
      |     ^^^^
30111 |     Warning,
      |     ^^^^^^^
30112 |     Error,
      |     ^^^^^
30113 |     Fatal,
      |     ^^^^^
      |
      = note: `HwAssertSeverity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: associated items `new`, `with_depth`, and `with_timeout` are never used
     --> bootstrap/src/compiler.rs:30154:12
      |
30153 | impl HirFormalConfig {
      | -------------------- associated items in this implementation
30154 |     pub fn new(name: &str, module_name: &str, clock: &str, reset: &str) -> Self {
      |            ^^^
...
30165 |     pub fn with_depth(mut self, depth: u32) -> Self {
      |            ^^^^^^^^^^
...
30170 |     pub fn with_timeout(mut self, timeout: u32) -> Self {
      |            ^^^^^^^^^^^^

warning: associated functions `immediate` and `concurrent` are never used
     --> bootstrap/src/compiler.rs:30197:12
      |
30196 | impl HirFormalAssert {
      | -------------------- associated functions in this implementation
30197 |     pub fn immediate(
      |            ^^^^^^^^^
...
30214 |     pub fn concurrent(
      |            ^^^^^^^^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:30251:12
      |
30250 | impl HirCoverPoint {
      | ------------------ associated function in this implementation
30251 |     pub fn new(name: &str, condition: &str, clock: &str, description: &str) -> Self {
      |            ^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:30273:12
      |
30272 | impl HirFormalAssume {
      | -------------------- associated function in this implementation
30273 |     pub fn new(name: &str, condition: &str, clock: &str, description: &str) -> Self {
      |            ^^^

warning: fields `name` and `has_forwarding` are never read
     --> bootstrap/src/compiler.rs:30311:9
      |
30310 | pub struct HirTernaryRegFile {
      |            ----------------- fields in this struct
30311 |     pub name: String,
      |         ^^^^
...
30316 |     pub has_forwarding: bool,
      |         ^^^^^^^^^^^^^^
      |
      = note: `HirTernaryRegFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:30336:12
      |
30335 | impl HirTernaryCore {
      | ------------------- associated items in this implementation
30336 |     pub fn basic(name: &str) -> Self {
      |            ^^^^^
...
30353 |     pub fn full(name: &str) -> Self {
      |            ^^^^
...
30370 |     pub fn with_regfile(mut self, rf: HirTernaryRegFile) -> Self {
      |            ^^^^^^^^^^^^
...
30375 |     pub fn add_pipeline_stage(&mut self, name: &str, latency: u32, has_forwarding: bool) {
      |            ^^^^^^^^^^^^^^^^^^
...
30383 |     pub fn add_alu_op(&mut self, name: &str, opcode: u32, latency: u32, uses_gf16: bool) {
      |            ^^^^^^^^^^
...
30427 |     pub fn fits_arty_a7(&self) -> bool {
      |            ^^^^^^^^^^^^
...
30431 |     pub fn fits_xc7a100t(&self) -> bool {
      |            ^^^^^^^^^^^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:30461:12
      |
30460 | impl HirTernaryRegFile {
      | ---------------------- associated function in this implementation
30461 |     pub fn new(name: &str) -> Self {
      |            ^^^

warning: struct `HirResourceEstimate` is never constructed
     --> bootstrap/src/compiler.rs:30482:12
      |
30482 | pub struct HirResourceEstimate {
      |            ^^^^^^^^^^^^^^^^^^^

warning: associated functions `zero` and `new` are never used
     --> bootstrap/src/compiler.rs:30491:12
      |
30490 | impl HirResourceEstimate {
      | ------------------------ associated functions in this implementation
30491 |     pub fn zero() -> Self {
      |            ^^^^
...
30501 |     pub fn new(luts: u32, ffs: u32, bram18: u32, dsp48: u32, io_pins: u32) -> Self {
      |            ^^^

warning: struct `HirIpCore` is never constructed
     --> bootstrap/src/compiler.rs:30513:12
      |
30513 | pub struct HirIpCore {
      |            ^^^^^^^^^

warning: struct `HirBoardResources` is never constructed
     --> bootstrap/src/compiler.rs:30521:12
      |
30521 | pub struct HirBoardResources {
      |            ^^^^^^^^^^^^^^^^^

warning: associated functions `arty_a7` and `xc7a100t` are never used
     --> bootstrap/src/compiler.rs:30531:12
      |
30530 | impl HirBoardResources {
      | ---------------------- associated functions in this implementation
30531 |     pub fn arty_a7() -> Self {
      |            ^^^^^^^
...
30542 |     pub fn xc7a100t() -> Self {
      |            ^^^^^^^^

warning: struct `HirIpCatalog` is never constructed
     --> bootstrap/src/compiler.rs:30555:12
      |
30555 | pub struct HirIpCatalog {
      |            ^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:30561:12
      |
30560 | impl HirIpCatalog {
      | ----------------- associated items in this implementation
30561 |     pub fn new(name: &str) -> Self {
      |            ^^^
...
30568 |     pub fn add_core(
      |            ^^^^^^^^
...
30586 |     pub fn total_luts(&self) -> u32 {
      |            ^^^^^^^^^^
...
30589 |     pub fn total_ffs(&self) -> u32 {
      |            ^^^^^^^^^
...
30592 |     pub fn total_bram18(&self) -> u32 {
      |            ^^^^^^^^^^^^
...
30595 |     pub fn total_dsp48(&self) -> u32 {
      |            ^^^^^^^^^^^
...
30599 |     pub fn fits_board(&self, board: &HirBoardResources) -> bool {
      |            ^^^^^^^^^^
...
30606 |     pub fn luts_remaining(&self, board: &HirBoardResources) -> u32 {
      |            ^^^^^^^^^^^^^^
...
30610 |     pub fn utilization_percent(&self, board: &HirBoardResources) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^
...
30617 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: enum `AsmSectionKind` is never used
     --> bootstrap/src/compiler.rs:30635:10
      |
30635 | pub enum AsmSectionKind {
      |          ^^^^^^^^^^^^^^

warning: associated items `from_i8` and `to_i8` are never used
     --> bootstrap/src/compiler.rs:30643:12
      |
30642 | impl AsmSectionKind {
      | ------------------- associated items in this implementation
30643 |     pub fn from_i8(v: i8) -> Self {
      |            ^^^^^^^
...
30652 |     pub fn to_i8(&self) -> i8 {
      |            ^^^^^

warning: enum `AsmRelocKind` is never used
     --> bootstrap/src/compiler.rs:30663:10
      |
30663 | pub enum AsmRelocKind {
      |          ^^^^^^^^^^^^

warning: associated items `from_i8` and `to_i8` are never used
     --> bootstrap/src/compiler.rs:30670:12
      |
30669 | impl AsmRelocKind {
      | ----------------- associated items in this implementation
30670 |     pub fn from_i8(v: i8) -> Self {
      |            ^^^^^^^
...
30678 |     pub fn to_i8(&self) -> i8 {
      |            ^^^^^

warning: struct `AssembledInstr` is never constructed
     --> bootstrap/src/compiler.rs:30688:12
      |
30688 | pub struct AssembledInstr {
      |            ^^^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:30700:12
      |
30699 | impl AssembledInstr {
      | ------------------- associated items in this implementation
30700 |     pub fn r_type(opcode: u32, rd: u32, rs1: u32, rs2: u32) -> Self {
      |            ^^^^^^
...
30713 |     pub fn i_type(opcode: u32, rd: u32, rs1: u32, imm: u32) -> Self {
      |            ^^^^^^
...
30726 |     pub fn gf16(opcode: u32, rd: u32, rs1: u32, rs2: u32) -> Self {
      |            ^^^^
...
30739 |     pub fn is_r_type(&self) -> bool {
      |            ^^^^^^^^^
...
30743 |     pub fn is_i_type(&self) -> bool {
      |            ^^^^^^^^^
...
30747 |     pub fn is_gf16_instr(&self) -> bool {
      |            ^^^^^^^^^^^^^
...
30751 |     pub fn encode_r_type(&self) -> u32 {
      |            ^^^^^^^^^^^^^
...
30755 |     pub fn encode_i_type(&self) -> u32 {
      |            ^^^^^^^^^^^^^
...
30759 |     pub fn encode(&self) -> u32 {
      |            ^^^^^^

warning: struct `AsmRelocEntry` is never constructed
     --> bootstrap/src/compiler.rs:30771:12
      |
30771 | pub struct AsmRelocEntry {
      |            ^^^^^^^^^^^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:30779:12
      |
30778 | impl AsmRelocEntry {
      | ------------------ associated function in this implementation
30779 |     pub fn new(offset: u32, kind: AsmRelocKind, symbol: &str, addend: u32) -> Self {
      |            ^^^

warning: struct `AsmSymbol` is never constructed
     --> bootstrap/src/compiler.rs:30790:12
      |
30790 | pub struct AsmSymbol {
      |            ^^^^^^^^^

warning: associated items `new` and `validate` are never used
     --> bootstrap/src/compiler.rs:30799:12
      |
30798 | impl AsmSymbol {
      | -------------- associated items in this implementation
30799 |     pub fn new(name: &str, address: u32, section: AsmSectionKind, is_global: bool) -> Self {
      |            ^^^
...
30809 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `AsmSection` is never constructed
     --> bootstrap/src/compiler.rs:30819:12
      |
30819 | pub struct AsmSection {
      |            ^^^^^^^^^^

warning: associated items `text`, `data`, `bss`, `rodata`, and `end` are never used
     --> bootstrap/src/compiler.rs:30827:12
      |
30826 | impl AsmSection {
      | --------------- associated items in this implementation
30827 |     pub fn text(base: u32) -> Self {
      |            ^^^^
...
30836 |     pub fn data(base: u32) -> Self {
      |            ^^^^
...
30845 |     pub fn bss(base: u32) -> Self {
      |            ^^^
...
30854 |     pub fn rodata(base: u32) -> Self {
      |            ^^^^^^
...
30863 |     pub fn end(&self) -> u32 {
      |            ^^^

warning: struct `AsmConfig` is never constructed
     --> bootstrap/src/compiler.rs:30869:12
      |
30869 | pub struct AsmConfig {
      |            ^^^^^^^^^

warning: associated items `new`, `instr_count`, and `validate` are never used
     --> bootstrap/src/compiler.rs:30879:12
      |
30878 | impl AsmConfig {
      | -------------- associated items in this implementation
30879 |     pub fn new(name: &str) -> Self {
      |            ^^^
...
30890 |     pub fn instr_count(&self, bytes: u32) -> u32 {
      |            ^^^^^^^^^^^
...
30897 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: function `align_address` is never used
     --> bootstrap/src/compiler.rs:30909:8
      |
30909 | pub fn align_address(addr: u32, alignment: u32) -> u32 {
      |        ^^^^^^^^^^^^^

warning: struct `HirAssembler` is never constructed
     --> bootstrap/src/compiler.rs:30922:12
      |
30922 | pub struct HirAssembler {
      |            ^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:30933:12
      |
30932 | impl HirAssembler {
      | ----------------- associated items in this implementation
30933 |     pub fn new(name: &str) -> Self {
      |            ^^^
...
30948 |     pub fn with_config(config: AsmConfig) -> Self {
      |            ^^^^^^^^^^^
...
30962 |     pub fn set_section(&mut self, name: &str) -> Result<(), String> {
      |            ^^^^^^^^^^^
...
30972 |     pub fn emit_r(&mut self, opcode: u32, rd: u32, rs1: u32, rs2: u32) -> u32 {
      |            ^^^^^^
...
30982 |     pub fn emit_i(&mut self, opcode: u32, rd: u32, rs1: u32, imm: u32) -> u32 {
      |            ^^^^^^
...
30992 |     pub fn emit_gf16(&mut self, opcode: u32, rd: u32, rs1: u32, rs2: u32) -> u32 {
      |            ^^^^^^^^^
...
31002 |     pub fn define_symbol(&mut self, name: &str, is_global: bool) {
      |            ^^^^^^^^^^^^^
...
31010 |     pub fn resolve_symbol(&self, name: &str) -> Option<u32> {
      |            ^^^^^^^^^^^^^^
...
31017 |     pub fn add_relocation(&mut self, offset: u32, kind: AsmRelocKind, symbol: &str, addend: u32) {
      |            ^^^^^^^^^^^^^^
...
31022 |     pub fn apply_relocations(&mut self) -> Result<u32, String> {
      |            ^^^^^^^^^^^^^^^^^
...
31045 |     pub fn total_bytes(&self) -> u32 {
      |            ^^^^^^^^^^^
...
31049 |     pub fn total_instructions(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
31053 |     pub fn encode_all(&self) -> Vec<u32> {
      |            ^^^^^^^^^^
...
31057 |     pub fn to_binary(&self) -> Vec<u8> {
      |            ^^^^^^^^^
...
31066 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: fields `duty_cycle` and `phase_ns` are never read
     --> bootstrap/src/compiler.rs:31078:9
      |
31076 | pub struct TbClockCfg {
      |            ---------- fields in this struct
31077 |     pub period_ns: u32,
31078 |     pub duty_cycle: u32,
      |         ^^^^^^^^^^
31079 |     pub phase_ns: u32,
      |         ^^^^^^^^
      |
      = note: `TbClockCfg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: method `reset_end_cycle` is never used
     --> bootstrap/src/compiler.rs:31112:12
      |
31103 | impl TbResetCfg {
      | --------------- method in this implementation
...
31112 |     pub fn reset_end_cycle(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^

warning: associated items `new` and `validate` are never used
     --> bootstrap/src/compiler.rs:31125:12
      |
31124 | impl TbStimulus {
      | --------------- associated items in this implementation
31125 |     pub fn new(cycle: u32, signal: &str, value: u32) -> Self {
      |            ^^^
...
31133 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: associated items `new`, `with_mask`, and `validate` are never used
     --> bootstrap/src/compiler.rs:31151:12
      |
31150 | impl TbCheck {
      | ------------ associated items in this implementation
31151 |     pub fn new(cycle: u32, signal: &str, expected: u32) -> Self {
      |            ^^^
...
31160 |     pub fn with_mask(cycle: u32, signal: &str, expected: u32, mask: u32) -> Self {
      |            ^^^^^^^^^
...
31169 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: field `fail_fast` is never read
     --> bootstrap/src/compiler.rs:31185:9
      |
31179 | pub struct TbConfig {
      |            -------- field in this struct
...
31185 |     pub fail_fast: bool,
      |         ^^^^^^^^^
      |
      = note: `TbConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: method `validate` is never used
     --> bootstrap/src/compiler.rs:31200:12
      |
31188 | impl TbConfig {
      | ------------- method in this implementation
...
31200 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: methods `add_stimulus`, `add_check`, `add_check_masked`, and `validate` are never used
     --> bootstrap/src/compiler.rs:31234:12
      |
31222 | impl HirTestbench {
      | ----------------- methods in this implementation
...
31234 |     pub fn add_stimulus(&mut self, cycle: u32, signal: &str, value: u32) {
      |            ^^^^^^^^^^^^
...
31238 |     pub fn add_check(&mut self, cycle: u32, signal: &str, expected: u32) {
      |            ^^^^^^^^^
...
31242 |     pub fn add_check_masked(&mut self, cycle: u32, signal: &str, expected: u32, mask: u32) {
      |            ^^^^^^^^^^^^^^^^
...
31368 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: enum `VcdVarKind` is never used
     --> bootstrap/src/compiler.rs:31381:10
      |
31381 | pub enum VcdVarKind {
      |          ^^^^^^^^^^

warning: method `vcd_str` is never used
     --> bootstrap/src/compiler.rs:31389:12
      |
31388 | impl VcdVarKind {
      | --------------- method in this implementation
31389 |     pub fn vcd_str(&self) -> &'static str {
      |            ^^^^^^^

warning: struct `VcdVar` is never constructed
     --> bootstrap/src/compiler.rs:31400:12
      |
31400 | pub struct VcdVar {
      |            ^^^^^^

warning: associated items `wire`, `reg`, and `validate` are never used
     --> bootstrap/src/compiler.rs:31408:12
      |
31407 | impl VcdVar {
      | ----------- associated items in this implementation
31408 |     pub fn wire(size: u32, name: &str, ident: &str) -> Self {
      |            ^^^^
...
31417 |     pub fn reg(size: u32, name: &str, ident: &str) -> Self {
      |            ^^^
...
31426 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `VcdChange` is never constructed
     --> bootstrap/src/compiler.rs:31439:12
      |
31439 | pub struct VcdChange {
      |            ^^^^^^^^^

warning: associated items `new`, `format_binary`, and `validate` are never used
     --> bootstrap/src/compiler.rs:31447:12
      |
31446 | impl VcdChange {
      | -------------- associated items in this implementation
31447 |     pub fn new(ts: u64, ident: &str, value: u32, width: u32) -> Self {
      |            ^^^
...
31456 |     pub fn format_binary(&self) -> String {
      |            ^^^^^^^^^^^^^
...
31472 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `VcdHeader` is never constructed
     --> bootstrap/src/compiler.rs:31485:12
      |
31485 | pub struct VcdHeader {
      |            ^^^^^^^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:31493:12
      |
31492 | impl VcdHeader {
      | -------------- associated function in this implementation
31493 |     pub fn new(version: &str, timescale: &str) -> Self {
      |            ^^^

warning: struct `HirVcdTrace` is never constructed
     --> bootstrap/src/compiler.rs:31504:12
      |
31504 | pub struct HirVcdTrace {
      |            ^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:31512:12
      |
31511 | impl HirVcdTrace {
      | ---------------- associated items in this implementation
31512 |     pub fn new(version: &str) -> Self {
      |            ^^^
...
31521 |     pub fn add_var(&mut self, kind: VcdVarKind, size: u32, name: &str) {
      |            ^^^^^^^
...
31532 |     pub fn add_wire(&mut self, size: u32, name: &str) {
      |            ^^^^^^^^
...
31536 |     pub fn add_reg(&mut self, size: u32, name: &str) {
      |            ^^^^^^^
...
31540 |     pub fn record(&mut self, timestamp_ps: u64, var_name: &str, value: u32) {
      |            ^^^^^^
...
31552 |     pub fn changes_at(&self, ts: u64) -> u32 {
      |            ^^^^^^^^^^
...
31556 |     pub fn earliest_timestamp(&self) -> u64 {
      |            ^^^^^^^^^^^^^^^^^^
...
31564 |     pub fn latest_timestamp(&self) -> u64 {
      |            ^^^^^^^^^^^^^^^^
...
31572 |     pub fn duration_ps(&self) -> u64 {
      |            ^^^^^^^^^^^
...
31580 |     pub fn ident_from_index(idx: usize) -> String {
      |            ^^^^^^^^^^^^^^^^
...
31593 |     pub fn emit_vcd(&self) -> String {
      |            ^^^^^^^^
...
31636 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `LinkSection` is never constructed
     --> bootstrap/src/compiler.rs:31649:12
      |
31649 | pub struct LinkSection {
      |            ^^^^^^^^^^^

warning: associated items `text`, `data`, `bss`, and `end` are never used
     --> bootstrap/src/compiler.rs:31658:12
      |
31657 | impl LinkSection {
      | ---------------- associated items in this implementation
31658 |     pub fn text(vaddr: u32, size: u32) -> Self {
      |            ^^^^
...
31668 |     pub fn data(vaddr: u32, size: u32) -> Self {
      |            ^^^^
...
31678 |     pub fn bss(vaddr: u32, size: u32) -> Self {
      |            ^^^
...
31688 |     pub fn end(&self) -> u32 {
      |            ^^^

warning: struct `LinkedSymbol` is never constructed
     --> bootstrap/src/compiler.rs:31694:12
      |
31694 | pub struct LinkedSymbol {
      |            ^^^^^^^^^^^^

warning: associated items `new`, `is_global`, `is_local`, and `validate` are never used
     --> bootstrap/src/compiler.rs:31704:12
      |
31703 | impl LinkedSymbol {
      | ----------------- associated items in this implementation
31704 |     pub fn new(name: &str, value: u32, section_idx: u32) -> Self {
      |            ^^^
...
31715 |     pub fn is_global(&self) -> bool {
      |            ^^^^^^^^^
...
31719 |     pub fn is_local(&self) -> bool {
      |            ^^^^^^^^
...
31723 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `LinkSegment` is never constructed
     --> bootstrap/src/compiler.rs:31733:12
      |
31733 | pub struct LinkSegment {
      |            ^^^^^^^^^^^

warning: associated functions `text` and `data` are never used
     --> bootstrap/src/compiler.rs:31742:12
      |
31741 | impl LinkSegment {
      | ---------------- associated functions in this implementation
31742 |     pub fn text(vaddr: u32, size: u32) -> Self {
      |            ^^^^
...
31752 |     pub fn data(vaddr: u32, memsz: u32, filesz: u32) -> Self {
      |            ^^^^

warning: struct `LinkerConfig` is never constructed
     --> bootstrap/src/compiler.rs:31764:12
      |
31764 | pub struct LinkerConfig {
      |            ^^^^^^^^^^^^

warning: associated items `new`, `stack_top`, `heap_start`, and `validate` are never used
     --> bootstrap/src/compiler.rs:31774:12
      |
31773 | impl LinkerConfig {
      | ----------------- associated items in this implementation
31774 |     pub fn new(entry: &str) -> Self {
      |            ^^^
...
31785 |     pub fn stack_top(&self) -> u32 {
      |            ^^^^^^^^^
...
31789 |     pub fn heap_start(&self) -> u32 {
      |            ^^^^^^^^^^
...
31795 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `LinkResult` is never constructed
     --> bootstrap/src/compiler.rs:31805:12
      |
31805 | pub struct LinkResult {
      |            ^^^^^^^^^^

warning: associated items `ok`, `fail`, `total_image_size`, and `passed` are never used
     --> bootstrap/src/compiler.rs:31816:12
      |
31815 | impl LinkResult {
      | --------------- associated items in this implementation
31816 |     pub fn ok(entry: u32, text: u32, data: u32, bss: u32) -> Self {
      |            ^^
...
31828 |     pub fn fail(errors: u32) -> Self {
      |            ^^^^
...
31840 |     pub fn total_image_size(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^
...
31846 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `HirLinker` is never constructed
     --> bootstrap/src/compiler.rs:31852:12
      |
31852 | pub struct HirLinker {
      |            ^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:31862:12
      |
31861 | impl HirLinker {
      | -------------- associated items in this implementation
31862 |     pub fn new(entry: &str) -> Self {
      |            ^^^
...
31873 |     pub fn add_object(&mut self, asm: &HirAssembler) {
      |            ^^^^^^^^^^
...
31882 |     pub fn link(&mut self) -> LinkResult {
      |            ^^^^
...
31916 |     pub fn resolve_entry(&self) -> Option<u32> {
      |            ^^^^^^^^^^^^^
...
31928 |     pub fn resolve_symbol(&self, name: &str) -> Option<u32> {
      |            ^^^^^^^^^^^^^^
...
31935 |     pub fn emit_image(&self) -> Vec<u8> {
      |            ^^^^^^^^^^
...
31946 |     pub fn emit_hex(&self) -> String {
      |            ^^^^^^^^
...
31972 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: enum `ArcKind` is never used
     --> bootstrap/src/compiler.rs:31982:10
      |
31982 | pub enum ArcKind {
      |          ^^^^^^^

warning: associated function `from_i8` is never used
     --> bootstrap/src/compiler.rs:31991:12
      |
31990 | impl ArcKind {
      | ------------ associated function in this implementation
31991 |     pub fn from_i8(v: i8) -> Self {
      |            ^^^^^^^

warning: struct `TimingArc` is never constructed
     --> bootstrap/src/compiler.rs:32004:12
      |
32004 | pub struct TimingArc {
      |            ^^^^^^^^^

warning: associated functions `comb`, `reg_to_reg`, and `input_to_reg` are never used
     --> bootstrap/src/compiler.rs:32012:12
      |
32011 | impl TimingArc {
      | -------------- associated functions in this implementation
32012 |     pub fn comb(source: &str, sink: &str, delay_ps: u32) -> Self {
      |            ^^^^
...
32020 |     pub fn reg_to_reg(source: &str, sink: &str, delay_ps: u32) -> Self {
      |            ^^^^^^^^^^
...
32028 |     pub fn input_to_reg(source: &str, sink: &str, delay_ps: u32) -> Self {
      |            ^^^^^^^^^^^^

warning: struct `TimingPath` is never constructed
     --> bootstrap/src/compiler.rs:32039:12
      |
32039 | pub struct TimingPath {
      |            ^^^^^^^^^^

warning: associated items `new`, `is_met`, and `is_violated` are never used
     --> bootstrap/src/compiler.rs:32048:12
      |
32047 | impl TimingPath {
      | --------------- associated items in this implementation
32048 |     pub fn new(start: &str, end: &str, delay: u32, slack: i64) -> Self {
      |            ^^^
...
32057 |     pub fn is_met(&self) -> bool {
      |            ^^^^^^
...
32060 |     pub fn is_violated(&self) -> bool {
      |            ^^^^^^^^^^^

warning: struct `TimingConstraint` is never constructed
     --> bootstrap/src/compiler.rs:32066:12
      |
32066 | pub struct TimingConstraint {
      |            ^^^^^^^^^^^^^^^^

warning: associated items `from_period`, `from_mhz`, and `validate` are never used
     --> bootstrap/src/compiler.rs:32073:12
      |
32072 | impl TimingConstraint {
      | --------------------- associated items in this implementation
32073 |     pub fn from_period(name: &str, period_ps: u32) -> Self {
      |            ^^^^^^^^^^^
...
32091 |     pub fn from_mhz(name: &str, mhz: u32) -> Self {
      |            ^^^^^^^^
...
32103 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `TimingReport` is never constructed
     --> bootstrap/src/compiler.rs:32116:12
      |
32116 | pub struct TimingReport {
      |            ^^^^^^^^^^^^

warning: associated items `ok`, `fail`, and `passed` are never used
     --> bootstrap/src/compiler.rs:32127:12
      |
32126 | impl TimingReport {
      | ----------------- associated items in this implementation
32127 |     pub fn ok(critical_ps: u32, fmax: u32) -> Self {
      |            ^^
...
32138 |     pub fn fail(critical_ps: u32) -> Self {
      |            ^^^^
...
32149 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `TimingModel` is never constructed
     --> bootstrap/src/compiler.rs:32154:12
      |
32154 | pub struct TimingModel;
      |            ^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32157:15
      |
32156 | impl TimingModel {
      | ---------------- associated items in this implementation
32157 |     pub const LUT_DELAY_PS: u32 = 100;
      |               ^^^^^^^^^^^^
32158 |     pub const BRAM_DELAY_PS: u32 = 2000;
      |               ^^^^^^^^^^^^^
32159 |     pub const DSP_DELAY_PS: u32 = 2500;
      |               ^^^^^^^^^^^^
32160 |     pub const ROUTING_DELAY_PS: u32 = 300;
      |               ^^^^^^^^^^^^^^^^
32161 |     pub const SETUP_TIME_PS: u32 = 200;
      |               ^^^^^^^^^^^^^
32162 |     pub const HOLD_TIME_PS: u32 = 50;
      |               ^^^^^^^^^^^^
32163 |
32164 |     pub fn est_comb_delay(num_luts: u32) -> u32 {
      |            ^^^^^^^^^^^^^^
...
32168 |     pub fn est_reg_to_reg_delay(num_luts: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^
...
32172 |     pub fn slack(delay_ps: u32, constraint_ps: u32) -> i64 {
      |            ^^^^^
...
32176 |     pub fn fmax_from_delay(delay_ps: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32183 |     pub fn analyze_module(module: &HirModule, constraint: &TimingConstraint) -> TimingReport {
      |            ^^^^^^^^^^^^^^

warning: function `path_delay` is never used
     --> bootstrap/src/compiler.rs:32244:8
      |
32244 | pub fn path_delay(arcs: &[TimingArc]) -> u32 {
      |        ^^^^^^^^^^

warning: function `worst_path_delay` is never used
     --> bootstrap/src/compiler.rs:32248:8
      |
32248 | pub fn worst_path_delay(paths: &[TimingPath]) -> u32 {
      |        ^^^^^^^^^^^^^^^^

warning: struct `PowerDomain` is never constructed
     --> bootstrap/src/compiler.rs:32256:12
      |
32256 | pub struct PowerDomain {
      |            ^^^^^^^^^^^

warning: associated items `new` and `validate` are never used
     --> bootstrap/src/compiler.rs:32264:12
      |
32263 | impl PowerDomain {
      | ---------------- associated items in this implementation
32264 |     pub fn new(name: &str, clock_mhz: u32) -> Self {
      |            ^^^
...
32272 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `PowerEstimate` is never constructed
     --> bootstrap/src/compiler.rs:32285:12
      |
32285 | pub struct PowerEstimate {
      |            ^^^^^^^^^^^^^

warning: struct `PowerModel` is never constructed
     --> bootstrap/src/compiler.rs:32295:12
      |
32295 | pub struct PowerModel;
      |            ^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32298:15
      |
32297 | impl PowerModel {
      | --------------- associated items in this implementation
32298 |     pub const LUT_POWER_UW_PER_MHZ: u32 = 10;
      |               ^^^^^^^^^^^^^^^^^^^^
32299 |     pub const FF_POWER_UW_PER_MHZ: u32 = 5;
      |               ^^^^^^^^^^^^^^^^^^^
32300 |     pub const BRAM_POWER_UW_PER_MHZ: u32 = 50;
      |               ^^^^^^^^^^^^^^^^^^^^^
32301 |     pub const DSP_POWER_UW_PER_MHZ: u32 = 100;
      |               ^^^^^^^^^^^^^^^^^^^^
32302 |     pub const IO_POWER_UW_PER_MHZ: u32 = 20;
      |               ^^^^^^^^^^^^^^^^^^^
32303 |     pub const STATIC_BASE_MW: u32 = 50;
      |               ^^^^^^^^^^^^^^
32304 |     pub const STATIC_PER_RESOURCE_UW: u32 = 100;
      |               ^^^^^^^^^^^^^^^^^^^^^^
32305 |
32306 |     pub fn est_lut_dynamic(luts: u32, clock_mhz: u32, toggle_rate: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32309 |     pub fn est_ff_dynamic(ffs: u32, clock_mhz: u32, toggle_rate: u32) -> u32 {
      |            ^^^^^^^^^^^^^^
...
32312 |     pub fn est_bram_dynamic(brams: u32, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^
...
32315 |     pub fn est_dsp_dynamic(dsps: u32, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32318 |     pub fn est_static(total_resources: u32) -> u32 {
      |            ^^^^^^^^^^
...
32322 |     pub fn estimate_module(module: &HirModule, clock_mhz: u32, toggle_rate: u32) -> PowerEstimate {
      |            ^^^^^^^^^^^^^^^

warning: enum `RegionKind` is never used
     --> bootstrap/src/compiler.rs:32362:10
      |
32362 | pub enum RegionKind {
      |          ^^^^^^^^^^

warning: struct `PlacementRegion` is never constructed
     --> bootstrap/src/compiler.rs:32371:12
      |
32371 | pub struct PlacementRegion {
      |            ^^^^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32381:12
      |
32380 | impl PlacementRegion {
      | -------------------- associated items in this implementation
32381 |     pub fn logic(name: &str, x0: u32, y0: u32, x1: u32, y1: u32) -> Self {
      |            ^^^^^
...
32391 |     pub fn bram_col(name: &str, col: u32, y0: u32, y1: u32) -> Self {
      |            ^^^^^^^^
...
32401 |     pub fn dsp_col(name: &str, col: u32, y0: u32, y1: u32) -> Self {
      |            ^^^^^^^
...
32411 |     pub fn width(&self) -> u32 {
      |            ^^^^^
...
32414 |     pub fn height(&self) -> u32 {
      |            ^^^^^^
...
32417 |     pub fn area(&self) -> u32 {
      |            ^^^^
...
32420 |     pub fn overlaps(&self, other: &PlacementRegion) -> bool {
      |            ^^^^^^^^
...
32423 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `PlacementHint` is never constructed
     --> bootstrap/src/compiler.rs:32439:12
      |
32439 | pub struct PlacementHint {
      |            ^^^^^^^^^^^^^

warning: associated items `new` and `validate` are never used
     --> bootstrap/src/compiler.rs:32446:12
      |
32445 | impl PlacementHint {
      | ------------------ associated items in this implementation
32446 |     pub fn new(module: &str, region: &str, priority: u32) -> Self {
      |            ^^^
...
32453 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `RouteConstraint` is never constructed
     --> bootstrap/src/compiler.rs:32466:12
      |
32466 | pub struct RouteConstraint {
      |            ^^^^^^^^^^^^^^^

warning: struct `Floorplan` is never constructed
     --> bootstrap/src/compiler.rs:32473:12
      |
32473 | pub struct Floorplan {
      |            ^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32482:12
      |
32481 | impl Floorplan {
      | -------------- associated items in this implementation
32482 |     pub fn new(name: &str, device: &str) -> Self {
      |            ^^^
...
32492 |     pub fn add_region(&mut self, region: PlacementRegion) {
      |            ^^^^^^^^^^
...
32496 |     pub fn add_hint(&mut self, module: &str, region: &str, priority: u32) {
      |            ^^^^^^^^
...
32501 |     pub fn add_route(&mut self, source: &str, sink: &str, max_delay_ps: u32) {
      |            ^^^^^^^^^
...
32509 |     pub fn auto_floorplan(&mut self, module: &HirModule) {
      |            ^^^^^^^^^^^^^^
...
32550 |     pub fn check_overlaps(&self) -> Vec<(String, String)> {
      |            ^^^^^^^^^^^^^^
...
32562 |     pub fn total_area(&self) -> u32 {
      |            ^^^^^^^^^^
...
32566 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `BitstreamMeta` is never constructed
     --> bootstrap/src/compiler.rs:32579:12
      |
32579 | pub struct BitstreamMeta {
      |            ^^^^^^^^^^^^^

warning: associated items `new`, `compute_checksum`, `with_checksum`, `verify`, and `validate` are never used
     --> bootstrap/src/compiler.rs:32589:12
      |
32588 | impl BitstreamMeta {
      | ------------------ associated items in this implementation
32589 |     pub fn new(device: &str, size_bytes: u32) -> Self {
      |            ^^^
...
32600 |     pub fn compute_checksum(data: &[u8]) -> u64 {
      |            ^^^^^^^^^^^^^^^^
...
32609 |     pub fn with_checksum(mut self, data: &[u8]) -> Self {
      |            ^^^^^^^^^^^^^
...
32615 |     pub fn verify(&self, data: &[u8]) -> bool {
      |            ^^^^^^
...
32619 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `FpgaNode` is never constructed
     --> bootstrap/src/compiler.rs:32632:12
      |
32632 | pub struct FpgaNode {
      |            ^^^^^^^^

warning: associated items `arty_a7`, `util`, `remaining`, and `validate` are never used
     --> bootstrap/src/compiler.rs:32643:12
      |
32642 | impl FpgaNode {
      | ------------- associated items in this implementation
32643 |     pub fn arty_a7(name: &str) -> Self {
      |            ^^^^^^^
...
32654 |     pub fn util(&self, used_luts: u32) -> u32 {
      |            ^^^^
...
32660 |     pub fn remaining(&self, used_luts: u32) -> u32 {
      |            ^^^^^^^^^
...
32663 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `InterFpgaLink` is never constructed
     --> bootstrap/src/compiler.rs:32676:12
      |
32676 | pub struct InterFpgaLink {
      |            ^^^^^^^^^^^^^

warning: associated items `lvds`, `serdes`, and `bandwidth_mbps` are never used
     --> bootstrap/src/compiler.rs:32685:12
      |
32684 | impl InterFpgaLink {
      | ------------------ associated items in this implementation
32685 |     pub fn lvds(a: u32, b: u32, width: u32) -> Self {
      |            ^^^^
...
32694 |     pub fn serdes(a: u32, b: u32) -> Self {
      |            ^^^^^^
...
32703 |     pub fn bandwidth_mbps(&self) -> u32 {
      |            ^^^^^^^^^^^^^^

warning: struct `PartitionAssign` is never constructed
     --> bootstrap/src/compiler.rs:32709:12
      |
32709 | pub struct PartitionAssign {
      |            ^^^^^^^^^^^^^^^

warning: struct `PartitionResult` is never constructed
     --> bootstrap/src/compiler.rs:32719:12
      |
32719 | pub struct PartitionResult {
      |            ^^^^^^^^^^^^^^^

warning: associated items `ok`, `fail`, and `passed` are never used
     --> bootstrap/src/compiler.rs:32729:12
      |
32728 | impl PartitionResult {
      | -------------------- associated items in this implementation
32729 |     pub fn ok(fpgas: u32, assigns: u32, links: u32, bw: u32) -> Self {
      |            ^^
...
32739 |     pub fn fail(errors: u32) -> Self {
      |            ^^^^
...
32749 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `HirPartitioner` is never constructed
     --> bootstrap/src/compiler.rs:32755:12
      |
32755 | pub struct HirPartitioner {
      |            ^^^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32762:12
      |
32761 | impl HirPartitioner {
      | ------------------- associated items in this implementation
32762 |     pub fn new() -> Self {
      |            ^^^
...
32770 |     pub fn add_fpga(&mut self, fpga: FpgaNode) {
      |            ^^^^^^^^
...
32774 |     pub fn add_link(&mut self, link: InterFpgaLink) {
      |            ^^^^^^^^
...
32778 |     pub fn total_bandwidth(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32782 |     pub fn fpga_usage(&self, fpga_idx: u32) -> (u32, u32, u32, u32) {
      |            ^^^^^^^^^^
...
32793 |     pub fn fits(&self, fpga_idx: u32, luts: u32, ffs: u32, bram: u32, dsp: u32) -> bool {
      |            ^^^^
...
32805 |     pub fn assign(
      |            ^^^^^^
...
32828 |     pub fn auto_partition(&mut self, modules: &[(String, u32, u32, u32, u32)]) -> PartitionResult {
      |            ^^^^^^^^^^^^^^
...
32852 |     fn check_balanced(&self) -> bool {
      |        ^^^^^^^^^^^^^^

warning: enum `ConnEdgeKind` is never used
     --> bootstrap/src/compiler.rs:32872:10
      |
32872 | pub enum ConnEdgeKind {
      |          ^^^^^^^^^^^^

warning: struct `ConnEdge` is never constructed
     --> bootstrap/src/compiler.rs:32880:12
      |
32880 | pub struct ConnEdge {
      |            ^^^^^^^^

warning: associated functions `data` and `clock` are never used
     --> bootstrap/src/compiler.rs:32888:12
      |
32887 | impl ConnEdge {
      | ------------- associated functions in this implementation
32888 |     pub fn data(source: &str, sink: &str, width: u32) -> Self {
      |            ^^^^
...
32896 |     pub fn clock(source: &str, sink: &str) -> Self {
      |            ^^^^^

warning: struct `FanoutInfo` is never constructed
     --> bootstrap/src/compiler.rs:32907:12
      |
32907 | pub struct FanoutInfo {
      |            ^^^^^^^^^^

warning: methods `is_high_fanout` and `is_clock_network` are never used
     --> bootstrap/src/compiler.rs:32914:12
      |
32913 | impl FanoutInfo {
      | --------------- methods in this implementation
32914 |     pub fn is_high_fanout(&self) -> bool {
      |            ^^^^^^^^^^^^^^
...
32917 |     pub fn is_clock_network(&self) -> bool {
      |            ^^^^^^^^^^^^^^^^

warning: struct `RouteEstimate` is never constructed
     --> bootstrap/src/compiler.rs:32923:12
      |
32923 | pub struct RouteEstimate {
      |            ^^^^^^^^^^^^^

warning: method `passed` is never used
     --> bootstrap/src/compiler.rs:32933:12
      |
32932 | impl RouteEstimate {
      | ------------------ method in this implementation
32933 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `RouteModel` is never constructed
     --> bootstrap/src/compiler.rs:32938:12
      |
32938 | pub struct RouteModel;
      |            ^^^^^^^^^^

warning: associated items `LOCAL_WIRE_UM`, `MEDIUM_WIRE_UM`, `LONG_WIRE_UM`, `est_wire_length`, and `est_congestion` are never used
     --> bootstrap/src/compiler.rs:32941:15
      |
32940 | impl RouteModel {
      | --------------- associated items in this implementation
32941 |     pub const LOCAL_WIRE_UM: u32 = 500;
      |               ^^^^^^^^^^^^^
32942 |     pub const MEDIUM_WIRE_UM: u32 = 2000;
      |               ^^^^^^^^^^^^^^
32943 |     pub const LONG_WIRE_UM: u32 = 5000;
      |               ^^^^^^^^^^^^
32944 |
32945 |     pub fn est_wire_length(fanout: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32954 |     pub fn est_congestion(nets: u32, die_area_mm2: u32) -> u32 {
      |            ^^^^^^^^^^^^^^

warning: struct `HirRouter` is never constructed
     --> bootstrap/src/compiler.rs:32963:12
      |
32963 | pub struct HirRouter {
      |            ^^^^^^^^^

warning: associated items `new`, `add_edge`, `analyze_fanout`, and `analyze_module` are never used
     --> bootstrap/src/compiler.rs:32969:12
      |
32968 | impl HirRouter {
      | -------------- associated items in this implementation
32969 |     pub fn new() -> Self {
      |            ^^^
...
32976 |     pub fn add_edge(&mut self, edge: ConnEdge) {
      |            ^^^^^^^^
...
32980 |     pub fn analyze_fanout(&mut self) {
      |            ^^^^^^^^^^^^^^
...
32999 |     pub fn analyze_module(module: &HirModule) -> RouteEstimate {
      |            ^^^^^^^^^^^^^^

warning: struct `ScanChain` is never constructed
     --> bootstrap/src/compiler.rs:33041:12
      |
33041 | pub struct ScanChain {
      |            ^^^^^^^^^

warning: associated items `new`, `cycles`, `bytes`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33048:12
      |
33047 | impl ScanChain {
      | -------------- associated items in this implementation
33048 |     pub fn new(name: &str, regs: u32) -> Self {
      |            ^^^
...
33055 |     pub fn cycles(&self) -> u32 {
      |            ^^^^^^
...
33058 |     pub fn bytes(&self) -> u32 {
      |            ^^^^^
...
33061 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: enum `BistKind` is never used
     --> bootstrap/src/compiler.rs:33074:10
      |
33074 | pub enum BistKind {
      |          ^^^^^^^^

warning: struct `BistCtrl` is never constructed
     --> bootstrap/src/compiler.rs:33081:12
      |
33081 | pub struct BistCtrl {
      |            ^^^^^^^^

warning: associated items `memory`, `logic`, `cycles`, `coverage`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33089:12
      |
33088 | impl BistCtrl {
      | ------------- associated items in this implementation
33089 |     pub fn memory(name: &str, patterns: u32) -> Self {
      |            ^^^^^^
...
33097 |     pub fn logic(name: &str, patterns: u32) -> Self {
      |            ^^^^^
...
33105 |     pub fn cycles(&self) -> u32 {
      |            ^^^^^^
...
33108 |     pub fn coverage(&self, total_faults: u32) -> u32 {
      |            ^^^^^^^^
...
33114 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `JtagTap` is never constructed
     --> bootstrap/src/compiler.rs:33127:12
      |
33127 | pub struct JtagTap {
      |            ^^^^^^^

warning: associated items `new`, `total_bits`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33136:12
      |
33135 | impl JtagTap {
      | ------------ associated items in this implementation
33136 |     pub fn new(name: &str, ir_width: u32, idcode: u32) -> Self {
      |            ^^^
...
33145 |     pub fn total_bits(&self) -> u32 {
      |            ^^^^^^^^^^
...
33148 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `TestCoverage` is never constructed
     --> bootstrap/src/compiler.rs:33161:12
      |
33161 | pub struct TestCoverage {
      |            ^^^^^^^^^^^^

warning: associated items `new` and `is_acceptable` are never used
     --> bootstrap/src/compiler.rs:33169:12
      |
33168 | impl TestCoverage {
      | ----------------- associated items in this implementation
33169 |     pub fn new(scan: u32, bist: u32, atpg: u32) -> Self {
      |            ^^^
...
33177 |     pub fn is_acceptable(&self) -> bool {
      |            ^^^^^^^^^^^^^

warning: struct `HirDft` is never constructed
     --> bootstrap/src/compiler.rs:33183:12
      |
33183 | pub struct HirDft {
      |            ^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:33191:12
      |
33190 | impl HirDft {
      | ----------- associated items in this implementation
33191 |     pub fn new() -> Self {
      |            ^^^
...
33200 |     pub fn add_scan_chain(&mut self, name: &str, regs: u32) {
      |            ^^^^^^^^^^^^^^
...
33204 |     pub fn add_memory_bist(&mut self, name: &str, patterns: u32) {
      |            ^^^^^^^^^^^^^^^
...
33208 |     pub fn add_logic_bist(&mut self, name: &str, patterns: u32) {
      |            ^^^^^^^^^^^^^^
...
33212 |     pub fn set_jtag(&mut self, tap: JtagTap) {
      |            ^^^^^^^^
...
33216 |     pub fn total_scan_regs(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
33220 |     pub fn total_scan_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^
...
33224 |     pub fn total_bist_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^
...
33228 |     pub fn est_test_time_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^
...
33232 |     pub fn coverage_estimate(&self) -> TestCoverage {
      |            ^^^^^^^^^^^^^^^^^
...
33243 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `PllConfig` is never constructed
     --> bootstrap/src/compiler.rs:33259:12
      |
33259 | pub struct PllConfig {
      |            ^^^^^^^^^

warning: associated items `new`, `period_ps`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33269:12
      |
33268 | impl PllConfig {
      | -------------- associated items in this implementation
33269 |     pub fn new(name: &str, input_mhz: u32, output_mhz: u32) -> Self {
      |            ^^^
...
33279 |     pub fn period_ps(&self) -> u32 {
      |            ^^^^^^^^^
...
33285 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `ClockBuffer` is never constructed
     --> bootstrap/src/compiler.rs:33298:12
      |
33298 | pub struct ClockBuffer {
      |            ^^^^^^^^^^^

warning: associated functions `bufg` and `bufh` are never used
     --> bootstrap/src/compiler.rs:33305:12
      |
33304 | impl ClockBuffer {
      | ---------------- associated functions in this implementation
33305 |     pub fn bufg(name: &str) -> Self {
      |            ^^^^
...
33312 |     pub fn bufh(name: &str) -> Self {
      |            ^^^^

warning: struct `ClockTree` is never constructed
     --> bootstrap/src/compiler.rs:33322:12
      |
33322 | pub struct ClockTree {
      |            ^^^^^^^^^

warning: associated items `new`, `tree_delay_ps`, and `skew_ok` are never used
     --> bootstrap/src/compiler.rs:33330:12
      |
33329 | impl ClockTree {
      | -------------- associated items in this implementation
33330 |     pub fn new(root: &str, levels: u32, bufs: u32) -> Self {
      |            ^^^
...
33338 |     pub fn tree_delay_ps(&self, buf_delay: u32) -> u32 {
      |            ^^^^^^^^^^^^^
...
33341 |     pub fn skew_ok(&self, max_allowed_ps: u32) -> bool {
      |            ^^^^^^^

warning: struct `CtsReport` is never constructed
     --> bootstrap/src/compiler.rs:33347:12
      |
33347 | pub struct CtsReport {
      |            ^^^^^^^^^

warning: method `passed` is never used
     --> bootstrap/src/compiler.rs:33357:12
      |
33356 | impl CtsReport {
      | -------------- method in this implementation
33357 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `CtsModel` is never constructed
     --> bootstrap/src/compiler.rs:33362:12
      |
33362 | pub struct CtsModel;
      |            ^^^^^^^^

warning: associated functions `est_buffers_needed` and `est_tree_levels` are never used
     --> bootstrap/src/compiler.rs:33365:12
      |
33364 | impl CtsModel {
      | ------------- associated functions in this implementation
33365 |     pub fn est_buffers_needed(num_sinks: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
33372 |     pub fn est_tree_levels(num_sinks: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^

warning: struct `HirCts` is never constructed
     --> bootstrap/src/compiler.rs:33384:12
      |
33384 | pub struct HirCts {
      |            ^^^^^^

warning: associated items `new`, `add_pll`, `build_tree`, `report`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33391:12
      |
33390 | impl HirCts {
      | ----------- associated items in this implementation
33391 |     pub fn new() -> Self {
      |            ^^^
...
33399 |     pub fn add_pll(&mut self, pll: PllConfig) {
      |            ^^^^^^^
...
33403 |     pub fn build_tree(&mut self, root: &str, num_sinks: u32) {
      |            ^^^^^^^^^^
...
33413 |     pub fn report(&self) -> CtsReport {
      |            ^^^^^^
...
33431 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `ResetSynchronizer` is never constructed
     --> bootstrap/src/compiler.rs:33441:12
      |
33441 | pub struct ResetSynchronizer {
      |            ^^^^^^^^^^^^^^^^^

warning: associated items `new`, `meta_stability_mttf_ps`, `latency_ps`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33450:12
      |
33449 | impl ResetSynchronizer {
      | ---------------------- associated items in this implementation
33450 |     pub fn new(name: &str, stages: u32, in_clk: &str, out_clk: &str) -> Self {
      |            ^^^
...
33459 |     pub fn meta_stability_mttf_ps(&self, clk_period_ps: u32) -> u64 {
      |            ^^^^^^^^^^^^^^^^^^^^^^
...
33466 |     pub fn latency_ps(&self, clk_period_ps: u32) -> u32 {
      |            ^^^^^^^^^^
...
33469 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `ResetDomain` is never constructed
     --> bootstrap/src/compiler.rs:33482:12
      |
33482 | pub struct ResetDomain {
      |            ^^^^^^^^^^^

warning: associated items `new` and `add_sync` are never used
     --> bootstrap/src/compiler.rs:33490:12
      |
33489 | impl ResetDomain {
      | ---------------- associated items in this implementation
33490 |     pub fn new(name: &str, clk_domain: &str, active_low: bool) -> Self {
      |            ^^^
...
33498 |     pub fn add_sync(&mut self, sync: ResetSynchronizer) {
      |            ^^^^^^^^

warning: struct `RetimingOp` is never constructed
     --> bootstrap/src/compiler.rs:33504:12
      |
33504 | pub struct RetimingOp {
      |            ^^^^^^^^^^

warning: associated functions `forward` and `backward` are never used
     --> bootstrap/src/compiler.rs:33512:12
      |
33511 | impl RetimingOp {
      | --------------- associated functions in this implementation
33512 |     pub fn forward(from: &str, to: &str, regs: u32) -> Self {
      |            ^^^^^^^
...
33520 |     pub fn backward(from: &str, to: &str, regs: u32) -> Self {
      |            ^^^^^^^^

warning: struct `HirRetimer` is never constructed
     --> bootstrap/src/compiler.rs:33531:12
      |
33531 | pub struct HirRetimer {
      |            ^^^^^^^^^^

warning: associated items `new`, `retime_forward`, `retime_backward`, `improvement_percent`, and `fmax_improvement` are never used
     --> bootstrap/src/compiler.rs:33538:12
      |
33537 | impl HirRetimer {
      | --------------- associated items in this implementation
33538 |     pub fn new() -> Self {
      |            ^^^
...
33546 |     pub fn retime_forward(&mut self, from: &str, to: &str, regs: u32) {
      |            ^^^^^^^^^^^^^^
...
33550 |     pub fn retime_backward(&mut self, from: &str, to: &str, regs: u32) {
      |            ^^^^^^^^^^^^^^^
...
33554 |     pub fn improvement_percent(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^
...
33562 |     pub fn fmax_improvement(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^

warning: struct `ConfigReg` is never constructed
     --> bootstrap/src/compiler.rs:33581:12
      |
33581 | pub struct ConfigReg {
      |            ^^^^^^^^^

warning: associated items `rw`, `ro`, and `byte_offset` are never used
     --> bootstrap/src/compiler.rs:33591:12
      |
33590 | impl ConfigReg {
      | -------------- associated items in this implementation
33591 |     pub fn rw(name: &str, offset: u32, width: u32, reset: u32) -> Self {
      |            ^^
...
33601 |     pub fn ro(name: &str, offset: u32, width: u32) -> Self {
      |            ^^
...
33611 |     pub fn byte_offset(&self) -> u32 {
      |            ^^^^^^^^^^^

warning: struct `HirConfigBlock` is never constructed
     --> bootstrap/src/compiler.rs:33617:12
      |
33617 | pub struct HirConfigBlock {
      |            ^^^^^^^^^^^^^^

warning: associated items `new`, `add_rw`, `add_ro`, `total_bytes`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33624:12
      |
33623 | impl HirConfigBlock {
      | ------------------- associated items in this implementation
33624 |     pub fn new(name: &str, base: u32) -> Self {
      |            ^^^
...
33631 |     pub fn add_rw(&mut self, name: &str, width: u32, reset: u32) {
      |            ^^^^^^
...
33641 |     pub fn add_ro(&mut self, name: &str, width: u32) {
      |            ^^^^^^
...
33650 |     pub fn total_bytes(&self) -> u32 {
      |            ^^^^^^^^^^^
...
33654 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `IrqSource` is never constructed
     --> bootstrap/src/compiler.rs:33669:12
      |
33669 | pub struct IrqSource {
      |            ^^^^^^^^^

warning: associated functions `level` and `edge` are never used
     --> bootstrap/src/compiler.rs:33677:12
      |
33676 | impl IrqSource {
      | -------------- associated functions in this implementation
33677 |     pub fn level(name: &str, id: u32, priority: u32) -> Self {
      |            ^^^^^
...
33685 |     pub fn edge(name: &str, id: u32, priority: u32) -> Self {
      |            ^^^^

warning: struct `HirInterruptCtrl` is never constructed
     --> bootstrap/src/compiler.rs:33696:12
      |
33696 | pub struct HirInterruptCtrl {
      |            ^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:33705:12
      |
33704 | impl HirInterruptCtrl {
      | --------------------- associated items in this implementation
33705 |     pub fn new(name: &str, num_priorities: u32) -> Self {
      |            ^^^
...
33714 |     pub fn add_level_irq(&mut self, name: &str, id: u32, priority: u32) {
      |            ^^^^^^^^^^^^^
...
33717 |     pub fn add_edge_irq(&mut self, name: &str, id: u32, priority: u32) {
      |            ^^^^^^^^^^^^
...
33720 |     pub fn highest_priority(&self) -> Option<&IrqSource> {
      |            ^^^^^^^^^^^^^^^^
...
33723 |     pub fn pending_count(&self) -> u32 {
      |            ^^^^^^^^^^^^^
...
33726 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^
...
33734 |     pub fn emit_verilog(&self) -> String {
      |            ^^^^^^^^^^^^

warning: enum `DmaTransferKind` is never used
     --> bootstrap/src/compiler.rs:33785:10
      |
33785 | pub enum DmaTransferKind {
      |          ^^^^^^^^^^^^^^^

warning: struct `DmaChannel` is never constructed
     --> bootstrap/src/compiler.rs:33792:12
      |
33792 | pub struct DmaChannel {
      |            ^^^^^^^^^^

warning: associated items `single`, `burst`, `transfer_cycles`, and `bandwidth_mbps` are never used
     --> bootstrap/src/compiler.rs:33803:12
      |
33802 | impl DmaChannel {
      | --------------- associated items in this implementation
33803 |     pub fn single(name: &str, idx: u32, src: u32, dst: u32, len: u32) -> Self {
      |            ^^^^^^
...
33814 |     pub fn burst(name: &str, idx: u32, src: u32, dst: u32, len: u32, burst: u32) -> Self {
      |            ^^^^^
...
33825 |     pub fn transfer_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
33832 |     pub fn bandwidth_mbps(&self, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^

warning: struct `HirDmaEngine` is never constructed
     --> bootstrap/src/compiler.rs:33841:12
      |
33841 | pub struct HirDmaEngine {
      |            ^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:33849:12
      |
33848 | impl HirDmaEngine {
      | ----------------- associated items in this implementation
33849 |     pub fn new(name: &str, data_width: u32) -> Self {
      |            ^^^
...
33857 |     pub fn add_single(&mut self, name: &str, src: u32, dst: u32, len: u32) {
      |            ^^^^^^^^^^
...
33862 |     pub fn add_burst(&mut self, name: &str, src: u32, dst: u32, len: u32, burst: u32) {
      |            ^^^^^^^^^
...
33867 |     pub fn total_transfer_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^^
...
33870 |     pub fn total_bytes(&self) -> u32 {
      |            ^^^^^^^^^^^
...
33873 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^
...
33884 |     pub fn emit_verilog(&self) -> String {
      |            ^^^^^^^^^^^^

warning: struct `CrossOptPass` is never constructed
     --> bootstrap/src/compiler.rs:33909:12
      |
33909 | pub struct CrossOptPass {
      |            ^^^^^^^^^^^^

warning: associated items `empty`, `new`, `total_improvements`, `has_improvements`, and `improvement_density` are never used
     --> bootstrap/src/compiler.rs:33918:12
      |
33917 | impl CrossOptPass {
      | ----------------- associated items in this implementation
33918 |     pub fn empty() -> Self {
      |            ^^^^^
...
33927 |     pub fn new(name: &str, mods: u32, consts: u32, dead: u32, merged: u32) -> Self {
      |            ^^^
...
33936 |     pub fn total_improvements(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
33939 |     pub fn has_improvements(&self) -> bool {
      |            ^^^^^^^^^^^^^^^^
...
33942 |     pub fn improvement_density(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^

warning: struct `CrossOptReport` is never constructed
     --> bootstrap/src/compiler.rs:33951:12
      |
33951 | pub struct CrossOptReport {
      |            ^^^^^^^^^^^^^^

warning: associated items `new`, `total_optimizations`, and `is_effective` are never used
     --> bootstrap/src/compiler.rs:33960:12
      |
33959 | impl CrossOptReport {
      | ------------------- associated items in this implementation
33960 |     pub fn new(passes: u32, consts: u32, dead: u32, merged: u32, mods: u32) -> Self {
      |            ^^^
...
33969 |     pub fn total_optimizations(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^
...
33972 |     pub fn is_effective(&self) -> bool {
      |            ^^^^^^^^^^^^

warning: struct `HirCrossOptimizer` is never constructed
     --> bootstrap/src/compiler.rs:33978:12
      |
33978 | pub struct HirCrossOptimizer {
      |            ^^^^^^^^^^^^^^^^^

warning: associated items `new`, `run_pass`, and `report` are never used
     --> bootstrap/src/compiler.rs:33983:12
      |
33982 | impl HirCrossOptimizer {
      | ---------------------- associated items in this implementation
33983 |     pub fn new() -> Self {
      |            ^^^
...
33987 |     pub fn run_pass(&mut self, modules: &mut [HirModule]) -> CrossOptPass {
      |            ^^^^^^^^
...
34021 |     pub fn report(&self) -> CrossOptReport {
      |            ^^^^^^

warning: struct `BootStage` is never constructed
     --> bootstrap/src/compiler.rs:34033:12
      |
34033 | pub struct BootStage {
      |            ^^^^^^^^^

warning: associated items `new` and `end` are never used
     --> bootstrap/src/compiler.rs:34041:12
      |
34040 | impl BootStage {
      | -------------- associated items in this implementation
34041 |     pub fn new(name: &str, idx: u32, size: u32, entry: u32) -> Self {
      |            ^^^
...
34049 |     pub fn end(&self) -> u32 {
      |            ^^^

warning: struct `BootConfig` is never constructed
     --> bootstrap/src/compiler.rs:34055:12
      |
34055 | pub struct BootConfig {
      |            ^^^^^^^^^^

warning: associated items `new`, `end`, `fits`, and `validate` are never used
     --> bootstrap/src/compiler.rs:34064:12
      |
34063 | impl BootConfig {
      | --------------- associated items in this implementation
34064 |     pub fn new(name: &str, rom_size: u32) -> Self {
      |            ^^^
...
34073 |     pub fn end(&self) -> u32 {
      |            ^^^
...
34076 |     pub fn fits(&self, stages: &[BootStage]) -> bool {
      |            ^^^^
...
34080 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `WatchdogConfig` is never constructed
     --> bootstrap/src/compiler.rs:34093:12
      |
34093 | pub struct WatchdogConfig {
      |            ^^^^^^^^^^^^^^

warning: associated items `new`, `windowed`, `timeout_ns`, `in_window`, and `validate` are never used
     --> bootstrap/src/compiler.rs:34104:12
      |
34103 | impl WatchdogConfig {
      | ------------------- associated items in this implementation
34104 |     pub fn new(name: &str, timeout: u32) -> Self {
      |            ^^^
...
34115 |     pub fn windowed(name: &str, timeout: u32, open: u32, close: u32) -> Self {
      |            ^^^^^^^^
...
34126 |     pub fn timeout_ns(&self, clock_ns: u32) -> u64 {
      |            ^^^^^^^^^^
...
34129 |     pub fn in_window(&self, count: u32) -> bool {
      |            ^^^^^^^^^
...
34132 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `MemMapEntry` is never constructed
     --> bootstrap/src/compiler.rs:34145:12
      |
34145 | pub struct MemMapEntry {
      |            ^^^^^^^^^^^

warning: associated items `rom`, `ram`, `peripheral`, `end`, and `contains` are never used
     --> bootstrap/src/compiler.rs:34155:12
      |
34154 | impl MemMapEntry {
      | ---------------- associated items in this implementation
34155 |     pub fn rom(name: &str, base: u32, size: u32) -> Self {
      |            ^^^
...
34165 |     pub fn ram(name: &str, base: u32, size: u32) -> Self {
      |            ^^^
...
34175 |     pub fn peripheral(name: &str, base: u32, size: u32) -> Self {
      |            ^^^^^^^^^^
...
34185 |     pub fn end(&self) -> u32 {
      |            ^^^
...
34188 |     pub fn contains(&self, addr: u32) -> bool {
      |            ^^^^^^^^

warning: struct `HirMemMap` is never constructed
     --> bootstrap/src/compiler.rs:34194:12
      |
34194 | pub struct HirMemMap {
      |            ^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:34199:12
      |
34198 | impl HirMemMap {
      | -------------- associated items in this implementation
34199 |     pub fn new() -> Self {
      |            ^^^
...
34204 |     pub fn add_rom(&mut self, name: &str, base: u32, size: u32) {
      |            ^^^^^^^
...
34207 |     pub fn add_ram(&mut self, name: &str, base: u32, size: u32) {
      |            ^^^^^^^
...
34210 |     pub fn add_periph(&mut self, name: &str, base: u32, size: u32) {
      |            ^^^^^^^^^^
...
34213 |     pub fn lookup(&self, addr: u32) -> Option<&MemMapEntry> {
      |            ^^^^^^
...
34216 |     pub fn total_size(&self) -> u32 {
      |            ^^^^^^^^^^
...
34219 |     pub fn check_overlaps(&self) -> Vec<(String, String)> {
      |            ^^^^^^^^^^^^^^

warning: struct `SerDesConfig` is never constructed
     --> bootstrap/src/compiler.rs:34235:12
      |
34235 | pub struct SerDesConfig {
      |            ^^^^^^^^^^^^

warning: associated items `new`, `total_bandwidth_gbps`, `throughput_bytes_per_sec`, and `validate` are never used
     --> bootstrap/src/compiler.rs:34244:12
      |
34243 | impl SerDesConfig {
      | ----------------- associated items in this implementation
34244 |     pub fn new(name: &str, lanes: u32, rate_gbps: u32) -> Self {
      |            ^^^
...
34253 |     pub fn total_bandwidth_gbps(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^
...
34256 |     pub fn throughput_bytes_per_sec(&self) -> u64 {
      |            ^^^^^^^^^^^^^^^^^^^^^^^^
...
34259 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `BuildStep` is never constructed
     --> bootstrap/src/compiler.rs:34272:12
      |
34272 | pub struct BuildStep {
      |            ^^^^^^^^^

warning: struct `HirBuildOrchestrator` is never constructed
     --> bootstrap/src/compiler.rs:34281:12
      |
34281 | pub struct HirBuildOrchestrator {
      |            ^^^^^^^^^^^^^^^^^^^^

warning: associated items `new`, `add_step`, `standard_fpga_flow`, `step_count`, and `has_step` are never used
     --> bootstrap/src/compiler.rs:34287:12
      |
34286 | impl HirBuildOrchestrator {
      | ------------------------- associated items in this implementation
34287 |     pub fn new() -> Self {
      |            ^^^
...
34294 |     pub fn add_step(&mut self, name: &str, tool: &str, input: &str, output: &str, est_ms: u32) {
      |            ^^^^^^^^
...
34305 |     pub fn standard_fpga_flow(&mut self) {
      |            ^^^^^^^^^^^^^^^^^^
...
34312 |     pub fn step_count(&self) -> u32 {
      |            ^^^^^^^^^^
...
34315 |     pub fn has_step(&self, name: &str) -> bool {
      |            ^^^^^^^^

warning: fields `clock_domains` and `clock_crossings` are never read
     --> bootstrap/src/compiler.rs:34329:9
      |
34321 | pub struct HirModule {
      |            --------- fields in this struct
...
34329 |     pub clock_domains: Vec<HirClockDomain>,
      |         ^^^^^^^^^^^^^
34330 |     pub clock_crossings: Vec<HirClockCrossing>,
      |         ^^^^^^^^^^^^^^^
      |
      = note: `HirModule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `removed_assigns` is never read
     --> bootstrap/src/compiler.rs:34644:5
      |
34642 | pub struct HirOptimizer {
      |            ------------ field in this struct
34643 |     removed_signals: u32,
34644 |     removed_assigns: u32,
      |     ^^^^^^^^^^^^^^^

warning: methods `stats` and `resource_estimate` are never used
     --> bootstrap/src/compiler.rs:34684:12
      |
34650 | impl HirOptimizer {
      | ----------------- methods in this implementation
...
34684 |     pub fn stats(&self) -> (u32, u32, u32, u32) {
      |            ^^^^^
...
34693 |     pub fn resource_estimate(&self, hir: &HirModule) -> HirResourceEstimate {
      |            ^^^^^^^^^^^^^^^^^

warning: enum `HirSimState` is never used
     --> bootstrap/src/compiler.rs:38123:10
      |
38123 | pub enum HirSimState {
      |          ^^^^^^^^^^^

warning: struct `HirSimConfig` is never constructed
     --> bootstrap/src/compiler.rs:38132:12
      |
38132 | pub struct HirSimConfig {
      |            ^^^^^^^^^^^^

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:38143:12
      |
38142 | impl HirSimConfig {
      | ----------------- associated items in this implementation
38143 |     pub fn new(name: &str, max_cycles: u32) -> Self {
      |            ^^^
...
38155 |     pub fn with_trace(mut self, vcd_path: &str) -> Self {
      |            ^^^^^^^^^^
...
38162 |     pub fn sim_time_ns(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
38169 |     pub fn sim_time_us(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
38173 |     pub fn sim_time_ms(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
38177 |     pub fn cycles_for_time_ns(&self, ns: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
38184 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `HirSimResult` is never constructed
     --> bootstrap/src/compiler.rs:38200:12
      |
38200 | pub struct HirSimResult {
      |            ^^^^^^^^^^^^

warning: associated items `ok`, `error`, `is_done`, `is_error`, `has_errors`, and `passed` are never used
     --> bootstrap/src/compiler.rs:38209:12
      |
38208 | impl HirSimResult {
      | ----------------- associated items in this implementation
38209 |     pub fn ok(cycles: u32, coverage: u32) -> Self {
      |            ^^
...
38219 |     pub fn error(cycles: u32, errors: u32) -> Self {
      |            ^^^^^
...
38229 |     pub fn is_done(&self) -> bool {
      |            ^^^^^^^
...
38232 |     pub fn is_error(&self) -> bool {
      |            ^^^^^^^^
...
38235 |     pub fn has_errors(&self) -> bool {
      |            ^^^^^^^^^^
...
38238 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `DemoKernel` is never constructed
     --> bootstrap/src/compiler.rs:39318:12
      |
39318 | pub struct DemoKernel {
      |            ^^^^^^^^^^

warning: associated items `hello_trinity`, `gf16_mac_demo`, `kernel_size_bytes`, and `validate` are never used
     --> bootstrap/src/compiler.rs:39327:12
      |
39326 | impl DemoKernel {
      | --------------- associated items in this implementation
39327 |     pub fn hello_trinity() -> Self {
      |            ^^^^^^^^^^^^^
...
39337 |     pub fn gf16_mac_demo() -> Self {
      |            ^^^^^^^^^^^^^
...
39347 |     pub fn kernel_size_bytes(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^
...
39351 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `PipeResult` is never constructed
     --> bootstrap/src/compiler.rs:39364:12
      |
39364 | pub struct PipeResult {
      |            ^^^^^^^^^^

warning: associated items `ok`, `error`, `ipc`, `cpi`, `gf16_throughput`, and `passed` are never used
     --> bootstrap/src/compiler.rs:39373:12
      |
39372 | impl PipeResult {
      | --------------- associated items in this implementation
39373 |     pub fn ok(cycles: u32, retired: u32, gf16: u32) -> Self {
      |            ^^
...
39383 |     pub fn error(cycles: u32, errors: u32) -> Self {
      |            ^^^^^
...
39393 |     pub fn ipc(&self) -> u32 {
      |            ^^^
...
39400 |     pub fn cpi(&self) -> u32 {
      |            ^^^
...
39407 |     pub fn gf16_throughput(&self, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
39414 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

warning: struct `DemoConfig` is never constructed
     --> bootstrap/src/compiler.rs:39420:12
      |
39420 | pub struct DemoConfig {
      |            ^^^^^^^^^^

warning: associated items `new`, `sim_time_us`, and `validate` are never used
     --> bootstrap/src/compiler.rs:39429:12
      |
39428 | impl DemoConfig {
      | --------------- associated items in this implementation
39429 |     pub fn new(kernel: DemoKernel) -> Self {
      |            ^^^
...
39439 |     pub fn sim_time_us(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
39446 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: struct `SvInterface` is never constructed
     --> bootstrap/src/compiler.rs:42592:12
      |
42592 | pub struct SvInterface {
      |            ^^^^^^^^^^^

warning: associated items `new`, `add_signal`, and `emit` are never used
     --> bootstrap/src/compiler.rs:42598:12
      |
42597 | impl SvInterface {
      | ---------------- associated items in this implementation
42598 |     pub fn new(name: &str) -> Self {
      |            ^^^
...
42604 |     pub fn add_signal(&mut self, name: &str, width: u32) {
      |            ^^^^^^^^^^
...
42607 |     pub fn emit(&self) -> String {
      |            ^^^^

warning: struct `HirSvEmitter` is never constructed
     --> bootstrap/src/compiler.rs:42623:12
      |
42623 | pub struct HirSvEmitter {
      |            ^^^^^^^^^^^^

warning: associated items `new`, `into_string`, `emit_package`, `emit_interface`, and `emit_module_sv` are never used
     --> bootstrap/src/compiler.rs:42629:12
      |
42628 | impl HirSvEmitter {
      | ----------------- associated items in this implementation
42629 |     pub fn new() -> Self {
      |            ^^^
...
42635 |     pub fn into_string(self) -> String {
      |            ^^^^^^^^^^^
...
42639 |     pub fn emit_package(&mut self, name: &str, types: &[(&str, u32)]) {
      |            ^^^^^^^^^^^^
...
42651 |     pub fn emit_interface(&mut self, iface: &SvInterface) {
      |            ^^^^^^^^^^^^^^
...
42656 |     pub fn emit_module_sv(&mut self, hir: &HirModule) {
      |            ^^^^^^^^^^^^^^

warning: struct `HirFirrtlEmitter` is never constructed
     --> bootstrap/src/compiler.rs:42700:12
      |
42700 | pub struct HirFirrtlEmitter {
      |            ^^^^^^^^^^^^^^^^

warning: associated items `new`, `into_string`, and `emit` are never used
     --> bootstrap/src/compiler.rs:42705:12
      |
42704 | impl HirFirrtlEmitter {
      | --------------------- associated items in this implementation
42705 |     pub fn new() -> Self {
      |            ^^^
...
42710 |     pub fn into_string(self) -> String {
      |            ^^^^^^^^^^^
...
42714 |     pub fn emit(&mut self, hir: &HirModule) {
      |            ^^^^

warning: struct `HirDiff` is never constructed
     --> bootstrap/src/compiler.rs:42740:12
      |
42740 | pub struct HirDiff {
      |            ^^^^^^^

warning: struct `HirDiffEngine` is never constructed
     --> bootstrap/src/compiler.rs:42747:12
      |
42747 | pub struct HirDiffEngine;
      |            ^^^^^^^^^^^^^

warning: associated functions `diff` and `equivalent` are never used
     --> bootstrap/src/compiler.rs:42750:12
      |
42749 | impl HirDiffEngine {
      | ------------------ associated functions in this implementation
42750 |     pub fn diff(a: &HirModule, b: &HirModule) -> Vec<HirDiff> {
      |            ^^^^
...
42803 |     pub fn equivalent(a: &HirModule, b: &HirModule) -> bool {
      |            ^^^^^^^^^^

warning: struct `BuildMetrics` is never constructed
     --> bootstrap/src/compiler.rs:42809:12
      |
42809 | pub struct BuildMetrics {
      |            ^^^^^^^^^^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:42821:12
      |
42820 | impl BuildMetrics {
      | ----------------- associated function in this implementation
42821 |     pub fn new(id: u32, luts: u32, ffs: u32, bram: u32, dsp: u32, fmax: u32, power: u32) -> Self {
      |            ^^^

warning: struct `HirRegressionTracker` is never constructed
     --> bootstrap/src/compiler.rs:42836:12
      |
42836 | pub struct HirRegressionTracker {
      |            ^^^^^^^^^^^^^^^^^^^^

warning: associated items `new`, `record`, `latest`, `lut_regression`, `fmax_regression`, and `total_builds` are never used
     --> bootstrap/src/compiler.rs:42841:12
      |
42840 | impl HirRegressionTracker {
      | ------------------------- associated items in this implementation
42841 |     pub fn new() -> Self {
      |            ^^^
...
42844 |     pub fn record(&mut self, m: BuildMetrics) {
      |            ^^^^^^
...
42847 |     pub fn latest(&self) -> Option<&BuildMetrics> {
      |            ^^^^^^
...
42850 |     pub fn lut_regression(&self) -> bool {
      |            ^^^^^^^^^^^^^^
...
42858 |     pub fn fmax_regression(&self) -> bool {
      |            ^^^^^^^^^^^^^^^
...
42866 |     pub fn total_builds(&self) -> u32 {
      |            ^^^^^^^^^^^^

warning: struct `HirFileFingerprint` is never constructed
     --> bootstrap/src/compiler.rs:42872:12
      |
42872 | pub struct HirFileFingerprint {
      |            ^^^^^^^^^^^^^^^^^^

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:42879:12
      |
42878 | impl HirFileFingerprint {
      | ----------------------- associated function in this implementation
42879 |     pub fn new(path: &str, hash: u64) -> Self {
      |            ^^^

warning: struct `HirElabCache` is never constructed
     --> bootstrap/src/compiler.rs:42889:12
      |
42889 | pub struct HirElabCache {
      |            ^^^^^^^^^^^^

warning: associated items `new`, `add`, `is_cached`, `invalidate`, and `entry_count` are never used
     --> bootstrap/src/compiler.rs:42894:12
      |
42893 | impl HirElabCache {
      | ----------------- associated items in this implementation
42894 |     pub fn new() -> Self {
      |            ^^^
...
42899 |     pub fn add(&mut self, fp: HirFileFingerprint) {
      |            ^^^
...
42902 |     pub fn is_cached(&self, path: &str, hash: u64) -> bool {
      |            ^^^^^^^^^
...
42907 |     pub fn invalidate(&mut self, path: &str) {
      |            ^^^^^^^^^^
...
42910 |     pub fn entry_count(&self) -> u32 {
      |            ^^^^^^^^^^^

warning: struct `CdcViolation` is never constructed
     --> bootstrap/src/compiler.rs:42916:12
      |
42916 | pub struct CdcViolation {
      |            ^^^^^^^^^^^^

warning: struct `HirCdcChecker` is never constructed
     --> bootstrap/src/compiler.rs:42925:12
      |
42925 | pub struct HirCdcChecker;
      |            ^^^^^^^^^^^^^

warning: associated functions `check` and `has_violations` are never used
     --> bootstrap/src/compiler.rs:42928:12
      |
42927 | impl HirCdcChecker {
      | ------------------ associated functions in this implementation
42928 |     pub fn check(module: &HirModule) -> Vec<CdcViolation> {
      |            ^^^^^
...
42962 |     pub fn has_violations(module: &HirModule) -> bool {
      |            ^^^^^^^^^^^^^^

warning: struct `LintViolation` is never constructed
     --> bootstrap/src/compiler.rs:42968:12
      |
42968 | pub struct LintViolation {
      |            ^^^^^^^^^^^^^

warning: struct `HirLinter` is never constructed
     --> bootstrap/src/compiler.rs:42976:12
      |
42976 | pub struct HirLinter {
      |            ^^^^^^^^^

warning: associated functions `new`, `lint`, and `lint_count` are never used
     --> bootstrap/src/compiler.rs:42981:12
      |
42980 | impl HirLinter {
      | -------------- associated functions in this implementation
42981 |     pub fn new() -> Self {
      |            ^^^
...
42993 |     pub fn lint(module: &HirModule) -> Vec<LintViolation> {
      |            ^^^^
...
43030 |     pub fn lint_count(module: &HirModule) -> u32 {
      |            ^^^^^^^^^^

warning: struct `DepNode` is never constructed
     --> bootstrap/src/compiler.rs:43036:12
      |
43036 | pub struct DepNode {
      |            ^^^^^^^

warning: struct `HirDepGraph` is never constructed
     --> bootstrap/src/compiler.rs:43043:12
      |
43043 | pub struct HirDepGraph {
      |            ^^^^^^^^^^^

warning: associated items `new`, `add_module`, `topological_order`, `has_cycle`, `leaf_modules`, and `max_depth` are never used
     --> bootstrap/src/compiler.rs:43048:12
      |
43047 | impl HirDepGraph {
      | ---------------- associated items in this implementation
43048 |     pub fn new() -> Self {
      |            ^^^
...
43051 |     pub fn add_module(&mut self, name: &str, deps: &[&str]) {
      |            ^^^^^^^^^^
...
43069 |     pub fn topological_order(&self) -> Vec<&str> {
      |            ^^^^^^^^^^^^^^^^^
...
43074 |     pub fn has_cycle(&self) -> bool {
      |            ^^^^^^^^^
...
43091 |     pub fn leaf_modules(&self) -> Vec<&str> {
      |            ^^^^^^^^^^^^
...
43098 |     pub fn max_depth(&self) -> u32 {
      |            ^^^^^^^^^

warning: struct `CoverGroup` is never constructed
     --> bootstrap/src/compiler.rs:43104:12
      |
43104 | pub struct CoverGroup {
      |            ^^^^^^^^^^

warning: associated items `new`, `coverage_percent`, and `is_covered` are never used
     --> bootstrap/src/compiler.rs:43111:12
      |
43110 | impl CoverGroup {
      | --------------- associated items in this implementation
43111 |     pub fn new(name: &str, bins: u32) -> Self {
      |            ^^^
...
43118 |     pub fn coverage_percent(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^
...
43124 |     pub fn is_covered(&self) -> bool {
      |            ^^^^^^^^^^

warning: struct `HirCoverageModel` is never constructed
     --> bootstrap/src/compiler.rs:43130:12
      |
43130 | pub struct HirCoverageModel {
      |            ^^^^^^^^^^^^^^^^

warning: associated items `new`, `add_group`, `hit`, `total_coverage`, `is_complete`, and `uncovered` are never used
     --> bootstrap/src/compiler.rs:43135:12
      |
43134 | impl HirCoverageModel {
      | --------------------- associated items in this implementation
43135 |     pub fn new() -> Self {
      |            ^^^
...
43138 |     pub fn add_group(&mut self, name: &str, bins: u32) {
      |            ^^^^^^^^^
...
43141 |     pub fn hit(&mut self, group_name: &str) {
      |            ^^^
...
43146 |     pub fn total_coverage(&self) -> u32 {
      |            ^^^^^^^^^^^^^^
...
43156 |     pub fn is_complete(&self) -> bool {
      |            ^^^^^^^^^^^
...
43159 |     pub fn uncovered(&self) -> Vec<&str> {
      |            ^^^^^^^^^

warning: methods `slug` and `is_source` are never used
  --> bootstrap/src/source_kind.rs:47:12
   |
43 | impl SourceKind {
   | --------------- methods in this implementation
...
47 |     pub fn slug(self) -> &'static str {
   |            ^^^^
...
71 |     pub fn is_source(self) -> bool {
   |            ^^^^^^^^^

warning: function `classify` is never used
   --> bootstrap/src/entry_points.rs:126:8
    |
126 | pub fn classify(source: &str) -> Verdict {
    |        ^^^^^^^^

warning: function `check_emitted` is never used
   --> bootstrap/src/catalog_gate.rs:299:4
    |
299 | fn check_emitted(emitted: &Path, records: &[Record], r: &mut Report) {
    |    ^^^^^^^^^^^^^

warning: method `total` is never used
   --> bootstrap/src/suite.rs:291:8
    |
278 | impl PhaseSplit {
    | --------------- method in this implementation
...
291 |     fn total(&self) -> usize {
    |        ^^^^^

warning: function `cmd_simulated_output_wellformed` is never used
    --> bootstrap/src/suite.rs:1014:4
     |
1014 | fn cmd_simulated_output_wellformed(repo: &Path, rel: &str) -> anyhow::Result<()> {
     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: associated function `failure_fallback` is never used
    --> bootstrap/src/suite.rs:1506:8
     |
1413 | impl FpgaSmokeResultBuilder {
     | --------------------------- associated function in this implementation
...
1506 |     fn failure_fallback() -> FpgaSmokeResult {
     |        ^^^^^^^^^^^^^^^^

warning: function `runtime_to_anyhow` is never used
   --> bootstrap/src/formula_eval.rs:208:4
    |
208 | fn runtime_to_anyhow(err: RuntimeError) -> anyhow::Error {
    |    ^^^^^^^^^^^^^^^^^

warning: function `max_likelihood_sacred` is never used
  --> bootstrap/src/math_bayes.rs:65:4
   |
65 | fn max_likelihood_sacred(n_obs: usize, n_params: usize, data_norm: f64) -> f64 {
   |    ^^^^^^^^^^^^^^^^^^^^^

warning: struct `BayesFactorResult` is never constructed
   --> bootstrap/src/math_bayes.rs:103:12
    |
103 | pub struct BayesFactorResult {
    |            ^^^^^^^^^^^^^^^^^

warning: field `target_value` is never read
  --> bootstrap/src/chimera_engine.rs:20:9
   |
17 | pub struct ChimeraCandidate {
   |            ---------------- field in this struct
...
20 |     pub target_value: f64,
   |         ^^^^^^^^^^^^

warning: fields `name` and `params` are never read
  --> bootstrap/src/runtime/mod.rs:51:5
   |
50 | struct FunctionDef {
   |        ----------- fields in this struct
51 |     name: String,
   |     ^^^^
52 |     return_type: String,
53 |     params: Vec<String>,
   |     ^^^^^^
   |
   = note: `FunctionDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: methods `get_function_names`, `get_function_info`, `clear_cache`, and `cache_stats` are never used
   --> bootstrap/src/runtime/mod.rs:526:12
    |
 73 | impl FormulaRuntime {
    | ------------------- methods in this implementation
...
526 |     pub fn get_function_names(&self) -> Vec<String> {
    |            ^^^^^^^^^^^^^^^^^^
...
531 |     pub(crate) fn get_function_info<'a>(&'a self, name: &str) -> Option<&'a FunctionDef> {
    |                   ^^^^^^^^^^^^^^^^^
...
536 |     pub fn clear_cache(&mut self) {
    |            ^^^^^^^^^^^
...
541 |     pub fn cache_stats(&self) -> (usize, usize) {
    |            ^^^^^^^^^^^

warning: constant `HSLM_READY` is never used
 --> bootstrap/src/neural/mod.rs:7:11
  |
7 | pub const HSLM_READY: bool = false;
  |           ^^^^^^^^^^

warning: function `is_hslm_available` is never used
  --> bootstrap/src/neural/mod.rs:10:8
   |
10 | pub fn is_hslm_available() -> bool {
   |        ^^^^^^^^^^^^^^^^^

warning: function `ternary_add` is never used
 --> bootstrap/src/ternary/../../gen/rust/base/ternary_add.rs:2:8
  |
2 | pub fn ternary_add(a: i32, b: i32) -> i32 {
  |        ^^^^^^^^^^^

warning: struct `TernaryMemory` is never constructed
 --> bootstrap/src/ternary/../../gen/rust/base/ternary_memory.rs:2:12
  |
2 | pub struct TernaryMemory;
  |            ^^^^^^^^^^^^^

warning: associated function `new` is never used
 --> bootstrap/src/ternary/../../gen/rust/base/ternary_memory.rs:5:12
  |
4 | impl TernaryMemory {
  | ------------------ associated function in this implementation
5 |     pub fn new() -> Self {
  |            ^^^

warning: function `ternary_multiply` is never used
 --> bootstrap/src/ternary/../../gen/rust/base/ternary_arithmetic.rs:2:8
  |
2 | pub fn ternary_multiply(a: i32, b: i32) -> i32 {
  |        ^^^^^^^^^^^^^^^^

warning: function `ternary_if` is never used
 --> bootstrap/src/ternary/../../gen/rust/base/ternary_control_flow.rs:2:8
  |
2 | pub fn ternary_if(condition: bool, true_val: i32, false_val: i32) -> i32 {
  |        ^^^^^^^^^^

warning: function `ternary_and` is never used
 --> bootstrap/src/ternary/../../gen/rust/base/ternary_gates.rs:2:8
  |
2 | pub fn ternary_and(a: i8, b: i8) -> i8 {
  |        ^^^^^^^^^^^

warning: constant `PHI` is never used
  --> bootstrap/src/memory/mod.rs:10:11
   |
10 | pub const PHI: f64 = 1.618033988749895;
   |           ^^^

warning: function `cosine_sim` is never used
  --> bootstrap/src/memory/mod.rs:16:8
   |
16 | pub fn cosine_sim(a: &[f64], b: &[f64]) -> f64 {
   |        ^^^^^^^^^^

warning: constant `FEATURE_VALUE` is never used
 --> bootstrap/src/memory/generated/formula_embed.rs:7:11
  |
7 | pub const FEATURE_VALUE: usize = 0;
  |           ^^^^^^^^^^^^^

warning: constant `FEATURE_COMPLEXITY` is never used
 --> bootstrap/src/memory/generated/formula_embed.rs:9:11
  |
9 | pub const FEATURE_COMPLEXITY: usize = 1;
  |           ^^^^^^^^^^^^^^^^^^

warning: constant `FEATURE_PHI_DIST` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:11:11
   |
11 | pub const FEATURE_PHI_DIST: usize = 2;
   |           ^^^^^^^^^^^^^^^^

warning: constant `FEATURE_SECTOR_ID` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:13:11
   |
13 | pub const FEATURE_SECTOR_ID: usize = 3;
   |           ^^^^^^^^^^^^^^^^^

warning: constant `BASE_FEATURE_COUNT` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:15:11
   |
15 | pub const BASE_FEATURE_COUNT: usize = 4;
   |           ^^^^^^^^^^^^^^^^^^

warning: enum `Sector` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:18:10
   |
18 | pub enum Sector {
   |          ^^^^^^

warning: struct `Formula` is never constructed
  --> bootstrap/src/memory/generated/formula_embed.rs:29:12
   |
29 | pub struct Formula {
   |            ^^^^^^^

warning: struct `Embedding` is never constructed
  --> bootstrap/src/memory/generated/formula_embed.rs:38:12
   |
38 | pub struct Embedding {
   |            ^^^^^^^^^

warning: struct `Features` is never constructed
  --> bootstrap/src/memory/generated/formula_embed.rs:45:12
   |
45 | pub struct Features {
   |            ^^^^^^^^

warning: function `extract_features` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:52:8
   |
52 | pub fn extract_features(formula: &Formula) -> Features {
   |        ^^^^^^^^^^^^^^^^

warning: function `pad_features` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:61:8
   |
61 | pub fn pad_features(features: &Features) -> Vec<f64> {
   |        ^^^^^^^^^^^^

warning: function `l2_norm` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:88:8
   |
88 | pub fn l2_norm(vec: &[f64]) -> f64 {
   |        ^^^^^^^

warning: function `embed_formula` is never used
  --> bootstrap/src/memory/generated/formula_embed.rs:92:8
   |
92 | pub fn embed_formula(formula: &Formula) -> Embedding {
   |        ^^^^^^^^^^^^^

warning: function `phi_distance` is never used
   --> bootstrap/src/memory/generated/formula_embed.rs:122:8
    |
122 | pub fn phi_distance(value: f64) -> f64 {
    |        ^^^^^^^^^^^^

warning: constant `MAX_CORPUS` is never used
 --> bootstrap/src/memory/generated/semantic_search.rs:8:11
  |
8 | pub const MAX_CORPUS: usize = 10000;
  |           ^^^^^^^^^^

warning: constant `DEFAULT_K` is never used
  --> bootstrap/src/memory/generated/semantic_search.rs:10:11
   |
10 | pub const DEFAULT_K: usize = 5;
   |           ^^^^^^^^^

warning: struct `FormulaMatch` is never constructed
  --> bootstrap/src/memory/generated/semantic_search.rs:13:12
   |
13 | pub struct FormulaMatch {
   |            ^^^^^^^^^^^^

warning: struct `SearchResult` is never constructed
  --> bootstrap/src/memory/generated/semantic_search.rs:22:12
   |
22 | pub struct SearchResult {
   |            ^^^^^^^^^^^^

warning: struct `FormulaEmbedding` is never constructed
  --> bootstrap/src/memory/generated/semantic_search.rs:29:12
   |
29 | pub struct FormulaEmbedding {
   |            ^^^^^^^^^^^^^^^^

warning: struct `SearchQuery` is never constructed
  --> bootstrap/src/memory/generated/semantic_search.rs:36:12
   |
36 | pub struct SearchQuery {
   |            ^^^^^^^^^^^

warning: function `compute_similarity` is never used
  --> bootstrap/src/memory/generated/semantic_search.rs:41:8
   |
41 | pub fn compute_similarity(query: &[f64], target: &[f64]) -> f64 {
   |        ^^^^^^^^^^^^^^^^^^

warning: function `top_k` is never used
  --> bootstrap/src/memory/generated/semantic_search.rs:47:8
   |
47 | pub fn top_k(matches: &mut [FormulaMatch], k: usize) -> Vec<FormulaMatch> {
   |        ^^^^^

warning: function `semantic_search` is never used
  --> bootstrap/src/memory/generated/semantic_search.rs:53:8
   |
53 | pub fn semantic_search(
   |        ^^^^^^^^^^^^^^^

warning: constant `BUNDLE_ORDER` is never used
  --> bootstrap/src/bitnet_bundle.rs:95:11
   |
95 | pub const BUNDLE_ORDER: &[&str] = &[
   |           ^^^^^^^^^^^^

warning: constant `BUNDLE_FILE_COUNT` is never used
   --> bootstrap/src/bitnet_bundle.rs:112:11
    |
112 | pub const BUNDLE_FILE_COUNT: usize = 13;
    |           ^^^^^^^^^^^^^^^^^

warning: enum `AddrError` is never used
 --> bootstrap/src/host/addrmap.rs:2:10
  |
2 | pub enum AddrError {
  |          ^^^^^^^^^

warning: struct `MemRegion` is never constructed
  --> bootstrap/src/host/addrmap.rs:27:12
   |
27 | pub struct MemRegion {
   |            ^^^^^^^^^

warning: associated items `new`, `end`, `contains`, `offset_of`, `overlaps`, and `align_up` are never used
  --> bootstrap/src/host/addrmap.rs:34:18
   |
33 | impl MemRegion {
   | -------------- associated items in this implementation
34 |     pub const fn new(name: &'static str, base: u64, size: u64) -> Self {
   |                  ^^^
...
38 |     pub const fn end(&self) -> u64 {
   |                  ^^^
...
42 |     pub const fn contains(&self, addr: u64) -> bool {
   |                  ^^^^^^^^
...
46 |     pub const fn offset_of(&self, addr: u64) -> Option<u64> {
   |                  ^^^^^^^^^
...
54 |     pub const fn overlaps(&self, other: &MemRegion) -> bool {
   |                  ^^^^^^^^
...
58 |     pub const fn align_up(&self, align: u64) -> u64 {
   |                  ^^^^^^^^

warning: constant `REGION_CSR` is never used
  --> bootstrap/src/host/addrmap.rs:63:11
   |
63 | pub const REGION_CSR: MemRegion = MemRegion::new("csr", 0x4000_0000, 0x1000);
   |           ^^^^^^^^^^

warning: constant `REGION_BRAM` is never used
  --> bootstrap/src/host/addrmap.rs:64:11
   |
64 | pub const REGION_BRAM: MemRegion = MemRegion::new("bram", 0x0000_0000, 0x0010_0000);
   |           ^^^^^^^^^^^

warning: constant `REGION_DDR` is never used
  --> bootstrap/src/host/addrmap.rs:65:11
   |
65 | pub const REGION_DDR: MemRegion = MemRegion::new("ddr", 0x8000_0000, 0x1000_0000);
   |           ^^^^^^^^^^

warning: constant `REGION_DMA` is never used
  --> bootstrap/src/host/addrmap.rs:66:11
   |
66 | pub const REGION_DMA: MemRegion = MemRegion::new("dma", 0x4000_1000, 0x0100);
   |           ^^^^^^^^^^

warning: struct `AddrMap` is never constructed
  --> bootstrap/src/host/addrmap.rs:69:12
   |
69 | pub struct AddrMap {
   |            ^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/addrmap.rs:74:12
    |
 73 | impl AddrMap {
    | ------------ associated items in this implementation
 74 |     pub fn new() -> Self {
    |            ^^^
...
 80 |     pub fn add(&mut self, region: MemRegion) -> Result<(), AddrError> {
    |            ^^^
...
 96 |     pub fn find(&self, addr: u64) -> Option<&MemRegion> {
    |            ^^^^
...
100 |     pub fn find_name(&self, name: &str) -> Option<&MemRegion> {
    |            ^^^^^^^^^
...
104 |     pub fn regions(&self) -> &[MemRegion] {
    |            ^^^^^^^
...
108 |     pub fn len(&self) -> usize {
    |            ^^^
...
112 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
116 |     pub fn validate_addr(&self, addr: u64) -> Result<&MemRegion, AddrError> {
    |            ^^^^^^^^^^^^^
...
124 |     pub fn validate_range(&self, addr: u64, len: u64) -> Result<&MemRegion, AddrError> {
    |            ^^^^^^^^^^^^^^
...
136 |     pub fn default_map() -> Self {
    |            ^^^^^^^^^^^

warning: function `mask` is never used
 --> bootstrap/src/host/bitmask.rs:1:14
  |
1 | pub const fn mask(width: u8) -> u32 {
  |              ^^^^

warning: function `field_mask` is never used
 --> bootstrap/src/host/bitmask.rs:5:14
  |
5 | pub const fn field_mask(high: u8, low: u8) -> u32 {
  |              ^^^^^^^^^^

warning: function `extract` is never used
 --> bootstrap/src/host/bitmask.rs:9:14
  |
9 | pub const fn extract(value: u32, high: u8, low: u8) -> u32 {
  |              ^^^^^^^

warning: function `insert` is never used
  --> bootstrap/src/host/bitmask.rs:13:14
   |
13 | pub const fn insert(value: u32, high: u8, low: u8, field: u32) -> u32 {
   |              ^^^^^^

warning: function `is_set` is never used
  --> bootstrap/src/host/bitmask.rs:18:14
   |
18 | pub const fn is_set(value: u32, bit: u8) -> bool {
   |              ^^^^^^

warning: function `set_bit` is never used
  --> bootstrap/src/host/bitmask.rs:22:14
   |
22 | pub const fn set_bit(value: u32, bit: u8) -> u32 {
   |              ^^^^^^^

warning: function `clear_bit` is never used
  --> bootstrap/src/host/bitmask.rs:26:14
   |
26 | pub const fn clear_bit(value: u32, bit: u8) -> u32 {
   |              ^^^^^^^^^

warning: function `toggle_bit` is never used
  --> bootstrap/src/host/bitmask.rs:30:14
   |
30 | pub const fn toggle_bit(value: u32, bit: u8) -> u32 {
   |              ^^^^^^^^^^

warning: function `popcount` is never used
  --> bootstrap/src/host/bitmask.rs:34:8
   |
34 | pub fn popcount(value: u32) -> u8 {
   |        ^^^^^^^^

warning: function `trailing_zeros` is never used
  --> bootstrap/src/host/bitmask.rs:38:8
   |
38 | pub fn trailing_zeros(value: u32) -> u8 {
   |        ^^^^^^^^^^^^^^

warning: function `leading_zeros` is never used
  --> bootstrap/src/host/bitmask.rs:42:8
   |
42 | pub fn leading_zeros(value: u32) -> u8 {
   |        ^^^^^^^^^^^^^

warning: struct `FieldDesc` is never constructed
  --> bootstrap/src/host/bitmask.rs:47:12
   |
47 | pub struct FieldDesc {
   |            ^^^^^^^^^

warning: associated items `new`, `width`, `mask`, `extract`, and `insert` are never used
  --> bootstrap/src/host/bitmask.rs:54:18
   |
53 | impl FieldDesc {
   | -------------- associated items in this implementation
54 |     pub const fn new(name: &'static str, high: u8, low: u8) -> Self {
   |                  ^^^
...
58 |     pub const fn width(self) -> u8 {
   |                  ^^^^^
...
62 |     pub const fn mask(self) -> u32 {
   |                  ^^^^
...
66 |     pub const fn extract(self, value: u32) -> u32 {
   |                  ^^^^^^^
...
70 |     pub const fn insert(self, value: u32, field: u32) -> u32 {
   |                  ^^^^^^

warning: enum `BitError` is never used
 --> bootstrap/src/host/bitstream.rs:2:10
  |
2 | pub enum BitError {
  |          ^^^^^^^^

warning: struct `BitstreamReader` is never constructed
  --> bootstrap/src/host/bitstream.rs:17:12
   |
17 | pub struct BitstreamReader<'a> {
   |            ^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/bitstream.rs:24:12
    |
 23 | impl<'a> BitstreamReader<'a> {
    | ---------------------------- associated items in this implementation
 24 |     pub fn new(data: &'a [u8]) -> Self {
    |            ^^^
...
 32 |     pub fn bits_remaining(&self) -> usize {
    |            ^^^^^^^^^^^^^^
...
 37 |     pub fn bytes_consumed(&self) -> usize {
    |            ^^^^^^^^^^^^^^
...
 45 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
 49 |     pub fn read_bit(&mut self) -> Result<bool, BitError> {
    |            ^^^^^^^^
...
 62 |     pub fn read_bits(&mut self, count: u8) -> Result<u64, BitError> {
    |            ^^^^^^^^^
...
 76 |     pub fn read_u8(&mut self) -> Result<u8, BitError> {
    |            ^^^^^^^
...
 80 |     pub fn read_u16_le(&mut self) -> Result<u16, BitError> {
    |            ^^^^^^^^^^^
...
 86 |     pub fn read_u32_le(&mut self) -> Result<u32, BitError> {
    |            ^^^^^^^^^^^
...
 94 |     pub fn align_to_byte(&mut self) {
    |            ^^^^^^^^^^^^^
...
101 |     pub fn skip_bits(&mut self, count: usize) -> Result<(), BitError> {
    |            ^^^^^^^^^

warning: enum `ChainError` is never used
 --> bootstrap/src/host/bufchain.rs:2:10
  |
2 | pub enum ChainError {
  |          ^^^^^^^^^^

warning: constant `MAX_SEGMENT` is never used
  --> bootstrap/src/host/bufchain.rs:28:11
   |
28 | pub const MAX_SEGMENT: usize = 4096;
   |           ^^^^^^^^^^^

warning: constant `MAX_CHAIN_BYTES` is never used
  --> bootstrap/src/host/bufchain.rs:29:11
   |
29 | pub const MAX_CHAIN_BYTES: usize = 65536;
   |           ^^^^^^^^^^^^^^^

warning: struct `BufSegment` is never constructed
  --> bootstrap/src/host/bufchain.rs:32:12
   |
32 | pub struct BufSegment {
   |            ^^^^^^^^^^

warning: associated items `new`, `len`, `is_empty`, and `end_addr` are never used
  --> bootstrap/src/host/bufchain.rs:38:12
   |
37 | impl BufSegment {
   | --------------- associated items in this implementation
38 |     pub fn new(data: Vec<u8>, addr: u64) -> Result<Self, ChainError> {
   |            ^^^
...
48 |     pub fn len(&self) -> usize {
   |            ^^^
...
52 |     pub fn is_empty(&self) -> bool {
   |            ^^^^^^^^
...
56 |     pub fn end_addr(&self) -> u64 {
   |            ^^^^^^^^

warning: struct `BufChain` is never constructed
  --> bootstrap/src/host/bufchain.rs:62:12
   |
62 | pub struct BufChain {
   |            ^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/bufchain.rs:67:12
    |
 66 | impl BufChain {
    | ------------- associated items in this implementation
 67 |     pub fn new() -> Self {
    |            ^^^
...
 73 |     pub fn push(&mut self, seg: BufSegment) -> Result<(), ChainError> {
    |            ^^^^
...
 85 |     pub fn get(&self, index: usize) -> Result<&BufSegment, ChainError> {
    |            ^^^
...
 94 |     pub fn segments(&self) -> &[BufSegment] {
    |            ^^^^^^^^
...
 98 |     pub fn len(&self) -> usize {
    |            ^^^
...
102 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
106 |     pub fn total_bytes(&self) -> usize {
    |            ^^^^^^^^^^^
...
110 |     pub fn flatten(&self) -> Vec<u8> {
    |            ^^^^^^^
...
118 |     pub fn addr_range(&self) -> Option<(u64, u64)> {
    |            ^^^^^^^^^^
...
132 |     pub fn clear(&mut self) {
    |            ^^^^^
...
136 |     pub fn stats(&self) -> ChainStats {
    |            ^^^^^

warning: struct `ChainStats` is never constructed
   --> bootstrap/src/host/bufchain.rs:153:12
    |
153 | pub struct ChainStats {
    |            ^^^^^^^^^^

warning: constant `CAP_INFERENCE` is never used
 --> bootstrap/src/host/capflags.rs:1:11
  |
1 | pub const CAP_INFERENCE: u32 = 1 << 0;
  |           ^^^^^^^^^^^^^

warning: constant `CAP_DMA` is never used
 --> bootstrap/src/host/capflags.rs:2:11
  |
2 | pub const CAP_DMA: u32 = 1 << 1;
  |           ^^^^^^^

warning: constant `CAP_IRQ` is never used
 --> bootstrap/src/host/capflags.rs:3:11
  |
3 | pub const CAP_IRQ: u32 = 1 << 2;
  |           ^^^^^^^

warning: constant `CAP_TERNARY` is never used
 --> bootstrap/src/host/capflags.rs:4:11
  |
4 | pub const CAP_TERNARY: u32 = 1 << 3;
  |           ^^^^^^^^^^^

warning: constant `CAP_CRC32` is never used
 --> bootstrap/src/host/capflags.rs:5:11
  |
5 | pub const CAP_CRC32: u32 = 1 << 4;
  |           ^^^^^^^^^

warning: constant `CAP_SCATTER_GATHER` is never used
 --> bootstrap/src/host/capflags.rs:6:11
  |
6 | pub const CAP_SCATTER_GATHER: u32 = 1 << 5;
  |           ^^^^^^^^^^^^^^^^^^

warning: constant `CAP_WEIGHT_VALIDATION` is never used
 --> bootstrap/src/host/capflags.rs:7:11
  |
7 | pub const CAP_WEIGHT_VALIDATION: u32 = 1 << 6;
  |           ^^^^^^^^^^^^^^^^^^^^^

warning: constant `CAP_MULTI_LAYER` is never used
 --> bootstrap/src/host/capflags.rs:8:11
  |
8 | pub const CAP_MULTI_LAYER: u32 = 1 << 7;
  |           ^^^^^^^^^^^^^^^

warning: constant `CAP_DEBUG_CSR` is never used
 --> bootstrap/src/host/capflags.rs:9:11
  |
9 | pub const CAP_DEBUG_CSR: u32 = 1 << 8;
  |           ^^^^^^^^^^^^^

warning: constant `CAP_WATCHDOG` is never used
  --> bootstrap/src/host/capflags.rs:10:11
   |
10 | pub const CAP_WATCHDOG: u32 = 1 << 9;
   |           ^^^^^^^^^^^^

warning: struct `CapFlags` is never constructed
  --> bootstrap/src/host/capflags.rs:13:12
   |
13 | pub struct CapFlags(u32);
   |            ^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/capflags.rs:16:18
   |
15 | impl CapFlags {
   | ------------- associated items in this implementation
16 |     pub const fn none() -> Self {
   |                  ^^^^
...
20 |     pub const fn all() -> Self {
   |                  ^^^
...
24 |     pub const fn from_bits(bits: u32) -> Self {
   |                  ^^^^^^^^^
...
28 |     pub const fn bits(self) -> u32 {
   |                  ^^^^
...
32 |     pub const fn has(self, cap: u32) -> bool {
   |                  ^^^
...
36 |     pub const fn set(mut self, cap: u32) -> Self {
   |                  ^^^
...
41 |     pub const fn clear(mut self, cap: u32) -> Self {
   |                  ^^^^^
...
46 |     pub const fn is_empty(self) -> bool {
   |                  ^^^^^^^^
...
50 |     pub fn count(self) -> u32 {
   |            ^^^^^
...
54 |     pub fn missing(self, required: CapFlags) -> CapFlags {
   |            ^^^^^^^
...
58 |     pub fn satisfies(self, required: CapFlags) -> bool {
   |            ^^^^^^^^^
...
62 |     pub fn names(self) -> Vec<&'static str> {
   |            ^^^^^

warning: struct `CapabilityError` is never constructed
  --> bootstrap/src/host/capflags.rs:96:12
   |
96 | pub struct CapabilityError {
   |            ^^^^^^^^^^^^^^^

warning: function `check_capabilities` is never used
   --> bootstrap/src/host/capflags.rs:108:8
    |
108 | pub fn check_capabilities(have: CapFlags, need: CapFlags) -> Result<(), CapabilityError> {
    |        ^^^^^^^^^^^^^^^^^^

warning: constant `BASE_CAPABILITIES` is never used
   --> bootstrap/src/host/capflags.rs:117:11
    |
117 | pub const BASE_CAPABILITIES: CapFlags = CapFlags::none()
    |           ^^^^^^^^^^^^^^^^^

warning: constant `FULL_CAPABILITIES` is never used
   --> bootstrap/src/host/capflags.rs:122:11
    |
122 | pub const FULL_CAPABILITIES: CapFlags = CapFlags::all();
    |           ^^^^^^^^^^^^^^^^^

warning: enum `ChecksumKind` is never used
 --> bootstrap/src/host/checksum.rs:2:10
  |
2 | pub enum ChecksumKind {
  |          ^^^^^^^^^^^^

warning: methods `name` and `digest_size` are never used
  --> bootstrap/src/host/checksum.rs:10:12
   |
 9 | impl ChecksumKind {
   | ----------------- methods in this implementation
10 |     pub fn name(self) -> &'static str {
   |            ^^^^
...
19 |     pub fn digest_size(self) -> usize {
   |            ^^^^^^^^^^^

warning: enum `ChecksumError` is never used
  --> bootstrap/src/host/checksum.rs:30:10
   |
30 | pub enum ChecksumError {
   |          ^^^^^^^^^^^^^

warning: struct `Digest` is never constructed
  --> bootstrap/src/host/checksum.rs:47:12
   |
47 | pub struct Digest {
   |            ^^^^^^

warning: associated items `new` and `as_u32` are never used
  --> bootstrap/src/host/checksum.rs:53:12
   |
52 | impl Digest {
   | ----------- associated items in this implementation
53 |     pub fn new(kind: ChecksumKind, bytes: Vec<u8>) -> Result<Self, ChecksumError> {
   |            ^^^
...
63 |     pub fn as_u32(&self) -> u32 {
   |            ^^^^^^

warning: function `crc32_table` is never used
  --> bootstrap/src/host/checksum.rs:73:4
   |
73 | fn crc32_table() -> &'static [u32; 256] {
   |    ^^^^^^^^^^^

warning: function `compute_crc32` is never used
  --> bootstrap/src/host/checksum.rs:96:4
   |
96 | fn compute_crc32(data: &[u8]) -> u32 {
   |    ^^^^^^^^^^^^^

warning: function `compute_sum8` is never used
   --> bootstrap/src/host/checksum.rs:105:4
    |
105 | fn compute_sum8(data: &[u8]) -> u8 {
    |    ^^^^^^^^^^^^

warning: function `compute_xor8` is never used
   --> bootstrap/src/host/checksum.rs:113:4
    |
113 | fn compute_xor8(data: &[u8]) -> u8 {
    |    ^^^^^^^^^^^^

warning: function `compute_fletcher16` is never used
   --> bootstrap/src/host/checksum.rs:121:4
    |
121 | fn compute_fletcher16(data: &[u8]) -> u16 {
    |    ^^^^^^^^^^^^^^^^^^

warning: function `checksum` is never used
   --> bootstrap/src/host/checksum.rs:131:8
    |
131 | pub fn checksum(kind: ChecksumKind, data: &[u8]) -> Digest {
    |        ^^^^^^^^

warning: function `verify` is never used
   --> bootstrap/src/host/checksum.rs:152:8
    |
152 | pub fn verify(expected: &Digest, data: &[u8]) -> bool {
    |        ^^^^^^

warning: enum `QueueError` is never used
 --> bootstrap/src/host/cmdq.rs:2:10
  |
2 | pub enum QueueError {
  |          ^^^^^^^^^^

warning: enum `Priority` is never used
  --> bootstrap/src/host/cmdq.rs:19:10
   |
19 | pub enum Priority {
   |          ^^^^^^^^

warning: struct `QueuedCommand` is never constructed
  --> bootstrap/src/host/cmdq.rs:33:12
   |
33 | pub struct QueuedCommand {
   |            ^^^^^^^^^^^^^

warning: enum `CmdKind` is never used
  --> bootstrap/src/host/cmdq.rs:41:10
   |
41 | pub enum CmdKind {
   |          ^^^^^^^

warning: struct `Slot` is never constructed
  --> bootstrap/src/host/cmdq.rs:51:8
   |
51 | struct Slot {
   |        ^^^^

warning: constant `DEFAULT_CAPACITY` is never used
  --> bootstrap/src/host/cmdq.rs:56:11
   |
56 | pub const DEFAULT_CAPACITY: usize = 32;
   |           ^^^^^^^^^^^^^^^^

warning: struct `CommandQueue` is never constructed
  --> bootstrap/src/host/cmdq.rs:59:12
   |
59 | pub struct CommandQueue {
   |            ^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/cmdq.rs:68:12
    |
 67 | impl CommandQueue {
    | ----------------- associated items in this implementation
 68 |     pub fn new(capacity: usize) -> Self {
    |            ^^^
...
 79 |     pub fn enqueue(&mut self, kind: CmdKind, priority: Priority, payload: Vec<u8>) -> Result<u64, QueueError> {
    |            ^^^^^^^
...
 99 |     pub fn dequeue(&mut self) -> Result<QueuedCommand, QueueError> {
    |            ^^^^^^^
...
117 |     pub fn peek(&self) -> Result<&QueuedCommand, QueueError> {
    |            ^^^^
...
132 |     pub fn len(&self) -> usize {
    |            ^^^
...
136 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
140 |     pub fn is_full(&self) -> bool {
    |            ^^^^^^^
...
144 |     pub fn capacity(&self) -> usize {
    |            ^^^^^^^^
...
148 |     pub fn clear(&mut self) {
    |            ^^^^^
...
152 |     pub fn contains(&self, id: u64) -> bool {
    |            ^^^^^^^^
...
156 |     pub fn remove(&mut self, id: u64) -> Option<QueuedCommand> {
    |            ^^^^^^
...
163 |     pub fn stats(&self) -> QueueStats {
    |            ^^^^^

warning: struct `QueueStats` is never constructed
   --> bootstrap/src/host/cmdq.rs:174:12
    |
174 | pub struct QueueStats {
    |            ^^^^^^^^^^

warning: method `utilization` is never used
   --> bootstrap/src/host/cmdq.rs:182:12
    |
181 | impl QueueStats {
    | --------------- method in this implementation
182 |     pub fn utilization(&self) -> f64 {
    |            ^^^^^^^^^^^

warning: enum `ConfigError` is never used
 --> bootstrap/src/host/config.rs:2:10
  |
2 | pub enum ConfigError {
  |          ^^^^^^^^^^^

warning: constant `MIN_LAYERS` is never used
  --> bootstrap/src/host/config.rs:36:11
   |
36 | pub const MIN_LAYERS: u32 = 1;
   |           ^^^^^^^^^^

warning: constant `MAX_LAYERS` is never used
  --> bootstrap/src/host/config.rs:37:11
   |
37 | pub const MAX_LAYERS: u32 = 256;
   |           ^^^^^^^^^^

warning: constant `MIN_NEURONS` is never used
  --> bootstrap/src/host/config.rs:38:11
   |
38 | pub const MIN_NEURONS: u32 = 1;
   |           ^^^^^^^^^^^

warning: constant `MAX_NEURONS` is never used
  --> bootstrap/src/host/config.rs:39:11
   |
39 | pub const MAX_NEURONS: u32 = 65536;
   |           ^^^^^^^^^^^

warning: constant `MIN_CHUNKS` is never used
  --> bootstrap/src/host/config.rs:40:11
   |
40 | pub const MIN_CHUNKS: u32 = 1;
   |           ^^^^^^^^^^

warning: constant `MIN_THRESHOLD` is never used
  --> bootstrap/src/host/config.rs:41:11
   |
41 | pub const MIN_THRESHOLD: i32 = -32768;
   |           ^^^^^^^^^^^^^

warning: constant `MAX_THRESHOLD` is never used
  --> bootstrap/src/host/config.rs:42:11
   |
42 | pub const MAX_THRESHOLD: i32 = 32767;
   |           ^^^^^^^^^^^^^

warning: constant `DEFAULT_POLL_TIMEOUT_MS` is never used
  --> bootstrap/src/host/config.rs:43:11
   |
43 | pub const DEFAULT_POLL_TIMEOUT_MS: u64 = 5000;
   |           ^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `DEFAULT_POLL_INTERVAL_US` is never used
  --> bootstrap/src/host/config.rs:44:11
   |
44 | pub const DEFAULT_POLL_INTERVAL_US: u64 = 100;
   |           ^^^^^^^^^^^^^^^^^^^^^^^^

warning: struct `HostConfig` is never constructed
  --> bootstrap/src/host/config.rs:47:12
   |
47 | pub struct HostConfig {
   |            ^^^^^^^^^^

warning: associated items `builder`, `validate`, and `total_weights` are never used
   --> bootstrap/src/host/config.rs:76:12
    |
 75 | impl HostConfig {
    | --------------- associated items in this implementation
 76 |     pub fn builder() -> HostConfigBuilder {
    |            ^^^^^^^
...
 80 |     pub fn validate(&self) -> Result<(), ConfigError> {
    |            ^^^^^^^^
...
117 |     pub fn total_weights(&self) -> u64 {
    |            ^^^^^^^^^^^^^

warning: struct `HostConfigBuilder` is never constructed
   --> bootstrap/src/host/config.rs:123:12
    |
123 | pub struct HostConfigBuilder {
    |            ^^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/config.rs:128:12
    |
127 | impl HostConfigBuilder {
    | ---------------------- associated items in this implementation
128 |     pub fn new() -> Self {
    |            ^^^
...
134 |     pub fn layers(mut self, n: u32) -> Self {
    |            ^^^^^^
...
139 |     pub fn neurons(mut self, n: u32) -> Self {
    |            ^^^^^^^
...
144 |     pub fn chunks(mut self, n: u32) -> Self {
    |            ^^^^^^
...
149 |     pub fn threshold(mut self, t: i32) -> Self {
    |            ^^^^^^^^^
...
154 |     pub fn weight_addr(mut self, addr: u64) -> Self {
    |            ^^^^^^^^^^^
...
159 |     pub fn poll_timeout_ms(mut self, ms: u64) -> Self {
    |            ^^^^^^^^^^^^^^^
...
164 |     pub fn poll_interval_us(mut self, us: u64) -> Self {
    |            ^^^^^^^^^^^^^^^^
...
169 |     pub fn max_retries(mut self, n: u8) -> Self {
    |            ^^^^^^^^^^^
...
174 |     pub fn watchdog_timeout_ms(mut self, ms: u64) -> Self {
    |            ^^^^^^^^^^^^^^^^^^^
...
179 |     pub fn build(self) -> Result<HostConfig, ConfigError> {
    |            ^^^^^

warning: enum `ConfigValue` is never used
 --> bootstrap/src/host/configreg.rs:4:10
  |
4 | pub enum ConfigValue {
  |          ^^^^^^^^^^^

warning: enum `RegistryError` is never used
  --> bootstrap/src/host/configreg.rs:27:10
   |
27 | pub enum RegistryError {
   |          ^^^^^^^^^^^^^

warning: struct `Entry` is never constructed
  --> bootstrap/src/host/configreg.rs:46:8
   |
46 | struct Entry {
   |        ^^^^^

warning: struct `ConfigRegistry` is never constructed
  --> bootstrap/src/host/configreg.rs:52:12
   |
52 | pub struct ConfigRegistry {
   |            ^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/configreg.rs:58:12
    |
 57 | impl ConfigRegistry {
    | ------------------- associated items in this implementation
 58 |     pub fn new() -> Self {
    |            ^^^
...
 65 |     pub fn set(&mut self, key: &str, value: ConfigValue) -> Result<(), RegistryError> {
    |            ^^^
...
 76 |     pub fn set_readonly(&mut self, key: &str, value: ConfigValue) {
    |            ^^^^^^^^^^^^
...
 81 |     pub fn get(&self, key: &str) -> Result<&ConfigValue, RegistryError> {
    |            ^^^
...
 88 |     pub fn get_bool(&self, key: &str) -> Result<bool, RegistryError> {
    |            ^^^^^^^^
...
 95 |     pub fn get_u32(&self, key: &str) -> Result<u32, RegistryError> {
    |            ^^^^^^^
...
102 |     pub fn get_u64(&self, key: &str) -> Result<u64, RegistryError> {
    |            ^^^^^^^
...
109 |     pub fn get_string(&self, key: &str) -> Result<&str, RegistryError> {
    |            ^^^^^^^^^^
...
116 |     pub fn contains(&self, key: &str) -> bool {
    |            ^^^^^^^^
...
120 |     pub fn remove(&mut self, key: &str) -> bool {
    |            ^^^^^^
...
129 |     pub fn keys(&self) -> Vec<&str> {
    |            ^^^^
...
133 |     pub fn len(&self) -> usize {
    |            ^^^
...
137 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
141 |     pub fn change_count(&self) -> u64 {
    |            ^^^^^^^^^^^^
...
145 |     pub fn is_readonly(&self, key: &str) -> bool {
    |            ^^^^^^^^^^^
...
149 |     pub fn clear(&mut self) {
    |            ^^^^^
...
153 |     pub fn snapshot(&self) -> Vec<(&str, &ConfigValue, bool)> {
    |            ^^^^^^^^

warning: constant `STATUS_BUSY_BIT` is never used
  --> bootstrap/src/host/csr_map.rs:83:11
   |
83 | pub const STATUS_BUSY_BIT: u32 = 0;
   |           ^^^^^^^^^^^^^^^

warning: constant `STATUS_BUSY_MASK` is never used
  --> bootstrap/src/host/csr_map.rs:92:11
   |
92 | pub const STATUS_BUSY_MASK: u32 = 1 << STATUS_BUSY_BIT;
   |           ^^^^^^^^^^^^^^^^

warning: enum `RingError` is never used
 --> bootstrap/src/host/descring.rs:2:10
  |
2 | pub enum RingError {
  |          ^^^^^^^^^

warning: constant `DEFAULT_RING_SIZE` is never used
  --> bootstrap/src/host/descring.rs:22:11
   |
22 | pub const DEFAULT_RING_SIZE: usize = 16;
   |           ^^^^^^^^^^^^^^^^^

warning: enum `DescStatus` is never used
  --> bootstrap/src/host/descring.rs:25:10
   |
25 | pub enum DescStatus {
   |          ^^^^^^^^^^

warning: struct `Descriptor` is never constructed
  --> bootstrap/src/host/descring.rs:46:12
   |
46 | pub struct Descriptor {
   |            ^^^^^^^^^^

warning: associated items `new` and `with_tag` are never used
  --> bootstrap/src/host/descring.rs:54:18
   |
53 | impl Descriptor {
   | --------------- associated items in this implementation
54 |     pub const fn new(addr: u64, len: u32) -> Self {
   |                  ^^^
...
63 |     pub fn with_tag(mut self, tag: u8) -> Self {
   |            ^^^^^^^^

warning: struct `DescriptorRing` is never constructed
  --> bootstrap/src/host/descring.rs:70:12
   |
70 | pub struct DescriptorRing {
   |            ^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/descring.rs:78:12
    |
 77 | impl DescriptorRing {
    | ------------------- associated items in this implementation
 78 |     pub fn new(capacity: usize) -> Self {
    |            ^^^
...
 88 |     pub fn enqueue(&mut self, desc: Descriptor) -> Result<usize, RingError> {
    |            ^^^^^^^
...
101 |     pub fn dequeue(&mut self) -> Result<Descriptor, RingError> {
    |            ^^^^^^^
...
113 |     pub fn peek(&self) -> Result<&Descriptor, RingError> {
    |            ^^^^
...
120 |     pub fn get(&self, index: usize) -> Result<&Descriptor, RingError> {
    |            ^^^
...
130 |     pub fn get_mut(&mut self, index: usize) -> Result<&mut Descriptor, RingError> {
    |            ^^^^^^^
...
140 |     pub fn mark_active(&mut self, index: usize) -> Result<(), RingError> {
    |            ^^^^^^^^^^^
...
146 |     pub fn mark_completed(&mut self, index: usize) -> Result<(), RingError> {
    |            ^^^^^^^^^^^^^^
...
152 |     pub fn mark_error(&mut self, index: usize) -> Result<(), RingError> {
    |            ^^^^^^^^^^
...
158 |     pub fn len(&self) -> usize {
    |            ^^^
...
162 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
166 |     pub fn is_full(&self) -> bool {
    |            ^^^^^^^
...
170 |     pub fn capacity(&self) -> usize {
    |            ^^^^^^^^
...
174 |     pub fn clear(&mut self) {
    |            ^^^^^
...
183 |     pub fn count_by_status(&self, status: DescStatus) -> usize {
    |            ^^^^^^^^^^^^^^^
...
187 |     pub fn stats(&self) -> RingStats {
    |            ^^^^^

warning: struct `RingStats` is never constructed
   --> bootstrap/src/host/descring.rs:201:12
    |
201 | pub struct RingStats {
    |            ^^^^^^^^^

warning: constant `COUNTER_INFERENCE_COUNT` is never used
 --> bootstrap/src/host/diag.rs:3:11
  |
3 | pub const COUNTER_INFERENCE_COUNT: &str = "inference_count";
  |           ^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `COUNTER_INFERENCE_ERRORS` is never used
 --> bootstrap/src/host/diag.rs:4:11
  |
4 | pub const COUNTER_INFERENCE_ERRORS: &str = "inference_errors";
  |           ^^^^^^^^^^^^^^^^^^^^^^^^

warning: constant `COUNTER_DMA_TRANSFERS` is never used
 --> bootstrap/src/host/diag.rs:5:11
  |
5 | pub const COUNTER_DMA_TRANSFERS: &str = "dma_transfers";
  |           ^^^^^^^^^^^^^^^^^^^^^

warning: constant `COUNTER_DMA_BYTES` is never used
 --> bootstrap/src/host/diag.rs:6:11
  |
6 | pub const COUNTER_DMA_BYTES: &str = "dma_bytes";
  |           ^^^^^^^^^^^^^^^^^

warning: constant `COUNTER_WEIGHT_LOADS` is never used
 --> bootstrap/src/host/diag.rs:7:11
  |
7 | pub const COUNTER_WEIGHT_LOADS: &str = "weight_loads";
  |           ^^^^^^^^^^^^^^^^^^^^

warning: constant `COUNTER_RETRIES` is never used
 --> bootstrap/src/host/diag.rs:8:11
  |
8 | pub const COUNTER_RETRIES: &str = "retries";
  |           ^^^^^^^^^^^^^^^

warning: constant `COUNTER_TIMEOUTS` is never used
 --> bootstrap/src/host/diag.rs:9:11
  |
9 | pub const COUNTER_TIMEOUTS: &str = "timeouts";
  |           ^^^^^^^^^^^^^^^^

warning: constant `COUNTER_WATCHDOG_FEEDS` is never used
  --> bootstrap/src/host/diag.rs:10:11
   |
10 | pub const COUNTER_WATCHDOG_FEEDS: &str = "watchdog_feeds";
   |           ^^^^^^^^^^^^^^^^^^^^^^

warning: struct `DiagCounters` is never constructed
  --> bootstrap/src/host/diag.rs:13:12
   |
13 | pub struct DiagCounters {
   |            ^^^^^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/diag.rs:18:12
   |
17 | impl DiagCounters {
   | ----------------- associated items in this implementation
18 |     pub fn new() -> Self {
   |            ^^^
...
24 |     pub fn inc(&mut self, name: &str) -> u64 {
   |            ^^^
...
30 |     pub fn inc_by(&mut self, name: &str, delta: u64) -> u64 {
   |            ^^^^^^
...
36 |     pub fn dec(&mut self, name: &str) -> u64 {
   |            ^^^
...
42 |     pub fn set(&mut self, name: &str, value: u64) {
   |            ^^^
...
46 |     pub fn get(&self, name: &str) -> u64 {
   |            ^^^
...
50 |     pub fn names(&self) -> Vec<&str> {
   |            ^^^^^
...
54 |     pub fn len(&self) -> usize {
   |            ^^^
...
58 |     pub fn is_empty(&self) -> bool {
   |            ^^^^^^^^
...
62 |     pub fn snapshot(&self) -> Vec<(&str, u64)> {
   |            ^^^^^^^^
...
69 |     pub fn reset(&mut self) {
   |            ^^^^^
...
75 |     pub fn clear(&mut self) {
   |            ^^^^^
...
79 |     pub fn summary(&self) -> String {
   |            ^^^^^^^

warning: methods `into_mmio`, `is_busy`, `is_done`, `has_error`, `read_irq_status`, and `clear_irq` are never used
   --> bootstrap/src/host/driver.rs:88:12
    |
 71 | impl<M: Mmio> BitnetDriver<M> {
    | ----------------------------- methods in this implementation
...
 88 |     pub fn into_mmio(self) -> M {
    |            ^^^^^^^^^
...
123 |     pub fn is_busy(&mut self) -> bool {
    |            ^^^^^^^
...
128 |     pub fn is_done(&mut self) -> bool {
    |            ^^^^^^^
...
133 |     pub fn has_error(&mut self) -> bool {
    |            ^^^^^^^^^
...
172 |     pub fn read_irq_status(&mut self) -> u32 {
    |            ^^^^^^^^^^^^^^^
...
188 |     pub fn clear_irq(&mut self, _mask: u32) {
    |            ^^^^^^^^^

warning: enum `EndpointError` is never used
 --> bootstrap/src/host/endpoint.rs:4:10
  |
4 | pub enum EndpointError {
  |          ^^^^^^^^^^^^^

warning: enum `Access` is never used
  --> bootstrap/src/host/endpoint.rs:25:10
   |
25 | pub enum Access {
   |          ^^^^^^

warning: struct `Endpoint` is never constructed
  --> bootstrap/src/host/endpoint.rs:42:12
   |
42 | pub struct Endpoint {
   |            ^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/endpoint.rs:51:12
   |
50 | impl Endpoint {
   | ------------- associated items in this implementation
51 |     pub fn new(name: &str, base: u32, size: u32, access: Access) -> Self {
   |            ^^^
...
61 |     pub fn with_description(mut self, desc: &str) -> Self {
   |            ^^^^^^^^^^^^^^^^
...
66 |     pub fn end(&self) -> u32 {
   |            ^^^
...
70 |     pub fn contains(&self, offset: u32) -> bool {
   |            ^^^^^^^^
...
74 |     pub fn offset_of(&self, offset: u32) -> Option<u32> {
   |            ^^^^^^^^^
...
82 |     pub fn can_read(&self) -> bool {
   |            ^^^^^^^^
...
86 |     pub fn can_write(&self) -> bool {
   |            ^^^^^^^^^
...
90 |     fn overlaps(&self, other: &Endpoint) -> bool {
   |        ^^^^^^^^

warning: struct `EndpointRegistry` is never constructed
  --> bootstrap/src/host/endpoint.rs:96:12
   |
96 | pub struct EndpointRegistry {
   |            ^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/endpoint.rs:101:12
    |
100 | impl EndpointRegistry {
    | --------------------- associated items in this implementation
101 |     pub fn new() -> Self {
    |            ^^^
...
107 |     pub fn register(&mut self, ep: Endpoint) -> Result<(), EndpointError> {
    |            ^^^^^^^^
...
123 |     pub fn unregister(&mut self, name: &str) -> bool {
    |            ^^^^^^^^^^
...
127 |     pub fn get(&self, name: &str) -> Option<&Endpoint> {
    |            ^^^
...
131 |     pub fn get_mut(&mut self, name: &str) -> Option<&mut Endpoint> {
    |            ^^^^^^^
...
135 |     pub fn find_by_offset(&self, offset: u32) -> Option<&Endpoint> {
    |            ^^^^^^^^^^^^^^
...
139 |     pub fn validate_read(&self, offset: u32) -> Result<&Endpoint, EndpointError> {
    |            ^^^^^^^^^^^^^
...
147 |     pub fn validate_write(&self, offset: u32) -> Result<&Endpoint, EndpointError> {
    |            ^^^^^^^^^^^^^^
...
155 |     pub fn len(&self) -> usize {
    |            ^^^
...
159 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
163 |     pub fn names(&self) -> Vec<&str> {
    |            ^^^^^
...
167 |     pub fn endpoints(&self) -> Vec<&Endpoint> {
    |            ^^^^^^^^^
...
171 |     pub fn clear(&mut self) {
    |            ^^^^^

warning: enum `EventKind` is never used
 --> bootstrap/src/host/eventlog.rs:2:10
  |
2 | pub enum EventKind {
  |          ^^^^^^^^^

warning: method `name` is never used
  --> bootstrap/src/host/eventlog.rs:22:12
   |
21 | impl EventKind {
   | -------------- method in this implementation
22 |     pub fn name(self) -> &'static str {
   |            ^^^^

warning: struct `Event` is never constructed
  --> bootstrap/src/host/eventlog.rs:45:12
   |
45 | pub struct Event {
   |            ^^^^^

warning: associated items `new`, `with_data`, and `duration_since` are never used
  --> bootstrap/src/host/eventlog.rs:52:12
   |
51 | impl Event {
   | ---------- associated items in this implementation
52 |     pub fn new(kind: EventKind, timestamp_us: u64) -> Self {
   |            ^^^
...
60 |     pub fn with_data(kind: EventKind, timestamp_us: u64, data: u32) -> Self {
   |            ^^^^^^^^^
...
68 |     pub fn duration_since(&self, earlier: &Event) -> Option<u64> {
   |            ^^^^^^^^^^^^^^

warning: constant `DEFAULT_CAPACITY` is never used
  --> bootstrap/src/host/eventlog.rs:77:11
   |
77 | pub const DEFAULT_CAPACITY: usize = 256;
   |           ^^^^^^^^^^^^^^^^

warning: struct `EventLog` is never constructed
  --> bootstrap/src/host/eventlog.rs:80:12
   |
80 | pub struct EventLog {
   |            ^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/eventlog.rs:87:12
    |
 86 | impl EventLog {
    | ------------- associated items in this implementation
 87 |     pub fn new(capacity: usize) -> Self {
    |            ^^^
...
 95 |     pub fn record(&mut self, kind: EventKind, timestamp_us: u64) {
    |            ^^^^^^
...
 99 |     pub fn record_with_data(&mut self, kind: EventKind, timestamp_us: u64, data: u32) {
    |            ^^^^^^^^^^^^^^^^
...
103 |     fn push(&mut self, event: Event) {
    |        ^^^^
...
111 |     pub fn len(&self) -> usize {
    |            ^^^
...
115 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
119 |     pub fn events(&self) -> &[Event] {
    |            ^^^^^^
...
123 |     pub fn last(&self) -> Option<&Event> {
    |            ^^^^
...
127 |     pub fn first(&self) -> Option<&Event> {
    |            ^^^^^
...
131 |     pub fn find(&self, kind: EventKind) -> Option<&Event> {
    |            ^^^^
...
135 |     pub fn find_all(&self, kind: EventKind) -> Vec<&Event> {
    |            ^^^^^^^^
...
139 |     pub fn count(&self, kind: EventKind) -> usize {
    |            ^^^^^
...
143 |     pub fn clear(&mut self) {
    |            ^^^^^
...
148 |     pub fn dropped(&self) -> u64 {
    |            ^^^^^^^
...
152 |     pub fn capacity(&self) -> usize {
    |            ^^^^^^^^
...
156 |     pub fn duration(&self) -> Option<u64> {
    |            ^^^^^^^^
...
162 |     pub fn stats(&self) -> EventLogStats {
    |            ^^^^^
...
172 |     pub fn filter_by_range(&self, start_us: u64, end_us: u64) -> Vec<&Event> {
    |            ^^^^^^^^^^^^^^^

warning: struct `EventLogStats` is never constructed
   --> bootstrap/src/host/eventlog.rs:181:12
    |
181 | pub struct EventLogStats {
    |            ^^^^^^^^^^^^^

warning: enum `ImageError` is never used
 --> bootstrap/src/host/firmware.rs:2:10
  |
2 | pub enum ImageError {
  |          ^^^^^^^^^^

warning: constant `MAGIC` is never used
  --> bootstrap/src/host/firmware.rs:40:11
   |
40 | pub const MAGIC: u32 = 0x54465700;
   |           ^^^^^

warning: constant `VERSION` is never used
  --> bootstrap/src/host/firmware.rs:41:11
   |
41 | pub const VERSION: u8 = 1;
   |           ^^^^^^^

warning: constant `HEADER_SIZE` is never used
  --> bootstrap/src/host/firmware.rs:42:11
   |
42 | pub const HEADER_SIZE: u16 = 128;
   |           ^^^^^^^^^^^

warning: constant `MAX_SECTIONS` is never used
  --> bootstrap/src/host/firmware.rs:43:11
   |
43 | pub const MAX_SECTIONS: u8 = 8;
   |           ^^^^^^^^^^^^

warning: constant `SECTION_CODE` is never used
  --> bootstrap/src/host/firmware.rs:45:11
   |
45 | pub const SECTION_CODE: &[u8; 4] = b"CODE";
   |           ^^^^^^^^^^^^

warning: constant `SECTION_DATA` is never used
  --> bootstrap/src/host/firmware.rs:46:11
   |
46 | pub const SECTION_DATA: &[u8; 4] = b"DATA";
   |           ^^^^^^^^^^^^

warning: constant `SECTION_CFG` is never used
  --> bootstrap/src/host/firmware.rs:47:11
   |
47 | pub const SECTION_CFG: &[u8; 4] = b"CFG\0";
   |           ^^^^^^^^^^^

warning: constant `SECTION_WGT` is never used
  --> bootstrap/src/host/firmware.rs:48:11
   |
48 | pub const SECTION_WGT: &[u8; 4] = b"WGT\0";
   |           ^^^^^^^^^^^

warning: struct `SectionHeader` is never constructed
  --> bootstrap/src/host/firmware.rs:51:12
   |
51 | pub struct SectionHeader {
   |            ^^^^^^^^^^^^^

warning: associated items `new`, `tag_str`, and `end` are never used
  --> bootstrap/src/host/firmware.rs:59:12
   |
58 | impl SectionHeader {
   | ------------------ associated items in this implementation
59 |     pub fn new(tag: &[u8; 4], offset: u32, size: u32, crc32: u32) -> Self {
   |            ^^^
...
68 |     pub fn tag_str(&self) -> &str {
   |            ^^^^^^^
...
72 |     pub fn end(&self) -> u32 {
   |            ^^^

warning: struct `FirmwareHeader` is never constructed
  --> bootstrap/src/host/firmware.rs:78:12
   |
78 | pub struct FirmwareHeader {
   |            ^^^^^^^^^^^^^^

warning: methods `find_section` and `require_section` are never used
  --> bootstrap/src/host/firmware.rs:87:12
   |
86 | impl FirmwareHeader {
   | ------------------- methods in this implementation
87 |     pub fn find_section(&self, tag: &[u8; 4]) -> Option<&SectionHeader> {
   |            ^^^^^^^^^^^^
...
91 |     pub fn require_section(&self, tag: &[u8; 4]) -> Result<&SectionHeader, ImageError> {
   |            ^^^^^^^^^^^^^^^

warning: struct `FirmwareImage` is never constructed
  --> bootstrap/src/host/firmware.rs:99:12
   |
99 | pub struct FirmwareImage {
   |            ^^^^^^^^^^^^^

warning: associated items `parse`, `section_data`, `verify_crc`, `total_image_size`, and `code_size` are never used
   --> bootstrap/src/host/firmware.rs:105:12
    |
104 | impl FirmwareImage {
    | ------------------ associated items in this implementation
105 |     pub fn parse(data: &[u8]) -> Result<Self, ImageError> {
    |            ^^^^^
...
192 |     pub fn section_data(&self, section: &SectionHeader) -> &[u8] {
    |            ^^^^^^^^^^^^
...
198 |     pub fn verify_crc(&self, section: &SectionHeader) -> bool {
    |            ^^^^^^^^^^
...
203 |     pub fn total_image_size(&self) -> usize {
    |            ^^^^^^^^^^^^^^^^
...
207 |     pub fn code_size(&self) -> Option<u32> {
    |            ^^^^^^^^^

warning: function `crc32` is never used
   --> bootstrap/src/host/firmware.rs:212:4
    |
212 | fn crc32(data: &[u8]) -> u32 {
    |    ^^^^^

warning: function `build_image` is never used
   --> bootstrap/src/host/firmware.rs:240:8
    |
240 | pub fn build_image(
    |        ^^^^^^^^^^^

warning: enum `Health` is never used
 --> bootstrap/src/host/health.rs:2:10
  |
2 | pub enum Health {
  |          ^^^^^^

warning: enum `Subsystem` is never used
  --> bootstrap/src/host/health.rs:21:10
   |
21 | pub enum Subsystem {
   |          ^^^^^^^^^

warning: struct `SubsystemHealth` is never constructed
  --> bootstrap/src/host/health.rs:44:12
   |
44 | pub struct SubsystemHealth {
   |            ^^^^^^^^^^^^^^^

warning: associated function `new` is never used
  --> bootstrap/src/host/health.rs:52:12
   |
51 | impl SubsystemHealth {
   | -------------------- associated function in this implementation
52 |     pub fn new(subsystem: Subsystem, health: Health, message: &str, timestamp_us: u64) -> Self {
   |            ^^^

warning: struct `HealthMonitor` is never constructed
  --> bootstrap/src/host/health.rs:63:12
   |
63 | pub struct HealthMonitor {
   |            ^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/health.rs:70:12
    |
 69 | impl HealthMonitor {
    | ------------------ associated items in this implementation
 70 |     pub fn new() -> Self {
    |            ^^^
...
 78 |     pub fn report(&mut self, report: SubsystemHealth) {
    |            ^^^^^^
...
 86 |     pub fn get(&self, subsystem: Subsystem) -> Option<&SubsystemHealth> {
    |            ^^^
...
 90 |     pub fn overall(&self) -> Health {
    |            ^^^^^^^
...
 98 |     pub fn score(&self) -> u8 {
    |            ^^^^^
...
107 |     pub fn degraded_subsystems(&self) -> Vec<&SubsystemHealth> {
    |            ^^^^^^^^^^^^^^^^^^^
...
114 |     pub fn check(&mut self, now_us: u64) -> Health {
    |            ^^^^^
...
120 |     pub fn checks(&self) -> u64 {
    |            ^^^^^^
...
124 |     pub fn last_check_us(&self) -> u64 {
    |            ^^^^^^^^^^^^^
...
128 |     pub fn subsystem_count(&self) -> usize {
    |            ^^^^^^^^^^^^^^^
...
132 |     pub fn clear(&mut self) {
    |            ^^^^^
...
138 |     pub fn summary(&self) -> HealthSummary {
    |            ^^^^^^^
...
147 |     fn subsystems_count(&self) -> usize {
    |        ^^^^^^^^^^^^^^^^

warning: struct `HealthSummary` is never constructed
   --> bootstrap/src/host/health.rs:159:12
    |
159 | pub struct HealthSummary {
    |            ^^^^^^^^^^^^^

warning: constant `NUM_BINS` is never used
 --> bootstrap/src/host/histogram.rs:1:11
  |
1 | pub const NUM_BINS: usize = 10;
  |           ^^^^^^^^

warning: constant `BIN_BOUNDARIES` is never used
 --> bootstrap/src/host/histogram.rs:2:11
  |
2 | pub const BIN_BOUNDARIES: [u64; NUM_BINS + 1] = [
  |           ^^^^^^^^^^^^^^

warning: constant `BIN_LABELS` is never used
 --> bootstrap/src/host/histogram.rs:5:11
  |
5 | pub const BIN_LABELS: [&str; NUM_BINS] = [
  |           ^^^^^^^^^^

warning: struct `Histogram` is never constructed
  --> bootstrap/src/host/histogram.rs:11:12
   |
11 | pub struct Histogram {
   |            ^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/histogram.rs:20:12
    |
 19 | impl Histogram {
    | -------------- associated items in this implementation
 20 |     pub fn new() -> Self {
    |            ^^^
...
 30 |     pub fn record(&mut self, latency_us: u64) {
    |            ^^^^^^
...
 43 |     fn find_bin(&self, value: u64) -> usize {
    |        ^^^^^^^^
...
 52 |     pub fn bins(&self) -> &[u64; NUM_BINS] {
    |            ^^^^
...
 56 |     pub fn bin(&self, index: usize) -> u64 {
    |            ^^^
...
 60 |     pub fn count(&self) -> u64 {
    |            ^^^^^
...
 64 |     pub fn sum_us(&self) -> u64 {
    |            ^^^^^^
...
 68 |     pub fn min_us(&self) -> u64 {
    |            ^^^^^^
...
 72 |     pub fn max_us(&self) -> u64 {
    |            ^^^^^^
...
 76 |     pub fn mean_us(&self) -> f64 {
    |            ^^^^^^^
...
 84 |     pub fn percentile(&self, p: f64) -> u64 {
    |            ^^^^^^^^^^
...
 99 |     pub fn p50(&self) -> u64 {
    |            ^^^
...
103 |     pub fn p99(&self) -> u64 {
    |            ^^^
...
107 |     pub fn merge(&mut self, other: &Histogram) {
    |            ^^^^^
...
123 |     pub fn reset(&mut self) {
    |            ^^^^^
...
131 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
135 |     pub fn summary(&self) -> HistogramSummary {
    |            ^^^^^^^

warning: struct `HistogramSummary` is never constructed
   --> bootstrap/src/host/histogram.rs:154:12
    |
154 | pub struct HistogramSummary {
    |            ^^^^^^^^^^^^^^^^

warning: struct `IrqCounters` is never constructed
  --> bootstrap/src/host/irq.rs:80:12
   |
80 | pub struct IrqCounters {
   |            ^^^^^^^^^^^

warning: methods `unregister` and `is_registered` are never used
   --> bootstrap/src/host/irq.rs:122:12
    |
102 | impl IrqHandler {
    | --------------- methods in this implementation
...
122 |     pub fn unregister(&mut self, src: IrqSource) {
    |            ^^^^^^^^^^
...
131 |     pub fn is_registered(&self, src: IrqSource) -> bool {
    |            ^^^^^^^^^^^^^

warning: method `into_parts` is never used
   --> bootstrap/src/host/irq.rs:224:12
    |
202 | impl<M: Mmio> IrqDrivenDriver<M> {
    | -------------------------------- method in this implementation
...
224 |     pub fn into_parts(self) -> (BitnetDriver<M>, IrqHandler) {
    |            ^^^^^^^^^^

warning: type alias `IrqHandlerFn` is never used
 --> bootstrap/src/host/irqrouter.rs:3:10
  |
3 | pub type IrqHandlerFn = fn(IrqSource, u32) -> IrqAction;
  |          ^^^^^^^^^^^^

warning: enum `IrqSource` is never used
 --> bootstrap/src/host/irqrouter.rs:6:10
  |
6 | pub enum IrqSource {
  |          ^^^^^^^^^

warning: enum `IrqAction` is never used
  --> bootstrap/src/host/irqrouter.rs:23:10
   |
23 | pub enum IrqAction {
   |          ^^^^^^^^^

warning: enum `RouteError` is never used
  --> bootstrap/src/host/irqrouter.rs:31:10
   |
31 | pub enum RouteError {
   |          ^^^^^^^^^^

warning: struct `IrqEvent` is never constructed
  --> bootstrap/src/host/irqrouter.rs:50:12
   |
50 | pub struct IrqEvent {
   |            ^^^^^^^^

warning: struct `IrqRouter` is never constructed
  --> bootstrap/src/host/irqrouter.rs:57:12
   |
57 | pub struct IrqRouter {
   |            ^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/irqrouter.rs:66:12
    |
 65 | impl IrqRouter {
    | -------------- associated items in this implementation
 66 |     pub fn new() -> Self {
    |            ^^^
...
 76 |     pub fn register(&mut self, source: IrqSource, handler: IrqHandlerFn) -> Result<(), RouteError> {
    |            ^^^^^^^^
...
 84 |     pub fn unregister(&mut self, source: IrqSource) -> bool {
    |            ^^^^^^^^^^
...
 88 |     pub fn set_mask(&mut self, mask: u8) {
    |            ^^^^^^^^
...
 92 |     pub fn mask(&self) -> u8 {
    |            ^^^^
...
 96 |     pub fn is_masked(&self, source: IrqSource) -> bool {
    |            ^^^^^^^^^
...
101 |     pub fn dispatch(&mut self, event: IrqEvent) -> Option<IrqAction> {
    |            ^^^^^^^^
...
118 |     pub fn handler_count(&self) -> usize {
    |            ^^^^^^^^^^^^^
...
122 |     pub fn has_handler(&self, source: IrqSource) -> bool {
    |            ^^^^^^^^^^^
...
126 |     pub fn total_dispatched(&self) -> u64 {
    |            ^^^^^^^^^^^^^^^^
...
130 |     pub fn total_dropped(&self) -> u64 {
    |            ^^^^^^^^^^^^^
...
134 |     pub fn source_count(&self, source: IrqSource) -> u64 {
    |            ^^^^^^^^^^^^
...
138 |     pub fn clear_stats(&mut self) {
    |            ^^^^^^^^^^^

warning: enum `PoolError` is never used
 --> bootstrap/src/host/mempool.rs:2:10
  |
2 | pub enum PoolError {
  |          ^^^^^^^^^

warning: constant `BLOCK_SIZE` is never used
  --> bootstrap/src/host/mempool.rs:22:11
   |
22 | pub const BLOCK_SIZE: usize = 64;
   |           ^^^^^^^^^^

warning: constant `MAX_BLOCKS` is never used
  --> bootstrap/src/host/mempool.rs:23:11
   |
23 | pub const MAX_BLOCKS: usize = 64;
   |           ^^^^^^^^^^

warning: struct `MemBlock` is never constructed
  --> bootstrap/src/host/mempool.rs:26:12
   |
26 | pub struct MemBlock {
   |            ^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/mempool.rs:32:12
   |
31 | impl MemBlock {
   | ------------- associated items in this implementation
32 |     pub fn new() -> Self {
   |            ^^^
...
39 |     pub fn with_data(slice: &[u8]) -> Self {
   |            ^^^^^^^^^
...
47 |     pub fn as_slice(&self) -> &[u8] {
   |            ^^^^^^^^
...
51 |     pub fn as_mut_slice(&mut self) -> &mut [u8] {
   |            ^^^^^^^^^^^^
...
55 |     pub fn capacity(&self) -> usize {
   |            ^^^^^^^^
...
59 |     pub fn remaining(&self) -> usize {
   |            ^^^^^^^^^
...
63 |     pub fn clear(&mut self) {
   |            ^^^^^
...
67 |     pub fn write(&mut self, data: &[u8]) -> usize {
   |            ^^^^^

warning: struct `MemPool` is never constructed
  --> bootstrap/src/host/mempool.rs:76:12
   |
76 | pub struct MemPool {
   |            ^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/mempool.rs:83:12
    |
 82 | impl MemPool {
    | ------------ associated items in this implementation
 83 |     pub fn new(block_count: usize) -> Self {
    |            ^^^
...
 94 |     pub fn allocate(&mut self) -> Result<(usize, &mut MemBlock), PoolError> {
    |            ^^^^^^^^
...
101 |     pub fn allocate_with(&mut self, data: &[u8]) -> Result<(usize, &mut MemBlock), PoolError> {
    |            ^^^^^^^^^^^^^
...
108 |     pub fn deallocate(&mut self, idx: usize) -> Result<(), PoolError> {
    |            ^^^^^^^^^^
...
121 |     pub fn get(&self, idx: usize) -> Result<&MemBlock, PoolError> {
    |            ^^^
...
128 |     pub fn get_mut(&mut self, idx: usize) -> Result<&mut MemBlock, PoolError> {
    |            ^^^^^^^
...
135 |     pub fn free_count(&self) -> usize {
    |            ^^^^^^^^^^
...
139 |     pub fn allocated_count(&self) -> usize {
    |            ^^^^^^^^^^^^^^^
...
143 |     pub fn total_count(&self) -> usize {
    |            ^^^^^^^^^^^
...
147 |     pub fn is_full(&self) -> bool {
    |            ^^^^^^^
...
151 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
155 |     pub fn stats(&self) -> PoolStats {
    |            ^^^^^

warning: struct `PoolStats` is never constructed
   --> bootstrap/src/host/mempool.rs:166:12
    |
166 | pub struct PoolStats {
    |            ^^^^^^^^^

warning: method `utilization` is never used
   --> bootstrap/src/host/mempool.rs:174:12
    |
173 | impl PoolStats {
    | -------------- method in this implementation
174 |     pub fn utilization(&self) -> f64 {
    |            ^^^^^^^^^^^

warning: methods `log`, `clear_log`, `set_busy`, `set_error`, `peek`, and `poke` are never used
   --> bootstrap/src/host/mmio.rs:84:12
    |
 68 | impl MockMmio {
    | ------------- methods in this implementation
...
 84 |     pub fn log(&self) -> &[MmioRecord] {
    |            ^^^
...
 89 |     pub fn clear_log(&mut self) {
    |            ^^^^^^^^^
...
104 |     pub fn set_busy(&mut self, busy: bool) {
    |            ^^^^^^^^
...
114 |     pub fn set_error(&mut self, err: bool) {
    |            ^^^^^^^^^
...
125 |     pub fn peek(&self, addr: u32) -> u32 {
    |            ^^^^
...
130 |     pub fn poke(&mut self, addr: u32, value: u32) {
    |            ^^^^

warning: enum `OpStatus` is never used
 --> bootstrap/src/host/oplog.rs:4:10
  |
4 | pub enum OpStatus {
  |          ^^^^^^^^

warning: struct `OpRecord` is never constructed
  --> bootstrap/src/host/oplog.rs:23:12
   |
23 | pub struct OpRecord {
   |            ^^^^^^^^

warning: associated items `new`, `with_tag`, `complete`, `fail`, `timeout`, and `duration_us` are never used
  --> bootstrap/src/host/oplog.rs:33:12
   |
32 | impl OpRecord {
   | ------------- associated items in this implementation
33 |     pub fn new(id: u64, name: &str, start_us: u64) -> Self {
   |            ^^^
...
44 |     pub fn with_tag(mut self, key: &str, value: &str) -> Self {
   |            ^^^^^^^^
...
49 |     pub fn complete(&mut self, end_us: u64) {
   |            ^^^^^^^^
...
54 |     pub fn fail(&mut self, end_us: u64) {
   |            ^^^^
...
59 |     pub fn timeout(&mut self, end_us: u64) {
   |            ^^^^^^^
...
64 |     pub fn duration_us(&self) -> Option<u64> {
   |            ^^^^^^^^^^^

warning: constant `DEFAULT_MAX_OPS` is never used
  --> bootstrap/src/host/oplog.rs:69:11
   |
69 | pub const DEFAULT_MAX_OPS: usize = 128;
   |           ^^^^^^^^^^^^^^^

warning: struct `OpLog` is never constructed
  --> bootstrap/src/host/oplog.rs:72:12
   |
72 | pub struct OpLog {
   |            ^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/oplog.rs:80:12
    |
 79 | impl OpLog {
    | ---------- associated items in this implementation
 80 |     pub fn new(max_ops: usize) -> Self {
    |            ^^^
...
 89 |     pub fn begin(&mut self, name: &str, start_us: u64) -> u64 {
    |            ^^^^^
...
101 |     pub fn begin_with_tag(&mut self, name: &str, start_us: u64, key: &str, value: &str) -> u64 {
    |            ^^^^^^^^^^^^^^
...
113 |     pub fn complete(&mut self, id: u64, end_us: u64) {
    |            ^^^^^^^^
...
119 |     pub fn fail(&mut self, id: u64, end_us: u64) {
    |            ^^^^
...
125 |     pub fn timeout(&mut self, id: u64, end_us: u64) {
    |            ^^^^^^^
...
131 |     pub fn get(&self, id: u64) -> Option<&OpRecord> {
    |            ^^^
...
135 |     pub fn records(&self) -> &[OpRecord] {
    |            ^^^^^^^
...
139 |     pub fn len(&self) -> usize {
    |            ^^^
...
143 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
147 |     pub fn dropped(&self) -> u64 {
    |            ^^^^^^^
...
151 |     pub fn by_status(&self, status: OpStatus) -> Vec<&OpRecord> {
    |            ^^^^^^^^^
...
155 |     pub fn by_name(&self, name: &str) -> Vec<&OpRecord> {
    |            ^^^^^^^
...
159 |     pub fn success_count(&self) -> usize {
    |            ^^^^^^^^^^^^^
...
163 |     pub fn fail_count(&self) -> usize {
    |            ^^^^^^^^^^
...
167 |     pub fn clear(&mut self) {
    |            ^^^^^
...
172 |     pub fn stats(&self) -> OpLogStats {
    |            ^^^^^

warning: struct `OpLogStats` is never constructed
   --> bootstrap/src/host/oplog.rs:191:12
    |
191 | pub struct OpLogStats {
    |            ^^^^^^^^^^

warning: enum `PipelineState` is never used
 --> bootstrap/src/host/pipeline.rs:5:10
  |
5 | pub enum PipelineState {
  |          ^^^^^^^^^^^^^

warning: enum `PipelineError` is never used
  --> bootstrap/src/host/pipeline.rs:28:10
   |
28 | pub enum PipelineError {
   |          ^^^^^^^^^^^^^

warning: struct `PipelineConfig` is never constructed
  --> bootstrap/src/host/pipeline.rs:51:12
   |
51 | pub struct PipelineConfig {
   |            ^^^^^^^^^^^^^^

warning: struct `InferenceResult` is never constructed
  --> bootstrap/src/host/pipeline.rs:76:12
   |
76 | pub struct InferenceResult {
   |            ^^^^^^^^^^^^^^^

warning: struct `InferencePipeline` is never constructed
  --> bootstrap/src/host/pipeline.rs:82:12
   |
82 | pub struct InferencePipeline {
   |            ^^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/pipeline.rs:90:12
    |
 89 | impl InferencePipeline {
    | ---------------------- associated items in this implementation
 90 |     pub fn new(config: PipelineConfig) -> Self {
    |            ^^^
...
 99 |     pub fn state(&self) -> PipelineState {
    |            ^^^^^
...
103 |     pub fn poll_count(&self) -> u32 {
    |            ^^^^^^^^^^
...
107 |     pub fn configure(&mut self) -> Result<(), PipelineError> {
    |            ^^^^^^^^^
...
125 |     pub fn load_weights(&mut self) -> Result<(), PipelineError> {
    |            ^^^^^^^^^^^^
...
136 |     pub fn start(&mut self) -> Result<(), PipelineError> {
    |            ^^^^^
...
151 |     pub fn poll(&mut self) -> Result<PipelineState, PipelineError> {
    |            ^^^^
...
175 |     pub fn wait_complete(&mut self) -> Result<InferenceResult, PipelineError> {
    |            ^^^^^^^^^^^^^
...
187 |     pub fn reset(&mut self) {
    |            ^^^^^

warning: enum `RateLimitError` is never used
 --> bootstrap/src/host/ratelimit.rs:2:10
  |
2 | pub enum RateLimitError {
  |          ^^^^^^^^^^^^^^

warning: struct `RateLimitConfig` is never constructed
  --> bootstrap/src/host/ratelimit.rs:19:12
   |
19 | pub struct RateLimitConfig {
   |            ^^^^^^^^^^^^^^^

warning: associated functions `new` and `burst` are never used
  --> bootstrap/src/host/ratelimit.rs:34:12
   |
33 | impl RateLimitConfig {
   | -------------------- associated functions in this implementation
34 |     pub fn new(max_tokens: u64, refill_per_second: u64) -> Self {
   |            ^^^
...
41 |     pub fn burst(max: u64) -> Self {
   |            ^^^^^

warning: struct `RateLimiter` is never constructed
  --> bootstrap/src/host/ratelimit.rs:50:12
   |
50 | pub struct RateLimiter {
   |            ^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/ratelimit.rs:59:12
    |
 58 | impl RateLimiter {
    | ---------------- associated items in this implementation
 59 |     pub fn new(config: RateLimitConfig) -> Self {
    |            ^^^
...
 69 |     pub fn try_acquire(&mut self, now_ms: u64) -> Result<(), RateLimitError> {
    |            ^^^^^^^^^^^
...
 86 |     pub fn acquire(&mut self, now_ms: u64, count: u64) -> Result<(), RateLimitError> {
    |            ^^^^^^^
...
104 |     fn refill(&mut self, now_ms: u64) {
    |        ^^^^^^
...
113 |     pub fn tokens(&self) -> u64 {
    |            ^^^^^^
...
117 |     pub fn total_allowed(&self) -> u64 {
    |            ^^^^^^^^^^^^^
...
121 |     pub fn total_rejected(&self) -> u64 {
    |            ^^^^^^^^^^^^^^
...
125 |     pub fn reset(&mut self) {
    |            ^^^^^
...
132 |     pub fn stats(&self) -> RateLimitStats {
    |            ^^^^^

warning: struct `RateLimitStats` is never constructed
   --> bootstrap/src/host/ratelimit.rs:143:12
    |
143 | pub struct RateLimitStats {
    |            ^^^^^^^^^^^^^^

warning: enum `CacheError` is never used
 --> bootstrap/src/host/regcache.rs:5:10
  |
5 | pub enum CacheError {
  |          ^^^^^^^^^^

warning: struct `CacheEntry` is never constructed
  --> bootstrap/src/host/regcache.rs:24:12
   |
24 | pub struct CacheEntry {
   |            ^^^^^^^^^^

warning: struct `RegisterCache` is never constructed
  --> bootstrap/src/host/regcache.rs:31:12
   |
31 | pub struct RegisterCache {
   |            ^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/regcache.rs:41:12
    |
 40 | impl RegisterCache {
    | ------------------ associated items in this implementation
 41 |     pub fn new(ttl_us: u64) -> Self {
    |            ^^^
...
 52 |     pub fn read(&mut self, offset: u32, now_us: u64) -> Option<u32> {
    |            ^^^^
...
 64 |     pub fn write(&mut self, offset: u32, value: u32, now_us: u64) {
    |            ^^^^^
...
 73 |     pub fn update(&mut self, offset: u32, value: u32, now_us: u64) {
    |            ^^^^^^
...
 81 |     pub fn invalidate(&mut self, offset: u32) -> bool {
    |            ^^^^^^^^^^
...
 90 |     pub fn invalidate_all(&mut self) {
    |            ^^^^^^^^^^^^^^
...
 96 |     pub fn flush_dirty(&mut self) -> Vec<(u32, u32)> {
    |            ^^^^^^^^^^^
...
108 |     pub fn get(&self, offset: u32) -> Option<&CacheEntry> {
    |            ^^^
...
112 |     pub fn contains(&self, offset: u32) -> bool {
    |            ^^^^^^^^
...
116 |     pub fn len(&self) -> usize {
    |            ^^^
...
120 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
124 |     pub fn is_stale(&self, offset: u32, now_us: u64) -> bool {
    |            ^^^^^^^^
...
131 |     pub fn ttl_us(&self) -> u64 {
    |            ^^^^^^
...
135 |     pub fn hits(&self) -> u64 {
    |            ^^^^
...
139 |     pub fn misses(&self) -> u64 {
    |            ^^^^^^
...
143 |     pub fn writes(&self) -> u64 {
    |            ^^^^^^
...
147 |     pub fn evictions(&self) -> u64 {
    |            ^^^^^^^^^
...
151 |     pub fn hit_rate(&self) -> f64 {
    |            ^^^^^^^^
...
156 |     pub fn prefill_csrs(&mut self, now_us: u64) {
    |            ^^^^^^^^^^^^
...
162 |     pub fn stats(&self) -> CacheStats {
    |            ^^^^^

warning: struct `CacheStats` is never constructed
   --> bootstrap/src/host/regcache.rs:175:12
    |
175 | pub struct CacheStats {
    |            ^^^^^^^^^^

warning: struct `CtrlReg` is never constructed
 --> bootstrap/src/host/regmap.rs:4:12
  |
4 | pub struct CtrlReg(u32);
  |            ^^^^^^^

warning: associated items `new`, `from_raw`, `raw`, `start`, and `with_start` are never used
  --> bootstrap/src/host/regmap.rs:7:18
   |
 6 | impl CtrlReg {
   | ------------ associated items in this implementation
 7 |     pub const fn new() -> Self {
   |                  ^^^
...
11 |     pub const fn from_raw(raw: u32) -> Self {
   |                  ^^^^^^^^
...
15 |     pub const fn raw(self) -> u32 {
   |                  ^^^
...
19 |     pub const fn start(self) -> bool {
   |                  ^^^^^
...
23 |     pub const fn with_start(mut self) -> Self {
   |                  ^^^^^^^^^^

warning: struct `StatusReg` is never constructed
  --> bootstrap/src/host/regmap.rs:30:12
   |
30 | pub struct StatusReg(u32);
   |            ^^^^^^^^^

warning: associated items `from_raw`, `raw`, `busy`, `done`, `error`, and `is_idle` are never used
  --> bootstrap/src/host/regmap.rs:33:18
   |
32 | impl StatusReg {
   | -------------- associated items in this implementation
33 |     pub const fn from_raw(raw: u32) -> Self {
   |                  ^^^^^^^^
...
37 |     pub const fn raw(self) -> u32 {
   |                  ^^^
...
41 |     pub const fn busy(self) -> bool {
   |                  ^^^^
...
45 |     pub const fn done(self) -> bool {
   |                  ^^^^
...
49 |     pub const fn error(self) -> bool {
   |                  ^^^^^
...
53 |     pub const fn is_idle(self) -> bool {
   |                  ^^^^^^^

warning: struct `IrqEnReg` is never constructed
  --> bootstrap/src/host/regmap.rs:59:12
   |
59 | pub struct IrqEnReg(u32);
   |            ^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/regmap.rs:62:18
    |
 61 | impl IrqEnReg {
    | ------------- associated items in this implementation
 62 |     pub const fn new() -> Self {
    |                  ^^^
...
 66 |     pub const fn from_raw(raw: u32) -> Self {
    |                  ^^^^^^^^
...
 70 |     pub const fn raw(self) -> u32 {
    |                  ^^^
...
 74 |     pub const fn inference_done(self) -> bool {
    |                  ^^^^^^^^^^^^^^
...
 78 |     pub const fn dma_done(self) -> bool {
    |                  ^^^^^^^^
...
 82 |     pub const fn error(self) -> bool {
    |                  ^^^^^
...
 86 |     pub const fn with_inference_done(mut self) -> Self {
    |                  ^^^^^^^^^^^^^^^^^^^
...
 91 |     pub const fn with_dma_done(mut self) -> Self {
    |                  ^^^^^^^^^^^^^
...
 96 |     pub const fn with_error(mut self) -> Self {
    |                  ^^^^^^^^^^
...
101 |     pub const fn with_all(mut self) -> Self {
    |                  ^^^^^^^^

warning: struct `IrqStatReg` is never constructed
   --> bootstrap/src/host/regmap.rs:108:12
    |
108 | pub struct IrqStatReg(u32);
    |            ^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/regmap.rs:111:18
    |
110 | impl IrqStatReg {
    | --------------- associated items in this implementation
111 |     pub const fn from_raw(raw: u32) -> Self {
    |                  ^^^^^^^^
...
115 |     pub const fn raw(self) -> u32 {
    |                  ^^^
...
119 |     pub const fn inference_done(self) -> bool {
    |                  ^^^^^^^^^^^^^^
...
123 |     pub const fn dma_done(self) -> bool {
    |                  ^^^^^^^^
...
127 |     pub const fn error(self) -> bool {
    |                  ^^^^^
...
131 |     pub const fn has_any(self) -> bool {
    |                  ^^^^^^^
...
135 |     pub const fn clear_inference_done(mut self) -> Self {
    |                  ^^^^^^^^^^^^^^^^^^^^
...
140 |     pub const fn clear_dma_done(mut self) -> Self {
    |                  ^^^^^^^^^^^^^^
...
145 |     pub const fn clear_error(mut self) -> Self {
    |                  ^^^^^^^^^^^

warning: struct `WeightAddr` is never constructed
   --> bootstrap/src/host/regmap.rs:152:12
    |
152 | pub struct WeightAddr {
    |            ^^^^^^^^^^

warning: associated items `new` and `addr` are never used
   --> bootstrap/src/host/regmap.rs:158:18
    |
157 | impl WeightAddr {
    | --------------- associated items in this implementation
158 |     pub const fn new(addr: u64) -> Self {
    |                  ^^^
...
165 |     pub const fn addr(self) -> u64 {
    |                  ^^^^

warning: struct `ConfigSnapshot` is never constructed
   --> bootstrap/src/host/regmap.rs:171:12
    |
171 | pub struct ConfigSnapshot {
    |            ^^^^^^^^^^^^^^

warning: struct `FullSnapshot` is never constructed
   --> bootstrap/src/host/regmap.rs:180:12
    |
180 | pub struct FullSnapshot {
    |            ^^^^^^^^^^^^

warning: enum `RetryError` is never used
 --> bootstrap/src/host/retry.rs:2:10
  |
2 | pub enum RetryError {
  |          ^^^^^^^^^^

warning: enum `BackoffStrategy` is never used
  --> bootstrap/src/host/retry.rs:19:10
   |
19 | pub enum BackoffStrategy {
   |          ^^^^^^^^^^^^^^^

warning: method `delay_for_attempt` is never used
  --> bootstrap/src/host/retry.rs:26:12
   |
25 | impl BackoffStrategy {
   | -------------------- method in this implementation
26 |     pub fn delay_for_attempt(&self, attempt: u32) -> u64 {
   |            ^^^^^^^^^^^^^^^^^

warning: struct `RetryPolicy` is never constructed
  --> bootstrap/src/host/retry.rs:42:12
   |
42 | pub struct RetryPolicy {
   |            ^^^^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/retry.rs:61:12
   |
60 | impl RetryPolicy {
   | ---------------- associated items in this implementation
61 |     pub fn new(max_attempts: u32, backoff: BackoffStrategy) -> Self {
   |            ^^^
...
70 |     pub fn with_max_delay(mut self, ms: u64) -> Self {
   |            ^^^^^^^^^^^^^^
...
75 |     pub fn with_jitter(mut self, on: bool) -> Self {
   |            ^^^^^^^^^^^
...
80 |     pub fn delay_for_attempt(&self, attempt: u32) -> u64 {
   |            ^^^^^^^^^^^^^^^^^
...
85 |     pub fn total_delay_ms(&self) -> u64 {
   |            ^^^^^^^^^^^^^^
...
89 |     pub fn should_retry(&self, attempts_so_far: u32) -> bool {
   |            ^^^^^^^^^^^^
...
93 |     pub fn check(&self, attempts_so_far: u32) -> Result<(), RetryError> {
   |            ^^^^^

warning: struct `RetryState` is never constructed
   --> bootstrap/src/host/retry.rs:105:12
    |
105 | pub struct RetryState {
    |            ^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/retry.rs:112:12
    |
111 | impl RetryState {
    | --------------- associated items in this implementation
112 |     pub fn new(policy: RetryPolicy) -> Self {
    |            ^^^
...
120 |     pub fn attempts(&self) -> u32 {
    |            ^^^^^^^^
...
124 |     pub fn total_delay_ms(&self) -> u64 {
    |            ^^^^^^^^^^^^^^
...
128 |     pub fn policy(&self) -> &RetryPolicy {
    |            ^^^^^^
...
132 |     pub fn next_delay(&mut self) -> Option<u64> {
    |            ^^^^^^^^^^
...
142 |     pub fn reset(&mut self) {
    |            ^^^^^
...
147 |     pub fn is_exhausted(&self) -> bool {
    |            ^^^^^^^^^^^^
...
151 |     pub fn remaining(&self) -> u32 {
    |            ^^^^^^^^^

warning: enum `RingError` is never used
 --> bootstrap/src/host/ring_buffer.rs:2:10
  |
2 | pub enum RingError {
  |          ^^^^^^^^^

warning: struct `RingBuffer` is never constructed
  --> bootstrap/src/host/ring_buffer.rs:19:12
   |
19 | pub struct RingBuffer<T: Clone> {
   |            ^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/ring_buffer.rs:28:12
    |
 27 | impl<T: Clone + Default> RingBuffer<T> {
    | -------------------------------------- associated items in this implementation
 28 |     pub fn new(capacity: usize) -> Self {
    |            ^^^
...
 38 |     pub fn with_default(capacity: usize, default: T) -> Self {
    |            ^^^^^^^^^^^^
...
 48 |     pub fn capacity(&self) -> usize {
    |            ^^^^^^^^
...
 52 |     pub fn len(&self) -> usize {
    |            ^^^
...
 56 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
 60 |     pub fn is_full(&self) -> bool {
    |            ^^^^^^^
...
 64 |     pub fn available(&self) -> usize {
    |            ^^^^^^^^^
...
 68 |     pub fn push(&mut self, item: T) -> Result<(), RingError> {
    |            ^^^^
...
 78 |     pub fn pop(&mut self) -> Result<T, RingError> {
    |            ^^^
...
 88 |     pub fn peek(&self) -> Option<&T> {
    |            ^^^^
...
 96 |     pub fn push_batch(&mut self, items: &[T]) -> Result<usize, RingError> {
    |            ^^^^^^^^^^
...
109 |     pub fn pop_batch(&mut self, out: &mut [T]) -> Result<usize, RingError> {
    |            ^^^^^^^^^
...
122 |     pub fn clear(&mut self) {
    |            ^^^^^

warning: enum `SgError` is never used
 --> bootstrap/src/host/scatter_gather.rs:2:10
  |
2 | pub enum SgError {
  |          ^^^^^^^

warning: struct `SgSegment` is never constructed
  --> bootstrap/src/host/scatter_gather.rs:25:12
   |
25 | pub struct SgSegment {
   |            ^^^^^^^^^

warning: associated items `new`, `src_end`, `dst_end`, `overlaps_src`, and `overlaps_dst` are never used
  --> bootstrap/src/host/scatter_gather.rs:32:12
   |
31 | impl SgSegment {
   | -------------- associated items in this implementation
32 |     pub fn new(src: u64, dst: u64, len: u32) -> Self {
   |            ^^^
...
36 |     pub fn src_end(&self) -> u64 {
   |            ^^^^^^^
...
40 |     pub fn dst_end(&self) -> u64 {
   |            ^^^^^^^
...
44 |     pub fn overlaps_src(&self, other: &SgSegment) -> bool {
   |            ^^^^^^^^^^^^
...
48 |     pub fn overlaps_dst(&self, other: &SgSegment) -> bool {
   |            ^^^^^^^^^^^^

warning: struct `SgDescriptor` is never constructed
  --> bootstrap/src/host/scatter_gather.rs:54:12
   |
54 | pub struct SgDescriptor {
   |            ^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/scatter_gather.rs:59:12
    |
 58 | impl SgDescriptor {
    | ----------------- associated items in this implementation
 59 |     pub fn new() -> Self {
    |            ^^^
...
 63 |     pub fn add(&mut self, src: u64, dst: u64, len: u32) -> Result<(), SgError> {
    |            ^^^
...
 72 |     pub fn total_bytes(&self) -> u64 {
    |            ^^^^^^^^^^^
...
 76 |     pub fn segment_count(&self) -> usize {
    |            ^^^^^^^^^^^^^
...
 80 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
 84 |     pub fn validate_no_overlap(&self) -> Result<(), SgError> {
    |            ^^^^^^^^^^^^^^^^^^^
...
102 |     pub fn execute(&self, src_buf: &[u8], dst_buf: &mut [u8]) -> Result<u64, SgError> {
    |            ^^^^^^^

warning: enum `SerialError` is never used
 --> bootstrap/src/host/serial.rs:2:10
  |
2 | pub enum SerialError {
  |          ^^^^^^^^^^^

warning: struct `Serializer` is never constructed
  --> bootstrap/src/host/serial.rs:23:12
   |
23 | pub struct Serializer {
   |            ^^^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/serial.rs:28:12
   |
27 | impl Serializer {
   | --------------- associated items in this implementation
28 |     pub fn new(capacity: usize) -> Self {
   |            ^^^
...
34 |     pub fn write_u8(&mut self, v: u8) {
   |            ^^^^^^^^
...
38 |     pub fn write_u16_le(&mut self, v: u16) {
   |            ^^^^^^^^^^^^
...
42 |     pub fn write_u32_le(&mut self, v: u32) {
   |            ^^^^^^^^^^^^
...
46 |     pub fn write_u64_le(&mut self, v: u64) {
   |            ^^^^^^^^^^^^
...
50 |     pub fn write_bytes(&mut self, data: &[u8]) {
   |            ^^^^^^^^^^^
...
54 |     pub fn write_cstr(&mut self, s: &str) {
   |            ^^^^^^^^^^
...
59 |     pub fn len(&self) -> usize {
   |            ^^^
...
63 |     pub fn is_empty(&self) -> bool {
   |            ^^^^^^^^
...
67 |     pub fn into_bytes(self) -> Vec<u8> {
   |            ^^^^^^^^^^
...
71 |     pub fn as_slice(&self) -> &[u8] {
   |            ^^^^^^^^
...
75 |     pub fn clear(&mut self) {
   |            ^^^^^

warning: struct `Deserializer` is never constructed
  --> bootstrap/src/host/serial.rs:81:12
   |
81 | pub struct Deserializer<'a> {
   |            ^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/serial.rs:87:12
    |
 86 | impl<'a> Deserializer<'a> {
    | ------------------------- associated items in this implementation
 87 |     pub fn new(data: &'a [u8]) -> Self {
    |            ^^^
...
 91 |     pub fn remaining(&self) -> usize {
    |            ^^^^^^^^^
...
 95 |     pub fn pos(&self) -> usize {
    |            ^^^
...
 99 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
103 |     pub fn read_u8(&mut self) -> Result<u8, SerialError> {
    |            ^^^^^^^
...
112 |     pub fn read_u16_le(&mut self) -> Result<u16, SerialError> {
    |            ^^^^^^^^^^^
...
121 |     pub fn read_u32_le(&mut self) -> Result<u32, SerialError> {
    |            ^^^^^^^^^^^
...
135 |     pub fn read_u64_le(&mut self) -> Result<u64, SerialError> {
    |            ^^^^^^^^^^^
...
145 |     pub fn read_bytes(&mut self, len: usize) -> Result<&'a [u8], SerialError> {
    |            ^^^^^^^^^^
...
154 |     pub fn read_cstr(&mut self) -> Result<&'a str, SerialError> {
    |            ^^^^^^^^^
...
167 |     pub fn skip(&mut self, len: usize) -> Result<(), SerialError> {
    |            ^^^^

warning: enum `SessionError` is never used
 --> bootstrap/src/host/session.rs:5:10
  |
5 | pub enum SessionError {
  |          ^^^^^^^^^^^^

warning: struct `SessionConfig` is never constructed
  --> bootstrap/src/host/session.rs:36:12
   |
36 | pub struct SessionConfig {
   |            ^^^^^^^^^^^^^

warning: struct `PendingRequest` is never constructed
  --> bootstrap/src/host/session.rs:51:12
   |
51 | pub struct PendingRequest {
   |            ^^^^^^^^^^^^^^

warning: struct `Session` is never constructed
  --> bootstrap/src/host/session.rs:59:12
   |
59 | pub struct Session {
   |            ^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/session.rs:66:12
    |
 65 | impl Session {
    | ------------ associated items in this implementation
 66 |     pub fn new(config: SessionConfig) -> Self {
    |            ^^^
...
 74 |     pub fn next_seq(&self) -> u8 {
    |            ^^^^^^^^
...
 78 |     pub fn has_pending(&self) -> bool {
    |            ^^^^^^^^^^^
...
 82 |     pub fn pending_cmd(&self) -> Option<Cmd> {
    |            ^^^^^^^^^^^
...
 86 |     pub fn build_request(&mut self, cmd: Cmd, payload: &[u8]) -> Result<Vec<u8>, SessionError> {
    |            ^^^^^^^^^^^^^
...
103 |     fn advance_seq(&mut self) -> Result<(), SessionError> {
    |        ^^^^^^^^^^^
...
112 |     pub fn handle_response(&mut self, resp_frame: &[u8]) -> Result<RespPacket, SessionError> {
    |            ^^^^^^^^^^^^^^^
...
134 |     pub fn should_retry(&self) -> bool {
    |            ^^^^^^^^^^^^
...
141 |     pub fn retry_frame(&self) -> Option<&[u8]> {
    |            ^^^^^^^^^^^
...
145 |     pub fn reset(&mut self) {
    |            ^^^^^
...
150 |     pub fn stats(&self) -> SessionStats {
    |            ^^^^^

warning: struct `SessionStats` is never constructed
   --> bootstrap/src/host/session.rs:161:12
    |
161 | pub struct SessionStats {
    |            ^^^^^^^^^^^^

warning: enum `Phase` is never used
 --> bootstrap/src/host/shutdown.rs:2:10
  |
2 | pub enum Phase {
  |          ^^^^^

warning: enum `ShutdownError` is never used
  --> bootstrap/src/host/shutdown.rs:21:10
   |
21 | pub enum ShutdownError {
   |          ^^^^^^^^^^^^^

warning: type alias `ShutdownFn` is never used
  --> bootstrap/src/host/shutdown.rs:37:10
   |
37 | pub type ShutdownFn = fn(Phase) -> Result<(), String>;
   |          ^^^^^^^^^^

warning: struct `ShutdownEntry` is never constructed
  --> bootstrap/src/host/shutdown.rs:40:8
   |
40 | struct ShutdownEntry {
   |        ^^^^^^^^^^^^^

warning: enum `ShutdownState` is never used
  --> bootstrap/src/host/shutdown.rs:49:10
   |
49 | pub enum ShutdownState {
   |          ^^^^^^^^^^^^^

warning: struct `ShutdownCoordinator` is never constructed
  --> bootstrap/src/host/shutdown.rs:57:12
   |
57 | pub struct ShutdownCoordinator {
   |            ^^^^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/shutdown.rs:66:12
    |
 65 | impl ShutdownCoordinator {
    | ------------------------ associated items in this implementation
 66 |     pub fn new(timeout_ms: u64) -> Self {
    |            ^^^
...
 76 |     pub fn register(&mut self, name: &'static str, phase: Phase, priority: u8, handler: ShutdownFn) {
    |            ^^^^^^^^
...
 86 |     pub fn begin(&mut self) -> Result<(), ShutdownError> {
    |            ^^^^^
...
 97 |     pub fn step(&mut self) -> ShutdownState {
    |            ^^^^
...
144 |     pub fn run_all(&mut self) -> ShutdownState {
    |            ^^^^^^^
...
153 |     pub fn state(&self) -> ShutdownState {
    |            ^^^^^
...
157 |     pub fn is_running(&self) -> bool {
    |            ^^^^^^^^^^
...
161 |     pub fn is_complete(&self) -> bool {
    |            ^^^^^^^^^^^
...
165 |     pub fn timeout_ms(&self) -> u64 {
    |            ^^^^^^^^^^
...
169 |     pub fn entry_count(&self) -> usize {
    |            ^^^^^^^^^^^
...
173 |     pub fn completed_count(&self) -> usize {
    |            ^^^^^^^^^^^^^^^
...
177 |     pub fn total_completed(&self) -> u64 {
    |            ^^^^^^^^^^^^^^^
...
181 |     pub fn total_failures(&self) -> u64 {
    |            ^^^^^^^^^^^^^^

warning: enum `MetricKind` is never used
 --> bootstrap/src/host/telemetry.rs:4:10
  |
4 | pub enum MetricKind {
  |          ^^^^^^^^^^

warning: enum `MetricValue` is never used
  --> bootstrap/src/host/telemetry.rs:11:10
   |
11 | pub enum MetricValue {
   |          ^^^^^^^^^^^

warning: struct `Metric` is never constructed
  --> bootstrap/src/host/telemetry.rs:28:12
   |
28 | pub struct Metric {
   |            ^^^^^^

warning: associated items `counter`, `gauge`, and `with_label` are never used
  --> bootstrap/src/host/telemetry.rs:36:12
   |
35 | impl Metric {
   | ----------- associated items in this implementation
36 |     pub fn counter(name: &str, value: u64) -> Self {
   |            ^^^^^^^
...
45 |     pub fn gauge(name: &str, value: f64) -> Self {
   |            ^^^^^
...
54 |     pub fn with_label(mut self, key: &str, val: &str) -> Self {
   |            ^^^^^^^^^^

warning: struct `TelemetrySnapshot` is never constructed
  --> bootstrap/src/host/telemetry.rs:61:12
   |
61 | pub struct TelemetrySnapshot {
   |            ^^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/telemetry.rs:67:12
    |
 66 | impl TelemetrySnapshot {
    | ---------------------- associated items in this implementation
 67 |     pub fn new(timestamp_us: u64) -> Self {
    |            ^^^
...
 74 |     pub fn add(&mut self, metric: Metric) {
    |            ^^^
...
 78 |     pub fn find(&self, name: &str) -> Option<&Metric> {
    |            ^^^^
...
 82 |     pub fn len(&self) -> usize {
    |            ^^^
...
 86 |     pub fn is_empty(&self) -> bool {
    |            ^^^^^^^^
...
 90 |     pub fn to_prometheus(&self) -> String {
    |            ^^^^^^^^^^^^^
...
114 |     pub fn to_json(&self) -> String {
    |            ^^^^^^^

warning: struct `TelemetryCollector` is never constructed
   --> bootstrap/src/host/telemetry.rs:146:12
    |
146 | pub struct TelemetryCollector {
    |            ^^^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/telemetry.rs:153:12
    |
152 | impl TelemetryCollector {
    | ----------------------- associated items in this implementation
153 |     pub fn new() -> Self {
    |            ^^^
...
161 |     pub fn inc_counter(&mut self, name: &str) {
    |            ^^^^^^^^^^^
...
165 |     pub fn inc_counter_by(&mut self, name: &str, delta: u64) {
    |            ^^^^^^^^^^^^^^
...
169 |     pub fn set_gauge(&mut self, name: &str, value: f64) {
    |            ^^^^^^^^^
...
173 |     pub fn set_label(&mut self, metric: &str, key: &str, value: &str) {
    |            ^^^^^^^^^
...
180 |     pub fn snapshot(&self, timestamp_us: u64) -> TelemetrySnapshot {
    |            ^^^^^^^^
...
203 |     pub fn reset(&mut self) {
    |            ^^^^^

warning: constant `CRC_SIZE` is never used
 --> bootstrap/src/host/transport.rs:3:11
  |
3 | pub const CRC_SIZE: usize = 4;
  |           ^^^^^^^^

warning: constant `MAX_PAYLOAD` is never used
 --> bootstrap/src/host/transport.rs:4:11
  |
4 | pub const MAX_PAYLOAD: usize = 4096;
  |           ^^^^^^^^^^^

warning: constant `FRAME_OVERHEAD` is never used
 --> bootstrap/src/host/transport.rs:5:11
  |
5 | pub const FRAME_OVERHEAD: usize = 4 + CMD_HEADER_SIZE + CRC_SIZE;
  |           ^^^^^^^^^^^^^^

warning: enum `TransportError` is never used
 --> bootstrap/src/host/transport.rs:8:10
  |
8 | pub enum TransportError {
  |          ^^^^^^^^^^^^^^

warning: function `crc32_table` is never used
  --> bootstrap/src/host/transport.rs:34:4
   |
34 | fn crc32_table() -> &'static [u32; 256] {
   |    ^^^^^^^^^^^

warning: function `crc32` is never used
  --> bootstrap/src/host/transport.rs:57:8
   |
57 | pub fn crc32(data: &[u8]) -> u32 {
   |        ^^^^^

warning: struct `TransportFrame` is never constructed
  --> bootstrap/src/host/transport.rs:67:12
   |
67 | pub struct TransportFrame {
   |            ^^^^^^^^^^^^^^

warning: associated items `new`, `encoded_len`, `encode`, and `decode` are never used
   --> bootstrap/src/host/transport.rs:73:12
    |
 72 | impl TransportFrame {
    | ------------------- associated items in this implementation
 73 |     pub fn new(header: CmdPacket, payload: &[u8]) -> Result<Self, TransportError> {
    |            ^^^
...
 86 |     pub fn encoded_len(&self) -> usize {
    |            ^^^^^^^^^^^
...
 90 |     pub fn encode(&self) -> Vec<u8> {
    |            ^^^^^^
...
102 |     pub fn decode(data: &[u8]) -> Result<Self, TransportError> {
    |            ^^^^^^

warning: struct `RespFrame` is never constructed
   --> bootstrap/src/host/transport.rs:141:12
    |
141 | pub struct RespFrame {
    |            ^^^^^^^^^

warning: associated items `new`, `encoded_len`, `encode`, and `decode` are never used
   --> bootstrap/src/host/transport.rs:147:12
    |
146 | impl RespFrame {
    | -------------- associated items in this implementation
147 |     pub fn new(header: RespPacket, payload: &[u8]) -> Self {
    |            ^^^
...
154 |     pub fn encoded_len(&self) -> usize {
    |            ^^^^^^^^^^^
...
158 |     pub fn encode(&self) -> Vec<u8> {
    |            ^^^^^^
...
170 |     pub fn decode(data: &[u8]) -> Result<Self, TransportError> {
    |            ^^^^^^

warning: struct `SemVer` is never constructed
 --> bootstrap/src/host/version.rs:2:12
  |
2 | pub struct SemVer {
  |            ^^^^^^

warning: associated items `new`, `as_u32`, `from_u32`, and `is_compatible` are never used
  --> bootstrap/src/host/version.rs:9:18
   |
 8 | impl SemVer {
   | ----------- associated items in this implementation
 9 |     pub const fn new(major: u8, minor: u8, patch: u8) -> Self {
   |                  ^^^
...
13 |     pub const fn as_u32(self) -> u32 {
   |                  ^^^^^^
...
17 |     pub fn from_u32(v: u32) -> Self {
   |            ^^^^^^^^
...
25 |     pub fn is_compatible(&self, other: &SemVer) -> bool {
   |            ^^^^^^^^^^^^^

warning: constant `HOST_VERSION` is never used
  --> bootstrap/src/host/version.rs:36:11
   |
36 | pub const HOST_VERSION: SemVer = SemVer::new(0, 5, 0);
   |           ^^^^^^^^^^^^

warning: constant `PROTOCOL_VERSION` is never used
  --> bootstrap/src/host/version.rs:37:11
   |
37 | pub const PROTOCOL_VERSION: SemVer = SemVer::new(1, 0, 0);
   |           ^^^^^^^^^^^^^^^^

warning: constant `MIN_FIRMWARE_VERSION` is never used
  --> bootstrap/src/host/version.rs:38:11
   |
38 | pub const MIN_FIRMWARE_VERSION: SemVer = SemVer::new(1, 0, 0);
   |           ^^^^^^^^^^^^^^^^^^^^

warning: enum `VersionError` is never used
  --> bootstrap/src/host/version.rs:41:10
   |
41 | pub enum VersionError {
   |          ^^^^^^^^^^^^

warning: struct `VersionInfo` is never constructed
  --> bootstrap/src/host/version.rs:62:12
   |
62 | pub struct VersionInfo {
   |            ^^^^^^^^^^^

warning: associated items `new`, `check_firmware`, `check_protocol`, and `version_string` are never used
   --> bootstrap/src/host/version.rs:79:12
    |
 78 | impl VersionInfo {
    | ---------------- associated items in this implementation
 79 |     pub fn new() -> Self {
    |            ^^^
...
 83 |     pub fn check_firmware(&self, firmware: SemVer) -> Result<(), VersionError> {
    |            ^^^^^^^^^^^^^^
...
 93 |     pub fn check_protocol(&self, remote: SemVer) -> Result<(), VersionError> {
    |            ^^^^^^^^^^^^^^
...
103 |     pub fn version_string(&self) -> String {
    |            ^^^^^^^^^^^^^^

warning: struct `BuildInfo` is never constructed
   --> bootstrap/src/host/version.rs:112:12
    |
112 | pub struct BuildInfo {
    |            ^^^^^^^^^

warning: associated items `new`, `encode`, and `decode` are never used
   --> bootstrap/src/host/version.rs:119:18
    |
118 | impl BuildInfo {
    | -------------- associated items in this implementation
119 |     pub const fn new(version: SemVer, git_hash: u32, build_timestamp: u64) -> Self {
    |                  ^^^
...
123 |     pub fn encode(&self) -> [u8; 16] {
    |            ^^^^^^
...
131 |     pub fn decode(data: &[u8]) -> Option<Self> {
    |            ^^^^^^

warning: enum `WatchdogError` is never used
 --> bootstrap/src/host/watchdog.rs:2:10
  |
2 | pub enum WatchdogError {
  |          ^^^^^^^^^^^^^

warning: enum `WatchdogState` is never used
  --> bootstrap/src/host/watchdog.rs:23:10
   |
23 | pub enum WatchdogState {
   |          ^^^^^^^^^^^^^

warning: struct `WatchdogConfig` is never constructed
  --> bootstrap/src/host/watchdog.rs:31:12
   |
31 | pub struct WatchdogConfig {
   |            ^^^^^^^^^^^^^^

warning: methods `with_timeout`, `with_heartbeat_interval`, and `with_max_missed` are never used
  --> bootstrap/src/host/watchdog.rs:48:12
   |
47 | impl WatchdogConfig {
   | ------------------- methods in this implementation
48 |     pub fn with_timeout(mut self, ms: u64) -> Self {
   |            ^^^^^^^^^^^^
...
53 |     pub fn with_heartbeat_interval(mut self, ms: u64) -> Self {
   |            ^^^^^^^^^^^^^^^^^^^^^^^
...
58 |     pub fn with_max_missed(mut self, count: u8) -> Self {
   |            ^^^^^^^^^^^^^^^

warning: struct `WatchdogTimer` is never constructed
  --> bootstrap/src/host/watchdog.rs:65:12
   |
65 | pub struct WatchdogTimer {
   |            ^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> bootstrap/src/host/watchdog.rs:76:12
    |
 75 | impl WatchdogTimer {
    | ------------------ associated items in this implementation
 76 |     pub fn new(config: WatchdogConfig) -> Self {
    |            ^^^
...
 88 |     pub fn state(&self) -> WatchdogState {
    |            ^^^^^
...
 92 |     pub fn start(&mut self, now_ms: u64) -> Result<(), WatchdogError> {
    |            ^^^^^
...
103 |     pub fn feed(&mut self, now_ms: u64) -> Result<(), WatchdogError> {
    |            ^^^^
...
121 |     pub fn check(&mut self, now_ms: u64) -> WatchdogState {
    |            ^^^^^
...
133 |     pub fn record_heartbeat(&mut self) -> bool {
    |            ^^^^^^^^^^^^^^^^
...
141 |     pub fn record_missed_heartbeat(&mut self) -> bool {
    |            ^^^^^^^^^^^^^^^^^^^^^^^
...
154 |     pub fn missed_heartbeats(&self) -> u8 {
    |            ^^^^^^^^^^^^^^^^^
...
158 |     pub fn elapsed_ms(&self, now_ms: u64) -> u64 {
    |            ^^^^^^^^^^
...
162 |     pub fn remaining_ms(&self, now_ms: u64) -> u64 {
    |            ^^^^^^^^^^^^
...
170 |     pub fn stop(&mut self) -> Result<(), WatchdogError> {
    |            ^^^^
...
178 |     pub fn reset(&mut self) {
    |            ^^^^^
...
185 |     pub fn stats(&self) -> WatchdogStats {
    |            ^^^^^

warning: struct `WatchdogStats` is never constructed
   --> bootstrap/src/host/watchdog.rs:198:12
    |
198 | pub struct WatchdogStats {
    |            ^^^^^^^^^^^^^

warning: enum `HeaderError` is never used
 --> bootstrap/src/host/weight_header.rs:4:10
  |
4 | pub enum HeaderError {
  |          ^^^^^^^^^^^

warning: constant `MAGIC` is never used
  --> bootstrap/src/host/weight_header.rs:32:11
   |
32 | pub const MAGIC: u32 = 0x54325700;
   |           ^^^^^

warning: constant `VERSION` is never used
  --> bootstrap/src/host/weight_header.rs:33:11
   |
33 | pub const VERSION: u8 = 1;
   |           ^^^^^^^

warning: constant `HEADER_SIZE` is never used
  --> bootstrap/src/host/weight_header.rs:34:11
   |
34 | pub const HEADER_SIZE: usize = 16;
   |           ^^^^^^^^^^^

warning: struct `WeightHeader` is never constructed
  --> bootstrap/src/host/weight_header.rs:37:12
   |
37 | pub struct WeightHeader {
   |            ^^^^^^^^^^^^

warning: multiple associated items are never used
  --> bootstrap/src/host/weight_header.rs:47:12
   |
46 | impl WeightHeader {
   | ----------------- associated items in this implementation
47 |     pub fn new(layers: u16, neurons: u16) -> Self {
   |            ^^^
...
58 |     pub fn with_checksum_seed(mut self, seed: u32) -> Self {
   |            ^^^^^^^^^^^^^^^^^^
...
63 |     pub fn with_bits_per_weight(mut self, bits: u8) -> Self {
   |            ^^^^^^^^^^^^^^^^^^^^
...
68 |     pub fn total_weights(&self) -> u64 {
   |            ^^^^^^^^^^^^^
...
72 |     pub fn total_weight_bytes(&self) -> u64 {
   |            ^^^^^^^^^^^^^^^^^^
...
77 |     pub fn has_crc(&self) -> bool {
   |            ^^^^^^^
...
81 |     pub fn is_ternary(&self) -> bool {
   |            ^^^^^^^^^^
...
85 |     pub fn encode(&self) -> [u8; HEADER_SIZE] {
   |            ^^^^^^
...
98 |     pub fn decode(data: &[u8]) -> Result<Self, HeaderError> {
   |            ^^^^^^

warning: enum `LoadError` is never used
 --> bootstrap/src/host/weight_loader.rs:4:10
  |
4 | pub enum LoadError {
  |          ^^^^^^^^^

warning: enum `WordFormat` is never used
  --> bootstrap/src/host/weight_loader.rs:31:10
   |
31 | pub enum WordFormat {
   |          ^^^^^^^^^^

warning: struct `LoadConfig` is never constructed
  --> bootstrap/src/host/weight_loader.rs:38:12
   |
38 | pub struct LoadConfig {
   |            ^^^^^^^^^^

warning: associated items `raw`, `with_checksum`, and `ternary` are never used
  --> bootstrap/src/host/weight_loader.rs:57:12
   |
56 | impl LoadConfig {
   | --------------- associated items in this implementation
57 |     pub fn raw() -> Self {
   |            ^^^
...
61 |     pub fn with_checksum(mut self) -> Self {
   |            ^^^^^^^^^^^^^
...
67 |     pub fn ternary(mut self) -> Self {
   |            ^^^^^^^

warning: struct `LoadReport` is never constructed
  --> bootstrap/src/host/weight_loader.rs:75:12
   |
75 | pub struct LoadReport {
   |            ^^^^^^^^^^

warning: function `load_words` is never used
  --> bootstrap/src/host/weight_loader.rs:83:8
   |
83 | pub fn load_words(data: &[u8], config: &LoadConfig) -> Result<(Vec<u64>, LoadReport), LoadError> {
   |        ^^^^^^^^^^

warning: function `load_from_reader` is never used
   --> bootstrap/src/host/weight_loader.rs:158:8
    |
158 | pub fn load_from_reader<R: Read>(
    |        ^^^^^^^^^^^^^^^^

warning: enum `TtDebugErrorClass` is never used
  --> bootstrap/src/tt_debug.rs:51:10
   |
51 | pub enum TtDebugErrorClass {
   |          ^^^^^^^^^^^^^^^^^

warning: associated items `slug`, `csr_offset`, and `all` are never used
  --> bootstrap/src/tt_debug.rs:60:12
   |
58 | impl TtDebugErrorClass {
   | ---------------------- associated items in this implementation
59 |     /// Stable lower-case slug used in Verilog register names.
60 |     pub fn slug(&self) -> &'static str {
   |            ^^^^
...
70 |     pub fn csr_offset(&self) -> u32 {
   |            ^^^^^^^^^^
...
80 |     pub fn all() -> [TtDebugErrorClass; 4] {
   |            ^^^

warning: `t27c` (bin "t27c") generated 627 warnings (run `cargo fix --bin "t27c" -p t27c` to apply 19 suggestions)
    Finished `release` profile [optimized] target(s) in 3m 30s
[2026-10-07T00:09:49Z] exit 0 in 210.5 s
[2026-10-07T00:09:49Z] $ cargo build --release -p t27b --target aarch64-unknown-linux-gnu --target-dir /work/target
    Finished `release` profile [optimized] target(s) in 0.17s
[2026-10-07T00:09:49Z] exit 0 in 0.2 s
[2026-10-07T00:09:49Z] $ qemu-aarch64 -L /usr/aarch64-linux-gnu /work/target/aarch64-unknown-linux-gnu/release/t27b corpus specs --json /work/corpus.json --runner qemu-aarch64 -L /usr/aarch64-linux-gnu --timeout-ms 60000 --jobs 24
t27b: retrying 7 timed-out file(s) one at a time
RETRIED     specs/fpga/bpsk.t27: timeout, then blocked on a sequential retry
RETRIED     specs/fpga/testbench/clock_domain_tb.t27: timeout, then timeout on a sequential retry
TIMEOUT     specs/fpga/testbench/clock_domain_tb.t27
TESTFAIL    specs/fpga/testbench/dft_tb.t27: FAIL test_bist_run: assert failed at line 101 (assert)
RETRIED     specs/fpga/testbench/gf16_accel_tb.t27: timeout, then timeout on a sequential retry
TIMEOUT     specs/fpga/testbench/gf16_accel_tb.t27
TESTFAIL    specs/fpga/testbench/integration_tb.t27: FAIL test_reset_all_modules: assert failed at line 45 (assert)
RETRIED     specs/fpga/testbench/spi_tb.t27: timeout, then fail on a sequential retry
TESTFAIL    specs/fpga/testbench/spi_tb.t27: FAIL test_single_transfer: assert failed at line 70 (assert)
TESTFAIL    specs/fpga/testbench/ternary_isa_tb.t27: FAIL test_alu_add_positives: assert failed at line 95 (assert)
TESTFAIL    specs/fpga/testbench/timing_tb.t27: FAIL test_fmax_computation: assert failed at line 69 (assert)
RETRIED     specs/isa/t27a.t27: timeout, then pass on a sequential retry
TESTFAIL    specs/isa/tri27_machine.t27: FAIL immediates_become_values_addresses_and_trits: integer cast out of range at line 281 (u32 as i32)
RETRIED     specs/physics/su2_chern_simons.t27: timeout, then blocked on a sequential retry
TESTFAIL    specs/port/fpga/verilog/tnf17_jtag.t27: FAIL jtag_value_generation: assert failed at line 221 (assert)
TESTFAIL    specs/port/fpga/vivado/gf16_dot4.t27: FAIL intermediate_structure: integer overflow at line 50 (* on u16)
TESTFAIL    specs/port/scripts/check-first-party-doc-language.t27: FAIL find_last_char_found: assert failed at line 61 (assert)
CODEGEN     specs/port/scripts/gen_w384_lean.t27: t27b: unsupported construct FnDecl(frame size) at line 0 (fn main_appends_the_exact_w384_text: 16448 bytes of local aggregates; at most 16384 per frame)
TESTFAIL    specs/port/scripts/gen_w392.t27: FAIL build_w392_block_replacements: assert failed at line 159 (assert)
TESTFAIL    specs/port/tools/verify_multitarget.t27: FAIL gen_pairs_is_deterministic: integer overflow at line 20 (* on u64)
TESTFAIL    specs/port/trinity/src/tri/gen_mse.t27: FAIL mse: assert_eq failed at line 17 (left 4599676419421066581, right 4599670414621563421)
TESTFAIL    specs/port/trinity/src/tri/gen_vector2d.t27: FAIL Vec2_length: assert_eq failed at line 61 (left 4627730092099942521, right 4627730092099895296)
RETRIED     specs/port/trios/crates/trios-physics/src/lib.t27: timeout, then pass on a sequential retry
TESTFAIL    specs/tri/search/pattern.t27: FAIL wildcard_match_no_match: assert failed at line 217 (assert)
CODEGEN     specs/tri/t27b/fuzz.t27: t27b: unsupported construct FnDecl(frame size) at line 0 (fn same_seed_same_case: 80000 bytes of local aggregates; at most 16384 per frame)
TESTFAIL    specs/ui/viewport.t27: FAIL rail_capacity_follows_the_css_budget: integer overflow at line 176 (* on u8)

t27b corpus: 1356 files under specs in 309.3 s
  supported, all tests pass : 548 (3456 tests, 582 invariants; 257 files have no test block)
  pass, 0 runtime asserts   : 248 (pass_vacuous: not counted above)
  supported, a test fails   : 15 (a test or an invariant)
  rejected (unsupported)    : 541
  front-end error           : 0
  JIT/interpreter mismatch  : 0 (t27b's JIT against t27b's interpreter, same IR)
  codegen limit             : 2
  timeout (60000 ms)        : 2
  crash                     : 0
  timed out, retried once   : 7 (2 still timeout; the rows above count the retry)
top rejecting constructs (first rejection per file; all occurrences):
     58   319  StructDecl(reference undeclared field type)
     48  1905  ExprCall(undeclared fn)
     40   121  type std.mem.Allocator
     32   122  ExprArrayLiteral(reference empty typed)
     25   797  type mismatch
     21  1196  ExprArrayLiteral
     19   641  type (alias)
     17   202  ExprCall(method)
     17   428  type (undeclared)
     14   130  ExprIdentifier(undeclared)
     14    53  StmtAssign
     12    71  StmtAssign(reference redeclares)
     10   147  ConstDecl
     10    47  ExprStructLit(zig keyword field)
      8    15  ExprArrayLiteral(text element)
[2026-10-07T00:14:59Z] exit 0 in 309.9 s
[2026-10-07T00:15:03Z] reference cache: 0 hits, 1356 to run (t27c 5b4c569a3883a34fa194399f7a723a0e17897a78fdc7f44033ffd5147ed3ab77 zig 0.16.0)
[2026-10-07T00:15:48Z] reference: 100 / 1356
[2026-10-07T00:16:08Z] reference: 200 / 1356
[2026-10-07T00:16:38Z] reference: 300 / 1356
[2026-10-07T00:17:19Z] reference: 400 / 1356
[2026-10-07T00:18:03Z] reference: 500 / 1356
[2026-10-07T00:18:40Z] reference: 600 / 1356
[2026-10-07T00:19:17Z] reference: 700 / 1356
[2026-10-07T00:19:51Z] reference: 800 / 1356
[2026-10-07T00:20:25Z] reference: 900 / 1356
[2026-10-07T00:20:55Z] reference: 1000 / 1356
[2026-10-07T00:21:20Z] reference: 1100 / 1356
[2026-10-07T00:21:53Z] reference: 1200 / 1356
[2026-10-07T00:22:17Z] reference: 1300 / 1356
[2026-10-07T00:22:33Z] $ cargo test --release -p t27b --target aarch64-unknown-linux-gnu --target-dir /work/target
    Finished `release` profile [optimized] target(s) in 0.24s
     Running tests/arraylit.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/arraylit-fd046eb1e38fc9e7)

running 5 tests
test indexing_an_address_literal_is_refused ... ok
test a_constant_returned_as_a_mutable_slice_is_refused ... ok
test a_run_time_slice_return_is_refused ... ok
test value_conformance_spec_passes ... ok
test conformance_spec_passes ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s

     Running tests/blockers.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/blockers-844c27cdf879027f)

running 10 tests
test a_file_both_sides_fail_agrees_only_if_the_same_tests_fail ... ok
test a_timeout_is_retried_exactly_once_and_the_retry_decides ... ok
test greedy_breaks_a_zero_unlock_step_by_progress ... ok
test reads_test_report_output ... ok
test reads_per_test_verdicts_of_test_report ... ok
test t27b_verdicts_skip_invariants_and_name_repeats_like_t27c ... ok
test greedy_prefers_whole_files ... ok
test blockers_is_empty_for_a_supported_file ... ok
test blockers_lists_every_construct ... ok
test a_timeout_kills_the_group_and_spares_the_caller ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s

     Running tests/differential.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/differential-d97d781eae9c53ea)

running 20 tests
test f64_conversions_match_interpreter ... ok
test f32_mixed_arguments_and_calls_match_interpreter ... ok
test bench_prose_clauses_lower_to_nothing ... ok
test f32_refusals_name_the_construct ... ok
test bench_unlowerable_body_names_its_construct ... ok
test bench_bodies_compile_but_never_run ... ok
test f64_mixed_arguments_and_calls_match_interpreter ... ok
test f64_source_programs_run_in_both_engines ... ok
test f32_source_programs_run_in_both_engines ... ok
test f64_refusals_name_the_construct ... ok
test f32_conversions_match_interpreter ... ok
test shift_source_programs_run_in_both_engines ... ok
test shift_refusals_name_the_construct ... ok
test comptime_floats_fold_in_binary128 ... ok
test casts_at_edge_values ... ok
test compare_unary_widen_at_edge_values ... ok
test f32_arith_and_compare_match_interpreter ... ok
test f64_arith_and_compare_match_interpreter ... ok
test every_operator_at_edge_values ... ok
test random_programs_jit_matches_interpreter has been running for over 60 seconds
test random_programs_jit_matches_interpreter ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 104.11s

     Running tests/encoder.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/encoder-13c6ba05ae0ae390)

running 5 tests
test disassembler_matches_otool_for_memory_forms ... ok
test bitmask_immediates_are_complete_and_exact ... ok
test disassembler_reads_back_the_subset ... ok
test encoders_match_clang ... ok
test mov_imm_materialises_every_value ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s

     Running tests/formulti.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/formulti-a561f4d44c35f3a8)

running 3 tests
test capture_count_and_ranges_are_refused ... ok
test unequal_comptime_lengths_are_refused ... ok
test several_objects_walk_together ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s

     Running tests/lencall.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/lencall-d062a2940ecc4ed7)

running 2 tests
test len_calls_are_the_len_field ... ok
test a_declared_len_fn_is_called ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s

     Running tests/macho.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/macho-6e065da67e6469f8)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/memory.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/memory-52ea232414f3a228)

running 8 tests
test a_slot_dies_with_its_call ... ok
test copy_carries_written_bytes_only ... ok
test bounds_traps_with_index_and_length ... ok
test refuses_a_bool_load_of_another_byte ... ok
test refuses_accesses_outside_the_slot ... ok
test refuses_reads_of_unwritten_bytes ... ok
test refuses_stores_into_data_and_reads_past_a_blob ... ok
test stores_and_loads_round_trip_little_endian ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s

     Running tests/refcache.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/refcache-b2d6bdcfa112749e)

running 7 tests
test a_timeout_is_never_cacheable ... ok
test cache_row_is_one_line ... ok
test rows_carry_per_test_verdicts ... ok
test old_and_damaged_rows_are_read_harmlessly ... ok
test the_key_closure_follows_use ... ok
test stamp_follows_content_not_mtime ... ok
test concurrent_appends_write_only_whole_rows ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s

     Running tests/source.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/source-c1f41e7b1b476caa)

running 43 tests
test assert_with_message_checks_the_condition_only ... ok
test compile_assert_is_assert ... ok
test discarded_call_result_is_refused_where_reached ... ok
test char_literals_are_comptime_ints ... ok
test array_rejections_are_precise ... ok
test array_literals_typed_by_their_use_rejections ... ok
test module_var_rejections_are_precise ... ok
test fn_declaration_rejections_are_precise ... ok
test invariants_run_like_tests ... ok
test partially_parsed_invariant_is_rejected ... ok
test parameter_discard_rejections ... ok
test optionals_the_reference_does_not_match_are_refused ... ok
test f64_and_integer_stack_parameters_interleave ... ok
test ignored_value_only_where_zig_never_looks ... ok
test for_over_a_range ... ok
test enum_rejections_are_precise ... ok
test plain_enums_as_integer_tags ... ok
test module_vars_are_fresh_per_test ... ok
test parameter_discard_is_a_no_op ... ok
test if_expression_runs_only_the_taken_arm ... ok
test array_literals_typed_by_their_use ... ok
test optionals_match_the_reference ... ok
test shapes_the_reference_cannot_compile_are_refused ... ok
test slice_rejections_are_precise ... ok
test arrays_literals_indexing_len_and_for ... ok
test struct_field_initialised_from_a_scalar_call ... ok
test struct_rejections_are_precise ... ok
test string_rejections_are_precise ... ok
test struct_constants_with_str_fields ... ok
test undefined_stub_only_where_zig_never_looks ... ok
test slices_params_slicing_len_index_and_for ... ok
test t27_array_spelling_rejections_are_precise ... ok
test switch_runs_only_the_taken_prong ... ok
test strings_literals_params_fields_and_equality ... ok
test structs_fields_pointers_and_results ... ok
test untyped_locals_follow_the_reference ... ok
test try_statements_the_reference_does_not_compile_are_refused ... ok
test tuples_as_the_reference_lowers_them ... ok
test top_level_statements_are_dropped_like_the_reference ... ok
test try_statements_in_tests_match_the_reference ... ok
test t27_array_spellings_repeats_and_slice_arguments ... ok
test stack_parameters_reach_the_callee_in_order ... ok
test tuples_rejections ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s

     Running tests/stdmem.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/stdmem-6ec06104732c65db)

running 5 tests
test std_mem_other_shapes_are_refused ... ok
test non_byte_buffers_are_refused ... ok
test std_mem_eql_and_index_of_null ... ok
test byte_buffers_compare_by_content ... ok
test byte_buffer_conformance_spec_passes ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s

     Running tests/tail.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/tail-0d6fbceb2a3f29a1)

running 4 tests
test undefined_return_type_on_a_reached_fn_is_refused ... ok
test undefined_return_type_on_an_unreached_fn ... ok
test brace_invariant_non_predicates_are_refused ... ok
test brace_invariant_predicates_are_asserted ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s

     Running tests/vacuous.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/vacuous-bec4ae41ef85d000)

running 3 tests
test constant_only_asserts_are_vacuous ... ok
test runtime_asserts_are_counted ... ok
test asserts_are_counted_per_execution ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s

     Running tests/valueparams.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/valueparams-485a6e59eef6f648)

running 3 tests
test a_write_only_deeper_is_refused ... ok
test a_local_written_only_deeper_is_refused ... ok
test conformance_spec_passes ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s

[2026-10-07T00:24:24Z] exit 0 in 111.2 s
[2026-10-07T00:24:24Z] $ /usr/bin/python3 /work/t27/scripts/tri_loop/t27b.py fuzz --cases 1000 --seed 1791332664 --t27b /work/target/aarch64-unknown-linux-gnu/release/t27b --reference /work/target/release/t27c --runner qemu-aarch64 -L /usr/aarch64-linux-gnu --jobs 12 --json /work/fuzz.json
tri t27b fuzz: seed 1791332664 cases 999 tests 1941: agree 1890 disagree 4 rejected 44 unjudged 3 (337.5 s)
  REFERENCE_BUG        4
  REFERENCE_REJECTED   44
  UNJUDGED             3
  REFERENCE_REJECTED   --seed 1791332664 --first 6 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:56:19: error: use of undeclared identifier 'v1'
  REFERENCE_REJECTED   --seed 1791332664 --first 6 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:56:19: error: use of undeclared identifier 'v1'
  REFERENCE_REJECTED   --seed 1791332664 --first 6 --cases 1  f2_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:56:19: error: use of undeclared identifier 'v1'
  REFERENCE_BUG        --seed 1791332664 --first 10 --cases 1  f0_expect_trap: t27b fail FAIL f0_expect_trap: integer overflow at line 11 (* on i16) | reference fail 1 of 2 tests fail
  REFERENCE_REJECTED   --seed 1791332664 --first 89 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:84:24: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 89 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:84:24: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 89 --cases 1  f2_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:84:24: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 93 --cases 1  f0_expect_trap: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 93 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 195 --cases 1  f0_expect_trap: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:42: error: expected ',' after argument
  REFERENCE_REJECTED   --seed 1791332664 --first 195 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:42: error: expected ',' after argument
  REFERENCE_REJECTED   --seed 1791332664 --first 208 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:43:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 208 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:43:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 351 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:57:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 351 --cases 1  f1_expect_trap: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:57:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 351 --cases 1  f2_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:57:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 462 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:53:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 462 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:53:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791332664 --first 462 --cases 1  f2_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:53:19: error: use of undeclared identifier 'v0'
  REFERENCE_BUG        --seed 1791332664 --first 602 --cases 1  f1_expect_trap: t27b fail FAIL f1_expect_trap: integer overflow at line 31 (* on u8) | reference pass 
[2026-10-07T00:30:02Z] exit 1 in 338.0 s
[2026-10-07T00:30:03Z] $ /usr/bin/python3 /work/t27/scripts/tri_loop/t27b.py ratchet --run /work/ratchet-run.json --ledger /work/t27/docs/reports/t27b_expectations.json --json
[2026-10-07T00:30:03Z] ratchet exit 1
[2026-10-07T00:30:03Z] published /runs/403b27f29dda78afa7e57582e9b375acbfdb1d5a.json: {"files": 1356, "reference_pass": 811, "reference_lab_error": 0, "t27b_pass": 548, "t27b_pass_vacuous": 248, "t27b_pass_where_reference_passes": 524, "t27b_pass_vacuous_where_reference_passes": 232, "t27b_pass_where_reference_does_not": 24, "mismatch": 0, "jit_interp_mismatch": 0, "reference_compared": 768, "reference_disagree": 0, "reference_disagree_tests": 0, "t27b_fail": 15, "crash": 0, "timeout": 2, "timeout_retried": 7}
