check: populate fn-type params in the wwstage tinfo layer
The N_TFN arm stamped only size and return, so every fn tinfo carried a nil param chain and typeeq judged any two same-return fn types equal: tagged-union dedup collapsed (*fn(A) T | *fn(B) T) to a bare 8-byte pointer and match read the pointer word as a tag, falling through every arm for a real second-variant value. Build the tparam chain like cstage's N_TFN resolve (bare ... sets the FFI variadic flag; a Hare T... param wraps to []T with a per-param variadic bit that typeeq now compares, mirroring cstage type_eq). Graduates the four r76_typeeq_fn pins; the DATABYTEID_DIVERGED ledger is empty.
This commit is contained in:
7
Makefile
7
Makefile
@@ -581,10 +581,9 @@ DATABYTEID_EXPECTED_MIN = 911
|
||||
# Known cs!=ww divergences (loud over blind, the 989_lib_byteid DIVERGE
|
||||
# discipline): each entry must still build on both stages AND still differ.
|
||||
# When a compiler fix lands the entry fails demanding graduation out of
|
||||
# this list rather than silently widening coverage. Tracked with the #59
|
||||
# divergence family.
|
||||
DATABYTEID_DIVERGED = r76_typeeq_fn_diff_arity r76_typeeq_fn_diff_param_type \
|
||||
r76_typeeq_fn_io_vtable_shape r76_typeeq_fn_variadic_vs_fixed
|
||||
# this list rather than silently widening coverage. Currently empty: the
|
||||
# 2026-08 drain closed all eight original entries.
|
||||
DATABYTEID_DIVERGED =
|
||||
$(if $(DATABYTEID_FILES),,$(error test-byteid: empty data corpus))
|
||||
test-data-byteid: $(BIN)/ww $(BIN)/w6c $(BIN)/w6c_ww
|
||||
@work=$$(mktemp -d "$(CURDIR)/$(DATABYTEID_DIR).XXXXXX") || exit 1; \
|
||||
|
||||
Reference in New Issue
Block a user