Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions .github/workflows/gft-verilog-kat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,17 @@ 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 48): 99 specs simulate clean; every spec in the
# corpus compiles under Icarus (0 compile-error specs). The 8 out of the gate
# are runtime divergences only. After the array
# 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,
# 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.
# After the array
# chain (t27#1952/#1953), the SystemVerilog keyword class fell (t27#1957/#1958):
# spec identifiers named bit/byte/priority/sequence/table reached Icarus as
# keywords via raw declaration and part-select emissions. Remaining out: 31 compile-error specs (typed
Expand Down Expand Up @@ -65,7 +73,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; 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; 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"
Expand Down
Loading