mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 01:59:19 +02:00
- Reader is buffer-based and streaming: the twin is read once and parsed by pointer, entries decoded on demand (no per-byte stream, no vector-of-entry materialisation), string tokens served as views into the buffer. - Format v5 is markedly smaller without compression: string interning with varint indices, entry type packed into the head varint, integers as zig-zag varint and fractional numbers as f32 (f64 only when needed). Tokens are stored in original case with a quoted flag and lower-cased per consumer at replay, so capture is grammar-independent. - Writer encodes entries incrementally into a compact buffer instead of holding a struct per token, keeping memory bounded when baking huge files in parallel. - New headless bake mode (-bake) precompiles a scenario and all its includes into twins on a thread pool, with no window/renderer/scene; each file is tokenised in isolation and baked exactly once. - Fix stack overflow on files with long runs of consecutive includes by handling include directives iteratively instead of recursively (also hardens the normal text load). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.0 KiB
4.0 KiB