stof64/stof32 (f64|f32 | invalid | overflow) via Eisel-Lemire fast-path (powers_of_ten[596][2]u64 + eisel_lemire 128-bit multiply) + decimal slow-path fallback (decimal.ww, fold-3). 16 fns + faithful powers_of_ten (byte-identical to Hare). u128 via pure-u64 64×64→128 (ftos_ryu.ha). Consumes &math.f64info (γ-cleanup), tagged-float-return (PREREQ-2 #157), 2D double-index (PREREQ-1 #156). 13 documented spelling-divergences (rule-9, each cites stof.ha): #155 (po10 double-index + per-field struct-copy), #161 (compound-assign explicit form), #144 (-0.0 via 1u64<<63), #158, #138, test-only #143/parsef64. Test 909 (DEC+hex+NaN/Inf/invalid/overflow, bit-exact, cstage ww run). Make test 185/185 incl 990-997 byte-id + combined_ww_fresh. Makefile: stof.ww added to w6c_ww/wwdump_ww deps (freshness, fold-3 precedent). Drew's strconv 5-fold plan 4/5. Followup #162 (wwstage lexer parsef64 1-ULP — could adopt stof64).
38 KiB
38 KiB