Repository navigation
v1.0.1
Faster TSV parsing, identical output. Libraries keep DASMIG_CORE_REQUIRE(1, 0); pick it up with tools/sync-core.sh.
Changed
tsvparses plain decimals through an exact fast path (Clinger's): when the significant digits form an integer up to 2^53 and the power of ten is within ±22, one IEEE multiply or divide gives the correctly rounded double. Anything else, and platforms with excess precision (FLT_EVAL_METHOD != 0), use the general parser as before.- Why: Emscripten's libc++ has no floating-point
from_chars, so every cell went throughistringstreamand musl's softwarelong doublestrtod. That was about 45% of the persona WebAssembly module's startup, which drops from 1.4 s to 0.35 s in Node 22.
Output is identical
- A new test compares the parser with
strtodbit for bit on edge cases and 50,000 random decimals. - All 4.94 million numeric cells in the nine libraries' data (both tiers) parse to the same bits; 99.99% take the fast path.
- The persona module built with this core gives the same 850 personas and data hash.