[2026-10-07T15:03:11Z] t27b lab run: https://github.com/gHashTag/t27 master @ 27493414dd605618090de4c824c31beee8ebce61
[2026-10-07T15:03:11Z] image: lab.py 94254f63f399d9e387024d64566c99eca9f62697 Dockerfile 9d7c089ce6190bf54e163e75bc984dba27bcbb60 built 2026-10-07T07:56:19Z deployment 32a04b2b-7de8-4938-80ef-1b0f87b2227f
[2026-10-07T15:03:11Z] $ git fetch --filter=blob:none origin 27493414dd605618090de4c824c31beee8ebce61
From https://github.com/gHashTag/t27
 * branch                27493414dd605618090de4c824c31beee8ebce61 -> FETCH_HEAD
[2026-10-07T15:03:12Z] exit 0 in 0.8 s
[2026-10-07T15:03:12Z] $ git checkout --force --detach 27493414dd605618090de4c824c31beee8ebce61
Previous HEAD position was 329c5f47c t27b ledger: batch bless from a full lab run on master (Closes #7432) (#7476)
HEAD is now at 27493414d specs(tri): TemplateEntry, not Entry, so template.t27 adds no type conflict (Refs #7383) (#7488)
[2026-10-07T15:03:12Z] exit 0 in 0.4 s
[2026-10-07T15:03:12Z] $ 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:9021:13
     |
9021 |         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:12984:29
      |
12984 |         let mut elem_type = String::new();
      |                             ^^^^^^^^^^^^^ this value is reassigned later and never used
...
12993 |                     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:14002:17
      |
14002 |             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:15260:13
      |
15260 |         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:16778:37
      |
16778 | ...                   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:19563:17
      |
19563 |             let mut consider = |ty: &str,
      |                 ----^^^^^^^^
      |                 |
      |                 help: remove this `mut`

warning: unused variable: `rest`
     --> bootstrap/src/compiler.rs:23121:22
      |
23121 |             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:25614:9
      |
25614 |     let mut note = |ty: &str, where_: String, out: &mut Vec<(String, String)>| {
      |         ----^^^^
      |         |
      |         help: remove this `mut`

warning: unreachable pattern
     --> bootstrap/src/compiler.rs:26442:9
      |
26319 |         NodeKind::ExprReturn => {
      |         -------------------- matches all the relevant values
...
26442 |         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:32629:13
      |
32629 |             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:5716:9
     |
5716 |     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:8247:13
     |
8247 |         let mut offset = 0u32;
     |             ----^^^^^^
     |             |
     |             help: remove this `mut`

warning: unused variable: `offset`
    --> bootstrap/src/main.rs:8247:13
     |
8247 |         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:11585:9
      |
11585 |     let mut warnings = 0u32;
      |         ^^^^^^^^^^^^
      |
      = note: consider using `_warnings` instead

warning: value assigned to `warnings` is never read
     --> bootstrap/src/main.rs:11610:45
      |
11610 |         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:12730:8
      |
11243 | impl VerilogCodegen {
      | ------------------- method in this implementation
...
12730 |     fn packed_struct_width(&self, name: &str, depth: u32) -> u32 {
      |        ^^^^^^^^^^^^^^^^^^^

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

warning: variant `Inout` is never constructed
     --> bootstrap/src/compiler.rs:29357:5
      |
29354 | pub enum HwPortDir {
      |          --------- variant in this enum
...
29357 |     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:29428:9
      |
29424 | pub struct HirInstance {
      |            ----------- field in this struct
...
29428 |     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:29441:5
      |
29440 | pub enum HwMemPortKind {
      |          ------------- variant in this enum
29441 |     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:29460:9
      |
29455 | pub struct HirMemory {
      |            --------- field in this struct
...
29460 |     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:29465:12
      |
29464 | impl HirMemory {
      | -------------- associated items in this implementation
29465 |     pub fn new_bram(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^^
...
29477 |     pub fn new_rom(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^
...
29489 |     fn calc_addr_width(depth: u32) -> u32 {
      |        ^^^^^^^^^^^^^^^
...
29502 |     pub fn add_read_port(&mut self, name: &str) {
      |            ^^^^^^^^^^^^^
...
29511 |     pub fn add_write_port(&mut self, name: &str) {
      |            ^^^^^^^^^^^^^^
...
29520 |     pub fn has_read(&self) -> bool {
      |            ^^^^^^^^

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

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

warning: fields `name`, `source_name`, `freq_hz`, and `posedge` are never read
     --> bootstrap/src/compiler.rs:29583:9
      |
29582 | pub struct HirClockDomain {
      |            -------------- fields in this struct
29583 |     pub name: String,
      |         ^^^^
29584 |     pub source_name: String,
      |         ^^^^^^^^^^^
29585 |     pub freq_hz: u32,
      |         ^^^^^^^
29586 |     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:29590:12
      |
29589 | impl HirClockDomain {
      | ------------------- associated items in this implementation
29590 |     pub fn new(name: &str, source: &str, freq_hz: u32) -> Self {
      |            ^^^
...
29599 |     pub fn period_ns(&self) -> u32 {
      |            ^^^^^^^^^
...
29606 |     pub fn half_period_ns(&self) -> u32 {
      |            ^^^^^^^^^^^^^^

warning: fields `src_domain`, `dst_domain`, `strategy`, and `data_width` are never read
     --> bootstrap/src/compiler.rs:29621:9
      |
29620 | pub struct HirClockCrossing {
      |            ---------------- fields in this struct
29621 |     pub src_domain: String,
      |         ^^^^^^^^^^
29622 |     pub dst_domain: String,
      |         ^^^^^^^^^^
29623 |     pub strategy: HwCrossStrategy,
      |         ^^^^^^^^
29624 |     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:29647:12
      |
29646 | impl HirFifo {
      | ------------ associated functions in this implementation
29647 |     pub fn new_sync(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^^
...
29660 |     pub fn new_async(name: &str, depth: u32, data_width: u32) -> Self {
      |            ^^^^^^^^^

warning: variant `Master` is never constructed
     --> bootstrap/src/compiler.rs:29699:5
      |
29698 | pub enum HwBusRole {
      |          --------- variant in this enum
29699 |     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:29714:12
      |
29713 | impl HirBusPort {
      | --------------- associated items in this implementation
29714 |     pub fn axi4_lite_slave(name: &str, addr_width: u32, data_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^
...
29725 |     pub fn axi4_lite_master(name: &str, addr_width: u32, data_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^^
...
29736 |     pub fn axi4_full_slave(name: &str, addr_width: u32, data_width: u32, id_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^
...
29747 |     pub fn axi4_full_master(name: &str, addr_width: u32, data_width: u32, id_width: u32) -> Self {
      |            ^^^^^^^^^^^^^^^^
...
29762 |     pub fn is_lite(&self) -> bool {
      |            ^^^^^^^
...
29766 |     pub fn is_full(&self) -> bool {
      |            ^^^^^^^
...
29770 |     pub fn is_slave(&self) -> bool {
      |            ^^^^^^^^
...
29774 |     pub fn is_master(&self) -> bool {
      |            ^^^^^^^^^
...
29870 |     pub fn total_signal_bits(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^

warning: field `name` is never read
     --> bootstrap/src/compiler.rs:29921:9
      |
29920 | pub struct HirApbPeriphMap {
      |            --------------- field in this struct
29921 |     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:29939:12
      |
29938 | impl HirApbBridge {
      | ----------------- associated items in this implementation
29939 |     pub fn new(name: &str, addr_width: u32, data_width: u32, num_peripherals: u32) -> Self {
      |            ^^^
...
29951 |     pub fn with_error_response(mut self) -> Self {
      |            ^^^^^^^^^^^^^^^^^^^
...
29957 |     pub fn add_peripheral(&mut self, name: &str, base_addr: u32, size: u32, index: u32) {
      |            ^^^^^^^^^^^^^^
...
29970 |     pub fn addr_bits_for_peripherals(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
...
29983 |     pub fn select_peripheral(&self, addr: u32) -> Option<u32> {
      |            ^^^^^^^^^^^^^^^^^

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

warning: field `name` is never read
     --> bootstrap/src/compiler.rs:30040:9
      |
30039 | pub struct HirGf16FftConfig {
      |            ---------------- field in this struct
30040 |     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:30072:9
      |
30066 | pub struct HirGf16Accel {
      |            ------------ field in this struct
...
30072 |     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:30080:12
      |
30079 | impl HirGf16Accel {
      | ----------------- associated items in this implementation
30080 |     pub fn basic(name: &str, num_mult: u32) -> Self {
      |            ^^^^^
...
30095 |     pub fn full(name: &str, num_mult: u32, vec_width: u32) -> Self {
      |            ^^^^
...
30110 |     pub fn add_mac_unit(&mut self, name: &str, acc_width: u32, stages: u32) {
      |            ^^^^^^^^^^^^
...
30118 |     pub fn set_fft(&mut self, name: &str, num_points: u32, radix: u32) {
      |            ^^^^^^^
...
30126 |     pub fn total_gf16_bits(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
30130 |     pub fn mac_unit_count(&self) -> u32 {
      |            ^^^^^^^^^^^^^^
...
30153 |     pub fn matmul_cycles(&self, n: u32) -> u32 {
      |            ^^^^^^^^^^^^^
...
30161 |     pub fn dot_product_cycles(&self, vec_len: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^

warning: variants `Immediate`, `Cover`, and `Assume` are never constructed
     --> bootstrap/src/compiler.rs:30198:5
      |
30197 | pub enum HwAssertKind {
      |          ------------ variants in this enum
30198 |     Immediate,
      |     ^^^^^^^^^
30199 |     Concurrent,
30200 |     Cover,
      |     ^^^^^
30201 |     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:30206:5
      |
30205 | pub enum HwAssertSeverity {
      |          ---------------- variants in this enum
30206 |     Info,
      |     ^^^^
30207 |     Warning,
      |     ^^^^^^^
30208 |     Error,
      |     ^^^^^
30209 |     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:30250:12
      |
30249 | impl HirFormalConfig {
      | -------------------- associated items in this implementation
30250 |     pub fn new(name: &str, module_name: &str, clock: &str, reset: &str) -> Self {
      |            ^^^
...
30261 |     pub fn with_depth(mut self, depth: u32) -> Self {
      |            ^^^^^^^^^^
...
30266 |     pub fn with_timeout(mut self, timeout: u32) -> Self {
      |            ^^^^^^^^^^^^

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

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

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:30369:12
      |
30368 | impl HirFormalAssume {
      | -------------------- associated function in this implementation
30369 |     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:30407:9
      |
30406 | pub struct HirTernaryRegFile {
      |            ----------------- fields in this struct
30407 |     pub name: String,
      |         ^^^^
...
30412 |     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:30432:12
      |
30431 | impl HirTernaryCore {
      | ------------------- associated items in this implementation
30432 |     pub fn basic(name: &str) -> Self {
      |            ^^^^^
...
30449 |     pub fn full(name: &str) -> Self {
      |            ^^^^
...
30466 |     pub fn with_regfile(mut self, rf: HirTernaryRegFile) -> Self {
      |            ^^^^^^^^^^^^
...
30471 |     pub fn add_pipeline_stage(&mut self, name: &str, latency: u32, has_forwarding: bool) {
      |            ^^^^^^^^^^^^^^^^^^
...
30479 |     pub fn add_alu_op(&mut self, name: &str, opcode: u32, latency: u32, uses_gf16: bool) {
      |            ^^^^^^^^^^
...
30523 |     pub fn fits_arty_a7(&self) -> bool {
      |            ^^^^^^^^^^^^
...
30527 |     pub fn fits_xc7a100t(&self) -> bool {
      |            ^^^^^^^^^^^^^

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

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

warning: associated functions `zero` and `new` are never used
     --> bootstrap/src/compiler.rs:30587:12
      |
30586 | impl HirResourceEstimate {
      | ------------------------ associated functions in this implementation
30587 |     pub fn zero() -> Self {
      |            ^^^^
...
30597 |     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:30609:12
      |
30609 | pub struct HirIpCore {
      |            ^^^^^^^^^

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:30657:12
      |
30656 | impl HirIpCatalog {
      | ----------------- associated items in this implementation
30657 |     pub fn new(name: &str) -> Self {
      |            ^^^
...
30664 |     pub fn add_core(
      |            ^^^^^^^^
...
30682 |     pub fn total_luts(&self) -> u32 {
      |            ^^^^^^^^^^
...
30685 |     pub fn total_ffs(&self) -> u32 {
      |            ^^^^^^^^^
...
30688 |     pub fn total_bram18(&self) -> u32 {
      |            ^^^^^^^^^^^^
...
30691 |     pub fn total_dsp48(&self) -> u32 {
      |            ^^^^^^^^^^^
...
30695 |     pub fn fits_board(&self, board: &HirBoardResources) -> bool {
      |            ^^^^^^^^^^
...
30702 |     pub fn luts_remaining(&self, board: &HirBoardResources) -> u32 {
      |            ^^^^^^^^^^^^^^
...
30706 |     pub fn utilization_percent(&self, board: &HirBoardResources) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^
...
30713 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:30796:12
      |
30795 | impl AssembledInstr {
      | ------------------- associated items in this implementation
30796 |     pub fn r_type(opcode: u32, rd: u32, rs1: u32, rs2: u32) -> Self {
      |            ^^^^^^
...
30809 |     pub fn i_type(opcode: u32, rd: u32, rs1: u32, imm: u32) -> Self {
      |            ^^^^^^
...
30822 |     pub fn gf16(opcode: u32, rd: u32, rs1: u32, rs2: u32) -> Self {
      |            ^^^^
...
30835 |     pub fn is_r_type(&self) -> bool {
      |            ^^^^^^^^^
...
30839 |     pub fn is_i_type(&self) -> bool {
      |            ^^^^^^^^^
...
30843 |     pub fn is_gf16_instr(&self) -> bool {
      |            ^^^^^^^^^^^^^
...
30847 |     pub fn encode_r_type(&self) -> u32 {
      |            ^^^^^^^^^^^^^
...
30851 |     pub fn encode_i_type(&self) -> u32 {
      |            ^^^^^^^^^^^^^
...
30855 |     pub fn encode(&self) -> u32 {
      |            ^^^^^^

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

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

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

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

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

warning: associated items `text`, `data`, `bss`, `rodata`, and `end` are never used
     --> bootstrap/src/compiler.rs:30923:12
      |
30922 | impl AsmSection {
      | --------------- associated items in this implementation
30923 |     pub fn text(base: u32) -> Self {
      |            ^^^^
...
30932 |     pub fn data(base: u32) -> Self {
      |            ^^^^
...
30941 |     pub fn bss(base: u32) -> Self {
      |            ^^^
...
30950 |     pub fn rodata(base: u32) -> Self {
      |            ^^^^^^
...
30959 |     pub fn end(&self) -> u32 {
      |            ^^^

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:31029:12
      |
31028 | impl HirAssembler {
      | ----------------- associated items in this implementation
31029 |     pub fn new(name: &str) -> Self {
      |            ^^^
...
31044 |     pub fn with_config(config: AsmConfig) -> Self {
      |            ^^^^^^^^^^^
...
31058 |     pub fn set_section(&mut self, name: &str) -> Result<(), String> {
      |            ^^^^^^^^^^^
...
31068 |     pub fn emit_r(&mut self, opcode: u32, rd: u32, rs1: u32, rs2: u32) -> u32 {
      |            ^^^^^^
...
31078 |     pub fn emit_i(&mut self, opcode: u32, rd: u32, rs1: u32, imm: u32) -> u32 {
      |            ^^^^^^
...
31088 |     pub fn emit_gf16(&mut self, opcode: u32, rd: u32, rs1: u32, rs2: u32) -> u32 {
      |            ^^^^^^^^^
...
31098 |     pub fn define_symbol(&mut self, name: &str, is_global: bool) {
      |            ^^^^^^^^^^^^^
...
31106 |     pub fn resolve_symbol(&self, name: &str) -> Option<u32> {
      |            ^^^^^^^^^^^^^^
...
31113 |     pub fn add_relocation(&mut self, offset: u32, kind: AsmRelocKind, symbol: &str, addend: u32) {
      |            ^^^^^^^^^^^^^^
...
31118 |     pub fn apply_relocations(&mut self) -> Result<u32, String> {
      |            ^^^^^^^^^^^^^^^^^
...
31141 |     pub fn total_bytes(&self) -> u32 {
      |            ^^^^^^^^^^^
...
31145 |     pub fn total_instructions(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
31149 |     pub fn encode_all(&self) -> Vec<u32> {
      |            ^^^^^^^^^^
...
31153 |     pub fn to_binary(&self) -> Vec<u8> {
      |            ^^^^^^^^^
...
31162 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

warning: fields `duty_cycle` and `phase_ns` are never read
     --> bootstrap/src/compiler.rs:31174:9
      |
31172 | pub struct TbClockCfg {
      |            ---------- fields in this struct
31173 |     pub period_ns: u32,
31174 |     pub duty_cycle: u32,
      |         ^^^^^^^^^^
31175 |     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:31208:12
      |
31199 | impl TbResetCfg {
      | --------------- method in this implementation
...
31208 |     pub fn reset_end_cycle(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^

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

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

warning: field `fail_fast` is never read
     --> bootstrap/src/compiler.rs:31281:9
      |
31275 | pub struct TbConfig {
      |            -------- field in this struct
...
31281 |     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:31296:12
      |
31284 | impl TbConfig {
      | ------------- method in this implementation
...
31296 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:31608:12
      |
31607 | impl HirVcdTrace {
      | ---------------- associated items in this implementation
31608 |     pub fn new(version: &str) -> Self {
      |            ^^^
...
31617 |     pub fn add_var(&mut self, kind: VcdVarKind, size: u32, name: &str) {
      |            ^^^^^^^
...
31628 |     pub fn add_wire(&mut self, size: u32, name: &str) {
      |            ^^^^^^^^
...
31632 |     pub fn add_reg(&mut self, size: u32, name: &str) {
      |            ^^^^^^^
...
31636 |     pub fn record(&mut self, timestamp_ps: u64, var_name: &str, value: u32) {
      |            ^^^^^^
...
31648 |     pub fn changes_at(&self, ts: u64) -> u32 {
      |            ^^^^^^^^^^
...
31652 |     pub fn earliest_timestamp(&self) -> u64 {
      |            ^^^^^^^^^^^^^^^^^^
...
31660 |     pub fn latest_timestamp(&self) -> u64 {
      |            ^^^^^^^^^^^^^^^^
...
31668 |     pub fn duration_ps(&self) -> u64 {
      |            ^^^^^^^^^^^
...
31676 |     pub fn ident_from_index(idx: usize) -> String {
      |            ^^^^^^^^^^^^^^^^
...
31689 |     pub fn emit_vcd(&self) -> String {
      |            ^^^^^^^^
...
31732 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

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

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:31958:12
      |
31957 | impl HirLinker {
      | -------------- associated items in this implementation
31958 |     pub fn new(entry: &str) -> Self {
      |            ^^^
...
31969 |     pub fn add_object(&mut self, asm: &HirAssembler) {
      |            ^^^^^^^^^^
...
31978 |     pub fn link(&mut self) -> LinkResult {
      |            ^^^^
...
32012 |     pub fn resolve_entry(&self) -> Option<u32> {
      |            ^^^^^^^^^^^^^
...
32024 |     pub fn resolve_symbol(&self, name: &str) -> Option<u32> {
      |            ^^^^^^^^^^^^^^
...
32031 |     pub fn emit_image(&self) -> Vec<u8> {
      |            ^^^^^^^^^^
...
32042 |     pub fn emit_hex(&self) -> String {
      |            ^^^^^^^^
...
32068 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

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

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32253:15
      |
32252 | impl TimingModel {
      | ---------------- associated items in this implementation
32253 |     pub const LUT_DELAY_PS: u32 = 100;
      |               ^^^^^^^^^^^^
32254 |     pub const BRAM_DELAY_PS: u32 = 2000;
      |               ^^^^^^^^^^^^^
32255 |     pub const DSP_DELAY_PS: u32 = 2500;
      |               ^^^^^^^^^^^^
32256 |     pub const ROUTING_DELAY_PS: u32 = 300;
      |               ^^^^^^^^^^^^^^^^
32257 |     pub const SETUP_TIME_PS: u32 = 200;
      |               ^^^^^^^^^^^^^
32258 |     pub const HOLD_TIME_PS: u32 = 50;
      |               ^^^^^^^^^^^^
32259 |
32260 |     pub fn est_comb_delay(num_luts: u32) -> u32 {
      |            ^^^^^^^^^^^^^^
...
32264 |     pub fn est_reg_to_reg_delay(num_luts: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^
...
32268 |     pub fn slack(delay_ps: u32, constraint_ps: u32) -> i64 {
      |            ^^^^^
...
32272 |     pub fn fmax_from_delay(delay_ps: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32279 |     pub fn analyze_module(module: &HirModule, constraint: &TimingConstraint) -> TimingReport {
      |            ^^^^^^^^^^^^^^

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

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32394:15
      |
32393 | impl PowerModel {
      | --------------- associated items in this implementation
32394 |     pub const LUT_POWER_UW_PER_MHZ: u32 = 10;
      |               ^^^^^^^^^^^^^^^^^^^^
32395 |     pub const FF_POWER_UW_PER_MHZ: u32 = 5;
      |               ^^^^^^^^^^^^^^^^^^^
32396 |     pub const BRAM_POWER_UW_PER_MHZ: u32 = 50;
      |               ^^^^^^^^^^^^^^^^^^^^^
32397 |     pub const DSP_POWER_UW_PER_MHZ: u32 = 100;
      |               ^^^^^^^^^^^^^^^^^^^^
32398 |     pub const IO_POWER_UW_PER_MHZ: u32 = 20;
      |               ^^^^^^^^^^^^^^^^^^^
32399 |     pub const STATIC_BASE_MW: u32 = 50;
      |               ^^^^^^^^^^^^^^
32400 |     pub const STATIC_PER_RESOURCE_UW: u32 = 100;
      |               ^^^^^^^^^^^^^^^^^^^^^^
32401 |
32402 |     pub fn est_lut_dynamic(luts: u32, clock_mhz: u32, toggle_rate: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32405 |     pub fn est_ff_dynamic(ffs: u32, clock_mhz: u32, toggle_rate: u32) -> u32 {
      |            ^^^^^^^^^^^^^^
...
32408 |     pub fn est_bram_dynamic(brams: u32, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^
...
32411 |     pub fn est_dsp_dynamic(dsps: u32, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32414 |     pub fn est_static(total_resources: u32) -> u32 {
      |            ^^^^^^^^^^
...
32418 |     pub fn estimate_module(module: &HirModule, clock_mhz: u32, toggle_rate: u32) -> PowerEstimate {
      |            ^^^^^^^^^^^^^^^

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32477:12
      |
32476 | impl PlacementRegion {
      | -------------------- associated items in this implementation
32477 |     pub fn logic(name: &str, x0: u32, y0: u32, x1: u32, y1: u32) -> Self {
      |            ^^^^^
...
32487 |     pub fn bram_col(name: &str, col: u32, y0: u32, y1: u32) -> Self {
      |            ^^^^^^^^
...
32497 |     pub fn dsp_col(name: &str, col: u32, y0: u32, y1: u32) -> Self {
      |            ^^^^^^^
...
32507 |     pub fn width(&self) -> u32 {
      |            ^^^^^
...
32510 |     pub fn height(&self) -> u32 {
      |            ^^^^^^
...
32513 |     pub fn area(&self) -> u32 {
      |            ^^^^
...
32516 |     pub fn overlaps(&self, other: &PlacementRegion) -> bool {
      |            ^^^^^^^^
...
32519 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32578:12
      |
32577 | impl Floorplan {
      | -------------- associated items in this implementation
32578 |     pub fn new(name: &str, device: &str) -> Self {
      |            ^^^
...
32588 |     pub fn add_region(&mut self, region: PlacementRegion) {
      |            ^^^^^^^^^^
...
32592 |     pub fn add_hint(&mut self, module: &str, region: &str, priority: u32) {
      |            ^^^^^^^^
...
32597 |     pub fn add_route(&mut self, source: &str, sink: &str, max_delay_ps: u32) {
      |            ^^^^^^^^^
...
32605 |     pub fn auto_floorplan(&mut self, module: &HirModule) {
      |            ^^^^^^^^^^^^^^
...
32646 |     pub fn check_overlaps(&self) -> Vec<(String, String)> {
      |            ^^^^^^^^^^^^^^
...
32658 |     pub fn total_area(&self) -> u32 {
      |            ^^^^^^^^^^
...
32662 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:32858:12
      |
32857 | impl HirPartitioner {
      | ------------------- associated items in this implementation
32858 |     pub fn new() -> Self {
      |            ^^^
...
32866 |     pub fn add_fpga(&mut self, fpga: FpgaNode) {
      |            ^^^^^^^^
...
32870 |     pub fn add_link(&mut self, link: InterFpgaLink) {
      |            ^^^^^^^^
...
32874 |     pub fn total_bandwidth(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
32878 |     pub fn fpga_usage(&self, fpga_idx: u32) -> (u32, u32, u32, u32) {
      |            ^^^^^^^^^^
...
32889 |     pub fn fits(&self, fpga_idx: u32, luts: u32, ffs: u32, bram: u32, dsp: u32) -> bool {
      |            ^^^^
...
32901 |     pub fn assign(
      |            ^^^^^^
...
32924 |     pub fn auto_partition(&mut self, modules: &[(String, u32, u32, u32, u32)]) -> PartitionResult {
      |            ^^^^^^^^^^^^^^
...
32948 |     fn check_balanced(&self) -> bool {
      |        ^^^^^^^^^^^^^^

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

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

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

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

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

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

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

warning: struct `RouteModel` is never constructed
     --> bootstrap/src/compiler.rs:33034:12
      |
33034 | 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:33037:15
      |
33036 | impl RouteModel {
      | --------------- associated items in this implementation
33037 |     pub const LOCAL_WIRE_UM: u32 = 500;
      |               ^^^^^^^^^^^^^
33038 |     pub const MEDIUM_WIRE_UM: u32 = 2000;
      |               ^^^^^^^^^^^^^^
33039 |     pub const LONG_WIRE_UM: u32 = 5000;
      |               ^^^^^^^^^^^^
33040 |
33041 |     pub fn est_wire_length(fanout: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
33050 |     pub fn est_congestion(nets: u32, die_area_mm2: u32) -> u32 {
      |            ^^^^^^^^^^^^^^

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

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

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

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

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

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

warning: associated items `memory`, `logic`, `cycles`, `coverage`, and `validate` are never used
     --> bootstrap/src/compiler.rs:33185:12
      |
33184 | impl BistCtrl {
      | ------------- associated items in this implementation
33185 |     pub fn memory(name: &str, patterns: u32) -> Self {
      |            ^^^^^^
...
33193 |     pub fn logic(name: &str, patterns: u32) -> Self {
      |            ^^^^^
...
33201 |     pub fn cycles(&self) -> u32 {
      |            ^^^^^^
...
33204 |     pub fn coverage(&self, total_faults: u32) -> u32 {
      |            ^^^^^^^^
...
33210 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:33287:12
      |
33286 | impl HirDft {
      | ----------- associated items in this implementation
33287 |     pub fn new() -> Self {
      |            ^^^
...
33296 |     pub fn add_scan_chain(&mut self, name: &str, regs: u32) {
      |            ^^^^^^^^^^^^^^
...
33300 |     pub fn add_memory_bist(&mut self, name: &str, patterns: u32) {
      |            ^^^^^^^^^^^^^^^
...
33304 |     pub fn add_logic_bist(&mut self, name: &str, patterns: u32) {
      |            ^^^^^^^^^^^^^^
...
33308 |     pub fn set_jtag(&mut self, tap: JtagTap) {
      |            ^^^^^^^^
...
33312 |     pub fn total_scan_regs(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
33316 |     pub fn total_scan_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^
...
33320 |     pub fn total_bist_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^
...
33324 |     pub fn est_test_time_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^
...
33328 |     pub fn coverage_estimate(&self) -> TestCoverage {
      |            ^^^^^^^^^^^^^^^^^
...
33339 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

warning: associated items `new`, `retime_forward`, `retime_backward`, `improvement_percent`, and `fmax_improvement` are never used
     --> bootstrap/src/compiler.rs:33634:12
      |
33633 | impl HirRetimer {
      | --------------- associated items in this implementation
33634 |     pub fn new() -> Self {
      |            ^^^
...
33642 |     pub fn retime_forward(&mut self, from: &str, to: &str, regs: u32) {
      |            ^^^^^^^^^^^^^^
...
33646 |     pub fn retime_backward(&mut self, from: &str, to: &str, regs: u32) {
      |            ^^^^^^^^^^^^^^^
...
33650 |     pub fn improvement_percent(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^
...
33658 |     pub fn fmax_improvement(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^

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

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

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

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:33801:12
      |
33800 | impl HirInterruptCtrl {
      | --------------------- associated items in this implementation
33801 |     pub fn new(name: &str, num_priorities: u32) -> Self {
      |            ^^^
...
33810 |     pub fn add_level_irq(&mut self, name: &str, id: u32, priority: u32) {
      |            ^^^^^^^^^^^^^
...
33813 |     pub fn add_edge_irq(&mut self, name: &str, id: u32, priority: u32) {
      |            ^^^^^^^^^^^^
...
33816 |     pub fn highest_priority(&self) -> Option<&IrqSource> {
      |            ^^^^^^^^^^^^^^^^
...
33819 |     pub fn pending_count(&self) -> u32 {
      |            ^^^^^^^^^^^^^
...
33822 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^
...
33830 |     pub fn emit_verilog(&self) -> String {
      |            ^^^^^^^^^^^^

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

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:33945:12
      |
33944 | impl HirDmaEngine {
      | ----------------- associated items in this implementation
33945 |     pub fn new(name: &str, data_width: u32) -> Self {
      |            ^^^
...
33953 |     pub fn add_single(&mut self, name: &str, src: u32, dst: u32, len: u32) {
      |            ^^^^^^^^^^
...
33958 |     pub fn add_burst(&mut self, name: &str, src: u32, dst: u32, len: u32, burst: u32) {
      |            ^^^^^^^^^
...
33963 |     pub fn total_transfer_cycles(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^^^
...
33966 |     pub fn total_bytes(&self) -> u32 {
      |            ^^^^^^^^^^^
...
33969 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^
...
33980 |     pub fn emit_verilog(&self) -> String {
      |            ^^^^^^^^^^^^

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

warning: associated items `empty`, `new`, `total_improvements`, `has_improvements`, and `improvement_density` are never used
     --> bootstrap/src/compiler.rs:34014:12
      |
34013 | impl CrossOptPass {
      | ----------------- associated items in this implementation
34014 |     pub fn empty() -> Self {
      |            ^^^^^
...
34023 |     pub fn new(name: &str, mods: u32, consts: u32, dead: u32, merged: u32) -> Self {
      |            ^^^
...
34032 |     pub fn total_improvements(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
34035 |     pub fn has_improvements(&self) -> bool {
      |            ^^^^^^^^^^^^^^^^
...
34038 |     pub fn improvement_density(&self) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^^

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

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

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

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

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

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

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

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

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

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

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

warning: associated items `rom`, `ram`, `peripheral`, `end`, and `contains` are never used
     --> bootstrap/src/compiler.rs:34251:12
      |
34250 | impl MemMapEntry {
      | ---------------- associated items in this implementation
34251 |     pub fn rom(name: &str, base: u32, size: u32) -> Self {
      |            ^^^
...
34261 |     pub fn ram(name: &str, base: u32, size: u32) -> Self {
      |            ^^^
...
34271 |     pub fn peripheral(name: &str, base: u32, size: u32) -> Self {
      |            ^^^^^^^^^^
...
34281 |     pub fn end(&self) -> u32 {
      |            ^^^
...
34284 |     pub fn contains(&self, addr: u32) -> bool {
      |            ^^^^^^^^

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:34295:12
      |
34294 | impl HirMemMap {
      | -------------- associated items in this implementation
34295 |     pub fn new() -> Self {
      |            ^^^
...
34300 |     pub fn add_rom(&mut self, name: &str, base: u32, size: u32) {
      |            ^^^^^^^
...
34303 |     pub fn add_ram(&mut self, name: &str, base: u32, size: u32) {
      |            ^^^^^^^
...
34306 |     pub fn add_periph(&mut self, name: &str, base: u32, size: u32) {
      |            ^^^^^^^^^^
...
34309 |     pub fn lookup(&self, addr: u32) -> Option<&MemMapEntry> {
      |            ^^^^^^
...
34312 |     pub fn total_size(&self) -> u32 {
      |            ^^^^^^^^^^
...
34315 |     pub fn check_overlaps(&self) -> Vec<(String, String)> {
      |            ^^^^^^^^^^^^^^

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

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

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

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

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

warning: fields `clock_domains` and `clock_crossings` are never read
     --> bootstrap/src/compiler.rs:34425:9
      |
34417 | pub struct HirModule {
      |            --------- fields in this struct
...
34425 |     pub clock_domains: Vec<HirClockDomain>,
      |         ^^^^^^^^^^^^^
34426 |     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:34740:5
      |
34738 | pub struct HirOptimizer {
      |            ------------ field in this struct
34739 |     removed_signals: u32,
34740 |     removed_assigns: u32,
      |     ^^^^^^^^^^^^^^^

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

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

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

warning: multiple associated items are never used
     --> bootstrap/src/compiler.rs:38239:12
      |
38238 | impl HirSimConfig {
      | ----------------- associated items in this implementation
38239 |     pub fn new(name: &str, max_cycles: u32) -> Self {
      |            ^^^
...
38251 |     pub fn with_trace(mut self, vcd_path: &str) -> Self {
      |            ^^^^^^^^^^
...
38258 |     pub fn sim_time_ns(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
38265 |     pub fn sim_time_us(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
38269 |     pub fn sim_time_ms(&self, cycles: u32) -> u32 {
      |            ^^^^^^^^^^^
...
38273 |     pub fn cycles_for_time_ns(&self, ns: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^^^^
...
38280 |     pub fn validate(&self) -> Vec<String> {
      |            ^^^^^^^^

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

warning: associated items `ok`, `error`, `is_done`, `is_error`, `has_errors`, and `passed` are never used
     --> bootstrap/src/compiler.rs:38305:12
      |
38304 | impl HirSimResult {
      | ----------------- associated items in this implementation
38305 |     pub fn ok(cycles: u32, coverage: u32) -> Self {
      |            ^^
...
38315 |     pub fn error(cycles: u32, errors: u32) -> Self {
      |            ^^^^^
...
38325 |     pub fn is_done(&self) -> bool {
      |            ^^^^^^^
...
38328 |     pub fn is_error(&self) -> bool {
      |            ^^^^^^^^
...
38331 |     pub fn has_errors(&self) -> bool {
      |            ^^^^^^^^^^
...
38334 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

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

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

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

warning: associated items `ok`, `error`, `ipc`, `cpi`, `gf16_throughput`, and `passed` are never used
     --> bootstrap/src/compiler.rs:39469:12
      |
39468 | impl PipeResult {
      | --------------- associated items in this implementation
39469 |     pub fn ok(cycles: u32, retired: u32, gf16: u32) -> Self {
      |            ^^
...
39479 |     pub fn error(cycles: u32, errors: u32) -> Self {
      |            ^^^^^
...
39489 |     pub fn ipc(&self) -> u32 {
      |            ^^^
...
39496 |     pub fn cpi(&self) -> u32 {
      |            ^^^
...
39503 |     pub fn gf16_throughput(&self, clock_mhz: u32) -> u32 {
      |            ^^^^^^^^^^^^^^^
...
39510 |     pub fn passed(&self) -> bool {
      |            ^^^^^^

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

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

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

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

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

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

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

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

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

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

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

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

warning: associated function `new` is never used
     --> bootstrap/src/compiler.rs:42917:12
      |
42916 | impl BuildMetrics {
      | ----------------- associated function in this implementation
42917 |     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:42932:12
      |
42932 | pub struct HirRegressionTracker {
      |            ^^^^^^^^^^^^^^^^^^^^

warning: associated items `new`, `record`, `latest`, `lut_regression`, `fmax_regression`, and `total_builds` are never used
     --> bootstrap/src/compiler.rs:42937:12
      |
42936 | impl HirRegressionTracker {
      | ------------------------- associated items in this implementation
42937 |     pub fn new() -> Self {
      |            ^^^
...
42940 |     pub fn record(&mut self, m: BuildMetrics) {
      |            ^^^^^^
...
42943 |     pub fn latest(&self) -> Option<&BuildMetrics> {
      |            ^^^^^^
...
42946 |     pub fn lut_regression(&self) -> bool {
      |            ^^^^^^^^^^^^^^
...
42954 |     pub fn fmax_regression(&self) -> bool {
      |            ^^^^^^^^^^^^^^^
...
42962 |     pub fn total_builds(&self) -> u32 {
      |            ^^^^^^^^^^^^

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

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

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

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

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

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

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

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

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

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

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

warning: struct `HirDepGraph` is never constructed
     --> bootstrap/src/compiler.rs:43139:12
      |
43139 | 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:43144:12
      |
43143 | impl HirDepGraph {
      | ---------------- associated items in this implementation
43144 |     pub fn new() -> Self {
      |            ^^^
...
43147 |     pub fn add_module(&mut self, name: &str, deps: &[&str]) {
      |            ^^^^^^^^^^
...
43165 |     pub fn topological_order(&self) -> Vec<&str> {
      |            ^^^^^^^^^^^^^^^^^
...
43170 |     pub fn has_cycle(&self) -> bool {
      |            ^^^^^^^^^
...
43187 |     pub fn leaf_modules(&self) -> Vec<&str> {
      |            ^^^^^^^^^^^^
...
43194 |     pub fn max_depth(&self) -> u32 {
      |            ^^^^^^^^^

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

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

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

warning: associated items `new`, `add_group`, `hit`, `total_coverage`, `is_complete`, and `uncovered` are never used
     --> bootstrap/src/compiler.rs:43231:12
      |
43230 | impl HirCoverageModel {
      | --------------------- associated items in this implementation
43231 |     pub fn new() -> Self {
      |            ^^^
...
43234 |     pub fn add_group(&mut self, name: &str, bins: u32) {
      |            ^^^^^^^^^
...
43237 |     pub fn hit(&mut self, group_name: &str) {
      |            ^^^
...
43242 |     pub fn total_coverage(&self) -> u32 {
      |            ^^^^^^^^^^^^^^
...
43252 |     pub fn is_complete(&self) -> bool {
      |            ^^^^^^^^^^^
...
43255 |     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 29.14s
[2026-10-07T15:03:41Z] exit 0 in 29.2 s
[2026-10-07T15:03:41Z] $ cargo build --release -p t27b --target aarch64-unknown-linux-gnu --target-dir /work/target
    Finished `release` profile [optimized] target(s) in 0.04s
[2026-10-07T15:03:42Z] exit 0 in 0.1 s
[2026-10-07T15:03:42Z] $ 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 4 timed-out file(s) one at a time
TESTFAIL    specs/fpga/testbench/bridge_tb.t27: FAIL test_single_transfer: assert failed at line 77 (assert)
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)
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/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)
TESTFAIL    specs/port/scripts/gen_w392.t27: FAIL build_w392_block_replacements: assert failed at line 159 (assert)
TESTFAIL    specs/port/tools/gft_generalize_demo.t27: FAIL softmax_picks_the_max_index: integer cast out of range at line 199 (i32 as u32)
TESTFAIL    specs/port/tools/verify_multitarget.t27: FAIL gen_pairs_is_deterministic: integer overflow at line 20 (* on u64)
MISMATCH    specs/port/trinity/src/tri/gen_canvas.t27: MISMATCH Canvas_init_basic: jit Ok(365116131360), interpreter Err(Fault("1-byte access at stack+0x21 is outside every live slot"))
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)
TESTFAIL    specs/port/trios/crates/trios-cli/src/config.t27: FAIL config_load_resolves_relative_paths: assert failed at line 56 (assert)
TESTFAIL    specs/port/trios/crates/trios-doctor/src/validate_bpb.t27: FAIL validate_bpb_fail: assert failed at line 40 (assert)
RETRIED     specs/tri/sort/selection_sort.t27: timeout, then pass on a sequential retry
RETRIED     specs/trinity/capabilities/agent.phi-loop.t27: timeout, then pass on a sequential retry
TESTFAIL    specs/ui/viewport.t27: FAIL rail_capacity_follows_the_css_budget: integer overflow at line 176 (* on u8)

t27b corpus: 1558 files under specs in 211.2 s
  supported, all tests pass : 853 (4978 tests, 682 invariants; 155 files have no test block)
  pass, 0 runtime asserts   : 151 (pass_vacuous: not counted above)
  supported, a test fails   : 16 (a test or an invariant)
  rejected (unsupported)    : 535
  front-end error           : 0
  JIT/interpreter mismatch  : 1 (t27b's JIT against t27b's interpreter, same IR)
  codegen limit             : 0
  timeout (60000 ms)        : 2
  crash                     : 0
  timed out, retried once   : 4 (2 still timeout; the rows above count the retry)
top rejecting constructs (first rejection per file; all occurrences):
     55   310  StructDecl(reference undeclared field type)
     45  1922  ExprCall(undeclared fn)
     41   122  type std.mem.Allocator
     39  1122  type mismatch
     38   123  ExprArrayLiteral(reference empty typed)
     24  1132  ExprArrayLiteral
     19   163  ExprIdentifier(undeclared)
     17   273  type (undeclared)
     16   211  ExprCall(method)
     14    53  StmtAssign
     13    78  StmtAssign(reference redeclares)
     12   151  ConstDecl
     11    67  ExprCall(@intCast)
     10    41  ExprArrayLiteral(text element)
      8    33  ExprIdentifier(E::V)
[2026-10-07T15:07:13Z] exit 4 in 211.4 s
[2026-10-07T15:07:14Z] reference cache: 0 hits, 1558 to run (t27c 7cff921d51fbd221b051fbf93d55b7d7f55874962a38708a8811af9eebfb9802 zig 0.16.0)
[2026-10-07T15:07:23Z] reference: 100 / 1558
[2026-10-07T15:07:29Z] reference: 200 / 1558
[2026-10-07T15:07:36Z] reference: 300 / 1558
[2026-10-07T15:07:45Z] reference: 400 / 1558
[2026-10-07T15:07:55Z] reference: 500 / 1558
[2026-10-07T15:08:03Z] reference: 600 / 1558
[2026-10-07T15:08:09Z] reference: 700 / 1558
[2026-10-07T15:08:16Z] reference: 800 / 1558
[2026-10-07T15:08:22Z] reference: 900 / 1558
[2026-10-07T15:08:28Z] reference: 1000 / 1558
[2026-10-07T15:08:36Z] reference: 1100 / 1558
[2026-10-07T15:08:42Z] reference: 1200 / 1558
[2026-10-07T15:08:49Z] reference: 1300 / 1558
[2026-10-07T15:08:58Z] reference: 1400 / 1558
[2026-10-07T15:09:06Z] reference: 1500 / 1558
[2026-10-07T15:12:33Z] $ cargo test --release -p t27b --target aarch64-unknown-linux-gnu --target-dir /work/target
    Finished `release` profile [optimized] target(s) in 0.06s
     Running tests/arraylit.rs (/work/target/aarch64-unknown-linux-gnu/release/deps/arraylit-fd046eb1e38fc9e7)

running 5 tests
test a_constant_returned_as_a_mutable_slice_is_refused ... ok
test indexing_an_address_literal_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.13s

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

running 10 tests
test a_timeout_is_retried_exactly_once_and_the_retry_decides ... ok
test a_file_both_sides_fail_agrees_only_if_the_same_tests_fail ... ok
test reads_per_test_verdicts_of_test_report ... ok
test greedy_breaks_a_zero_unlock_step_by_progress ... ok
test greedy_prefers_whole_files ... ok
test t27b_verdicts_skip_invariants_and_name_repeats_like_t27c ... ok
test reads_test_report_output ... 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.29s

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

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

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

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

running 5 tests
test encoders_match_clang ... ok
test disassembler_matches_otool_for_memory_forms ... ok
test bitmask_immediates_are_complete_and_exact ... ok
test disassembler_reads_back_the_subset ... 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.09s

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

running 3 tests
test unequal_comptime_lengths_are_refused ... ok
test capture_count_and_ranges_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.07s

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

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

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

     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.00s

     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 bounds_traps_with_index_and_length ... ok
test refuses_a_bool_load_of_another_byte ... ok
test copy_carries_written_bytes_only ... ok
test refuses_accesses_outside_the_slot ... ok
test refuses_reads_of_unwritten_bytes ... ok
test stores_and_loads_round_trip_little_endian ... ok
test refuses_stores_into_data_and_reads_past_a_blob ... ok

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

     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 old_and_damaged_rows_are_read_harmlessly ... ok
test the_key_closure_follows_use ... ok
test rows_carry_per_test_verdicts ... 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.10s

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

running 51 tests
test fn_declaration_rejections_are_precise ... ok
test assert_with_message_checks_the_condition_only ... ok
test parameter_discard_is_a_no_op ... ok
test optionals_the_reference_does_not_match_are_refused ... ok
test ignored_value_only_where_zig_never_looks ... ok
test char_literals_are_comptime_ints ... ok
test invariants_run_like_tests ... ok
test compile_assert_is_assert ... ok
test array_literals_typed_by_their_use_rejections ... ok
test bare_abs_rejections ... ok
test module_var_rejections_are_precise ... ok
test discarded_call_result_is_dropped_by_name ... ok
test array_rejections_are_precise ... ok
test f64_and_integer_stack_parameters_interleave ... ok
test module_vars_are_fresh_per_test ... ok
test bare_abs_is_the_zig_builtin ... ok
test partially_parsed_invariant_is_rejected ... ok
test parameter_discard_rejections ... ok
test module_level_optionals ... ok
test array_literals_typed_by_their_use ... ok
test struct_rejections_are_precise ... ok
test struct_field_initialised_from_a_scalar_call ... ok
test string_rejections_are_precise ... ok
test slice_rejections_are_precise ... ok
test type_alias_is_the_aliased_type ... ok
test for_over_a_range ... ok
test enum_rejections_are_precise ... ok
test optionals_match_the_reference ... ok
test arrays_literals_indexing_len_and_for ... ok
test postfix_optional_is_prefix_optional ... ok
test t27_array_spelling_rejections_are_precise ... ok
test if_expression_runs_only_the_taken_arm ... ok
test text_form_repeats ... ok
test type_alias_rejections ... ok
test shapes_the_reference_cannot_compile_are_refused ... ok
test try_statements_the_reference_does_not_compile_are_refused ... ok
test t27_array_spellings_repeats_and_slice_arguments ... ok
test top_level_statements_are_dropped_like_the_reference ... ok
test strings_literals_params_fields_and_equality ... ok
test undefined_stub_only_where_zig_never_looks ... ok
test struct_constants_with_str_fields ... ok
test structs_fields_pointers_and_results ... ok
test stack_parameters_reach_the_callee_in_order ... ok
test untyped_locals_follow_the_reference ... ok
test plain_enums_as_integer_tags ... ok
test slices_params_slicing_len_index_and_for ... ok
test tuples_as_the_reference_lowers_them ... ok
test try_statements_in_tests_match_the_reference ... ok
test switch_runs_only_the_taken_prong ... ok
test tuples_rejections ... ok
test large_frames_are_probed ... ok

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

     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 byte_buffers_compare_by_content ... ok
test std_mem_eql_and_index_of_null ... 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.13s

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

running 5 tests
test undefined_return_type_on_a_reached_fn_is_refused ... ok
test brace_invariant_non_predicates_are_refused ... ok
test undefined_return_type_on_an_unreached_fn ... ok
test tail_expressions_are_returned ... ok
test brace_invariant_predicates_are_asserted ... ok

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

     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.06s

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

running 3 tests
test a_local_written_only_deeper_is_refused ... ok
test a_write_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.10s

[2026-10-07T15:12:58Z] exit 0 in 25.0 s
[2026-10-07T15:12:58Z] $ /usr/bin/python3 /work/t27/scripts/tri_loop/t27b.py fuzz --cases 1000 --seed 1791385978 --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 1791385978 cases 1000 tests 2009: agree 1934 disagree 6 rejected 69 unjudged 0 (72.1 s)
  REFERENCE_BUG        6
  REFERENCE_REJECTED   69
  REFERENCE_BUG        --seed 1791385978 --first 20 --cases 1  f2_expect_trap: t27b fail FAIL f2_expect_trap: integer overflow at line 41 (* on u8) | reference pass 
  REFERENCE_REJECTED   --seed 1791385978 --first 108 --cases 1  f0_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 1791385978 --first 108 --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 1791385978 --first 203 --cases 1  f0_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 1791385978 --first 203 --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 1791385978 --first 203 --cases 1  f2_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 1791385978 --first 213 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:19: error: use of undeclared identifier 'v1'
  REFERENCE_REJECTED   --seed 1791385978 --first 219 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:35:20: error: use of undeclared identifier 'v1'
  REFERENCE_REJECTED   --seed 1791385978 --first 219 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:35:20: error: use of undeclared identifier 'v1'
  REFERENCE_REJECTED   --seed 1791385978 --first 269 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:20: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791385978 --first 269 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:20: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791385978 --first 269 --cases 1  f2_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:20: error: use of undeclared identifier 'v0'
  REFERENCE_BUG        --seed 1791385978 --first 273 --cases 1  f1_expect_trap: t27b fail FAIL f1_expect_trap: integer overflow at line 48 (* on u64) | reference pass 
  REFERENCE_REJECTED   --seed 1791385978 --first 333 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:62:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791385978 --first 333 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:62:19: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791385978 --first 343 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:25: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791385978 --first 343 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:19:25: error: use of undeclared identifier 'v0'
  REFERENCE_REJECTED   --seed 1791385978 --first 370 --cases 1  f0_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:51:32: error: expected ';' after statement
  REFERENCE_REJECTED   --seed 1791385978 --first 370 --cases 1  f1_expect_pass: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:51:32: error: expected ';' after statement
  REFERENCE_REJECTED   --seed 1791385978 --first 419 --cases 1  f0_expect_trap: t27b blocked FnDecl(reference CSE hoist) | reference blocked does not compile: spec.zig:48:32: error: expected ';' after statement
[2026-10-07T15:14:10Z] exit 1 in 72.2 s
[2026-10-07T15:14:10Z] $ /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-07T15:14:10Z] ratchet exit 1
[2026-10-07T15:14:10Z] published /runs/27493414dd605618090de4c824c31beee8ebce61.json: {"files": 1558, "reference_pass": 1072, "reference_lab_error": 0, "t27b_pass": 853, "t27b_pass_vacuous": 151, "t27b_pass_where_reference_passes": 852, "t27b_pass_vacuous_where_reference_passes": 150, "t27b_pass_where_reference_does_not": 1, "mismatch": 1, "jit_interp_mismatch": 1, "reference_compared": 1016, "reference_disagree": 0, "reference_disagree_tests": 0, "t27b_fail": 16, "crash": 0, "timeout": 2, "timeout_retried": 4}
