ludic/changes/json-write-file.md
Orkuncakilkaya 4499cedcb8 runtime: Json.write_file, and Json.encode through a kept buffer
The encoder appends into RtJsonState's buffer (grown only past the biggest document yet): ints and
Q16.16 fixeds written as digits in place, floats through string() and freed. Json.encode copies the
answer out once; Json.write_file hands the buffer to Fs.write_text (.tmp + rename) and keeps nothing.
json_saves.ludic: exact text, the file equals encode, parse round-trips, 1000 saves grow 0; clean
under MallocScribble. json_quote (the + builder) is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 15:32:36 +03:00

500 B

bump: minor type: feature Json.write_file(value, path) saves without keeping anything. It writes the text Json.encode would give straight to the file (through path.tmp and a rename), built in a buffer the runtime keeps, so a game that saves often holds nothing more for it. Json.encode itself is built the same way and makes only the string it returns: it used to join its text with +, keeping every piece and every number's text. examples/lang/json_saves.ludic: 1000 saves, 0 bytes.