diff --git a/.github/workflows/gft-verilog-kat.yml b/.github/workflows/gft-verilog-kat.yml index d619d12f..4eb3cae7 100644 --- a/.github/workflows/gft-verilog-kat.yml +++ b/.github/workflows/gft-verilog-kat.yml @@ -16,13 +16,15 @@ on: # too, so a codegen or spec regression on the hardware side cannot land # silently. Requires t27c >= gHashTag/t27#1885 (assert lowering). # -# Sweep result (2026-08-09 wave 49): 105 specs simulate clean; every spec in the -# corpus compiles under Icarus (0 compile-error specs). Only 2 runtime -# divergences remain out of the gate: link_quality_monitor (Verilog does an -# unsigned comparison where a signed i8 operand meets an unsigned const -- -# needs signed-lowering) and rti_security (a spec-side arithmetic assertion bug -# that also fails under Rust/Zig/C, not a codegen issue). The batch of 6 joining -# here (congestion_control, flow_control, network_simulator, +# Sweep result (2026-08-09 wave 50): 106 specs simulate clean; every spec in the +# corpus compiles under Icarus (0 compile-error specs). Only 1 spec remains out +# of the gate: rti_security -- and that is a spec-side arithmetic assertion bug +# (3*100+10*10+200 asserted == 700, should be 600) that also fails under +# Rust/Zig/C, NOT a codegen issue. link_quality_monitor joins here, unlocked by +# t27#1994 (signed-aware ordered comparison): Verilog was doing an unsigned +# comparison where a signed i8 operand met an unsigned const (-16 read as 240); +# it now compares in the signed domain with C-promotion semantics. The batch of +# 6 in wave 49 (congestion_control, flow_control, network_simulator, # production_scenarios, quarantine_manager, traffic_animator) was unlocked by # t27#1991: test-block call temps are re-materialized after a rebinding, so the # `st = op(st)` repeated-step pattern no longer reused a stale CSE snapshot. @@ -73,7 +75,7 @@ jobs: run: | T27C=../t27/target/release/t27c STATUS=0 - for spec in tri_gft_add tri_gft_sub tri_gft_ladder tri_gft_arith tri_a2a tri_a2a_card tri_a2a_wire tri_challenge tri_compute_account tri_compute_bitnet tri_compute_bond tri_compute_challenge tri_compute_gfvalid tri_compute_optimistic tri_compute_payout tri_compute_pool tri_compute_receipt tri_compute_reputation tri_compute_safety tri_compute_settle tri_depin tri_fec tri_ilv tri_ledger tri_merkle tri_node_identity tri_receipt_verify tri_settle tri_sha256 tri_slash adaptive_retry area_optimization compression_engine crypto_frame discovery docs_generator etx frame_buffer gf16_format hardware_validation link_statistics modem_frame network_analytics network_metrics packet_queue performance_benchmarks performance_profiler routing_etx rti_alert self_healing test_framework test_validator timer timing_closure topology_visualizer transport_tx_fsm twr_timestamp video_bridge wire access_control adaptive_routing energy_aware_routing failure_predictor health_monitoring key_management multipath_routing network_coding redundancy_management trust_manager bandwidth_allocator byte_utils crc16 fault_detection pattern_predictor power_monitoring production_deployment resource_scheduler load_predictor anomaly_detector auto_config cache_management health_dashboard local_processing network_orchestrator integration_framework api_documenter multipath_router olsr_routing fpga_synthesis_report hello integration_tests lite_crypto mesh_routing packet_loss_injection mesh_node_sim mesh_protocol_stack cross_layer_optimizer m3_multihop swarm_coordinator congestion_control flow_control network_simulator production_scenarios quarantine_manager traffic_animator; do + for spec in tri_gft_add tri_gft_sub tri_gft_ladder tri_gft_arith tri_a2a tri_a2a_card tri_a2a_wire tri_challenge tri_compute_account tri_compute_bitnet tri_compute_bond tri_compute_challenge tri_compute_gfvalid tri_compute_optimistic tri_compute_payout tri_compute_pool tri_compute_receipt tri_compute_reputation tri_compute_safety tri_compute_settle tri_depin tri_fec tri_ilv tri_ledger tri_merkle tri_node_identity tri_receipt_verify tri_settle tri_sha256 tri_slash adaptive_retry area_optimization compression_engine crypto_frame discovery docs_generator etx frame_buffer gf16_format hardware_validation link_statistics modem_frame network_analytics network_metrics packet_queue performance_benchmarks performance_profiler routing_etx rti_alert self_healing test_framework test_validator timer timing_closure topology_visualizer transport_tx_fsm twr_timestamp video_bridge wire access_control adaptive_routing energy_aware_routing failure_predictor health_monitoring key_management multipath_routing network_coding redundancy_management trust_manager bandwidth_allocator byte_utils crc16 fault_detection pattern_predictor power_monitoring production_deployment resource_scheduler load_predictor anomaly_detector auto_config cache_management health_dashboard local_processing network_orchestrator integration_framework api_documenter multipath_router olsr_routing fpga_synthesis_report hello integration_tests lite_crypto mesh_routing packet_loss_injection mesh_node_sim mesh_protocol_stack cross_layer_optimizer m3_multihop swarm_coordinator congestion_control flow_control network_simulator production_scenarios quarantine_manager traffic_animator link_quality_monitor; do echo "== ${spec}" if ! $T27C icarus-simulate specs/${spec}.t27 | tee /tmp/${spec}.simlog; then echo "::error file=specs/${spec}.t27::icarus-simulate failed for specs/${spec}.t27"