Skip to content
44. Changes 36 and 37 in the VMs (Instruction Set 2)
- The VMs now compare
text(a) == text(b) without boxing the strings and build no intermediate lists for a concat
of list, map and concat calls, through six new expression instructions (ETEXTCHK, ETEXTEQ,
ELISTBEGIN, ELISTPUSH, EMAPPUSH, ELISTEND; see bytecode.md). The instruction-set version
of compiled files is now 2.
- Effect (min of 20 interleaved runs, Apple M3 Max, recursive VM, during a busy day): XML 19.2k → 1.2k allocations,
JSON 22.0 → 20.5 MB and CSV 16.2 → 14.6 MB per parse; time within ±3% (CSV and XML 2% faster, JSON 3% slower).