From fe414dd8fc8e4640857c863e7c3fc63ccb8cffb6 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Mon, 19 Oct 2026 15:44:05 +0700 Subject: [PATCH 1/2] compiler.rs: delete the tests that call the seven items #10896 removed, move the seal (Closes #10957) #10896 dropped Node::with_child, Parser::check_peek, icarus_lowerability_reason, align_address, reset_end_cycle, path_delay and worst_path_delay to keep the foreign-line budget net-negative, but eight test lines still called five of them, so the unit tests no longer compiled. Delete those tests; nothing else changes. Co-Authored-By: Claude Sonnet 5.5 --- bootstrap/src/compiler.rs | 41 ------------------------------------ bootstrap/stage0/FROZEN_HASH | 2 +- 2 files changed, 1 insertion(+), 42 deletions(-) diff --git a/bootstrap/src/compiler.rs b/bootstrap/src/compiler.rs index 0c80f341c0..c02acf4d16 100644 --- a/bootstrap/src/compiler.rs +++ b/bootstrap/src/compiler.rs @@ -38460,21 +38460,6 @@ mod tests_hir_assembler { assert_eq!(sec.end(), 128); } - #[test] - fn test_align_address_zero() { - assert_eq!(align_address(5, 4), 8); - } - - #[test] - fn test_align_address_already_aligned() { - assert_eq!(align_address(8, 4), 8); - } - - #[test] - fn test_align_address_zero_alignment() { - assert_eq!(align_address(5, 0), 5); - } - #[test] fn test_instr_count() { let cfg = AsmConfig::new("test"); @@ -38686,7 +38671,6 @@ mod tests_hir_testbench { assert!(cfg.active_low); assert_eq!(cfg.delay_cycles, 5); assert_eq!(cfg.duration_cycles, 10); - assert_eq!(cfg.reset_end_cycle(), 15); } #[test] @@ -40072,16 +40056,6 @@ mod tests_hir_timing { assert!(!r.passed()); } - #[test] - fn test_path_delay() { - let arcs = vec![ - TimingArc::comb("a", "b", 100), - TimingArc::comb("b", "c", 200), - TimingArc::comb("c", "d", 300), - ]; - assert_eq!(path_delay(&arcs), 600); - } - #[test] fn test_slack_positive() { assert_eq!(TimingModel::slack(5000, 10000), 5000); @@ -40112,21 +40086,6 @@ mod tests_hir_timing { assert_eq!(TimingModel::est_reg_to_reg_delay(3), 800); } - #[test] - fn test_worst_path() { - let paths = vec![ - TimingPath::new("a", "b", 500, 0), - TimingPath::new("c", "d", 1200, 0), - TimingPath::new("e", "f", 800, 0), - ]; - assert_eq!(worst_path_delay(&paths), 1200); - } - - #[test] - fn test_worst_path_empty() { - assert_eq!(worst_path_delay(&[]), 0); - } - #[test] fn test_validate_constraint_ok() { let c = TimingConstraint::from_period("clk", 10000); diff --git a/bootstrap/stage0/FROZEN_HASH b/bootstrap/stage0/FROZEN_HASH index 3ec2801889..0ebcfd06f9 100644 --- a/bootstrap/stage0/FROZEN_HASH +++ b/bootstrap/stage0/FROZEN_HASH @@ -1 +1 @@ -509db03c8f4d1f846c0a15e07208b0564886c65e2c0eeb4b5c013e4533fe1f6c bootstrap/src/compiler.rs +8c44c8a1ee525d0d289d7a3e54195a13c65dc6bb81e77c6f852a409e631b7dc2 bootstrap/src/compiler.rs From 382265a92223b3f69fb7355068c9cadf27d5922f Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Mon, 19 Oct 2026 15:59:34 +0700 Subject: [PATCH 2/2] zig emit: a spec that defines its own thread_spawn/thread_join/thread_cores does not get the thread runtime appended (Closes #10957) #10896 appended the thread runtime to any Zig output that calls thread_spawn, thread_join or thread_cores, so compiler/runtime/runtime.t27 (which defines and calls its own thread_spawn) changed its gen_hash_zig and the triruntime and runtime_triruntime seals drifted (coverage red). Guard the detection with declared_fns, as the call rewrite already is. One line changed, none added. Co-Authored-By: Claude Sonnet 5.5 --- bootstrap/src/compiler.rs | 2 +- bootstrap/stage0/FROZEN_HASH | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap/src/compiler.rs b/bootstrap/src/compiler.rs index c02acf4d16..d32a09ad56 100644 --- a/bootstrap/src/compiler.rs +++ b/bootstrap/src/compiler.rs @@ -8262,7 +8262,7 @@ impl Codegen { self.write(HOST_IO_ZIG); } let mut threads = false; - Self::visit_calls(&ast.children, &mut |c| threads |= matches!(c.name.as_str(), "thread_spawn" | "thread_join" | "thread_cores")); + Self::visit_calls(&ast.children, &mut |c| threads |= matches!(c.name.as_str(), "thread_spawn" | "thread_join" | "thread_cores") && !self.declared_fns.contains(&c.name)); if threads { self.write(THREAD_ZIG); } diff --git a/bootstrap/stage0/FROZEN_HASH b/bootstrap/stage0/FROZEN_HASH index 0ebcfd06f9..d3ec84d7c6 100644 --- a/bootstrap/stage0/FROZEN_HASH +++ b/bootstrap/stage0/FROZEN_HASH @@ -1 +1 @@ -8c44c8a1ee525d0d289d7a3e54195a13c65dc6bb81e77c6f852a409e631b7dc2 bootstrap/src/compiler.rs +2d301cdb4a589b86db25a098d0b95925132efb53e51b795e6cbee6e7cbcd0d21 bootstrap/src/compiler.rs