9d383288d2dcfede923d1fe702695a914319b3bb
tinfocachelookup walked a flat prepend-only association list on every cache miss -> O(N) scan x O(N) calls = O(N2) (91% of all wwstage instructions on a 5k-line input; w6c_ww ~265x slower than its C twin). Replace the single list head with a node-ptr hash index, mirroring sym.ww scope.buckets (rule-12): NBUCKETS_TINFO=8192 power-of-two buckets, ptr hashed via (key>>4)&(N-1) (>>4 drops the always-zero aligned low bits so buckets don't cluster), cnext now chains within a bucket. First-match-in-bucket preserves the old most-recent-bind-wins order -> identical *tinfo per node -> byte-identical asm. cstage (cmd/wcc C) has no such cache, so this is wwstage-internal: no emitted-asm change, no cstage-symmetry obligation. Verified byte-identical output (baseline vs new binary, same 32k-line input) and 52.6s -> 0.54s (~97x). combined.ww regenerated for w6c + wwdump (only tools embedding typ.ww). test-unit (235) + smoke green.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%