!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

423 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.140 Servers

Load older messages


SenderMessageTime
20 Mar 2026
@emilazy:matrix.orgemilyany complete of builtin parser implementation like that should most likely come with a period of running both of them and aborting on any divergence11:24:03
@emilazy:matrix.orgemily(how many hours do you have to learn about XML interoperability issues?)11:25:26
@emilazy:matrix.orgemily(it's a miracle Nix at least only has it as an output format)11:25:40
@emilazy:matrix.orgemily(and I like XML!)11:25:46
@emilazy:matrix.orgemilyI really don't think so. the JSON iceberg is not the Nix iceberg11:27:26
@emilazy:matrix.orgemilya warning about input you don't control is not actionable or going to go anywhere, unless it's a truly unfixable interoperability problem11:28:29
@emilazy:matrix.orgemilyit's unlikely JSON documents people produce solely for consumption in Nix will have duplicate keys because most language APIs won't do that11:29:07
@emilazy:matrix.orgemilyLix accepting escaped NUL codepoints in JSON that correctly-written Nixpkgs library functions violate their contract on is far more likely to cause interoperability issues than duplicate keys tbh11:30:11
@emilazy:matrix.orgemily (and that's a case where there actually is current and historical divergence, so a warning would be much more justifiable there...) 11:30:58
@emilazy:matrix.orgemilyinteresting to see simd-json diverge, though it also has several correctness issues open on GitHub, some from years ago 😅11:34:00
@emilazy:matrix.orgemilywonder if they somehow get better perf from that result or something11:34:38
@emilazy:matrix.orgemilyare you sure it's not storing both values in a parse tree type form and the lookup is just terminating on the first one actually?11:35:18
@coca162:matrix.orgCocaMy hunch was that simd-json can get the earliest acceptable value and then stop parsing, at least with the tape Value, but I would have to see11:35:49
@emilazy:matrix.orgemilyoh I guess it's the same serde type(?)11:36:05
@emilazy:matrix.orgemilyah I see11:36:08
@coca162:matrix.orgCocaits not the same serde type to be clear tho11:36:30
@emilazy:matrix.orgemilyyeah if it's looking up from a string rather than parsing into a full DOM that makes sense11:36:31
@emilazy:matrix.orgemilyalso means it'll happily eat up a ton of invalid documents...11:36:43
@piegames:flausch.socialpiegamesUnfortunately, this is not possible because of impurities, I was told11:36:57
@piegames:flausch.socialpiegamesI already had the idea of having the whole bytecode interpreter run in sync with the old interpreter for verification purposes, and unfortunately that's not possible11:37:26
@emilazy:matrix.orgemilyI'm not sure what you mean11:37:31
@emilazy:matrix.orgemilywell for full interpretation sure11:37:42
@emilazy:matrix.orgemilynot for JSON parsing11:38:18
@emilazy:matrix.orgemilyno existing thunks can go into fromJSON results11:38:51
@piegames:flausch.socialpiegamesah, you meant only in the JSON builtins, not all builtins11:39:18
@emilazy:matrix.orgemilyfor serialization it's a bit more involved but not unfixably especially considering you'll hit the same thunks11:39:30
@piegames:flausch.socialpiegamesmight be feasible then, yes11:39:22
@emilazy:matrix.orgemilywell, for another format parser/serializer really (but I guess JSON, TOML, ATerm, and arguably XML are the only really load-bearing ones there)11:41:09
@emilazy:matrix.orgemily * 11:41:15
@coca162:matrix.orgCocaborrowed and owned Values are parsed into DOMs, tape doesn't seem to end parsing early but instead goes over the (already partially parsed) mutable input and ends when it finds one. All Values are consistent with returning the first value.11:45:44

Show newer messages


Back to Room ListRoom Version: 10