!9IQChSjwSHXPPWTa:lix.systems

Lix

1123 Members
Lix user channel. Feel free to discuss on-topic issues here and give each other help. For matrix.to links to the rest of the Lix channels, see: https://wiki.lix.systems/books/lix-organisation/page/matrix-rooms305 Servers

Load older messages


SenderMessageTime
23 Feb 2026
@piegames:flausch.socialpiegamesThings are likely to break even within one implementation as soon as memoization hits23:48:21
@sternenseemann:systemli.orgsternibesides, language changes may just as well change evaluator behavior where the difference is not failure / success, but actual results23:49:36
@piegames:flausch.socialpiegamesTo be clear I'm fine with that, as long as functions that may result in unsoundness are marked as unsafe in a meaningful way (preferably beyond just convention). Maybe also provenance tracking, that would be awesome but also likely expensive (I haven't looked much into string context as prior art yet)23:49:50
@sternenseemann:systemli.orgsternithere it would help correctness overall if the expression author had the chance to mitigate this by looking at feature flags23:49:55
@piegames:flausch.socialpiegames
In reply to @sternenseemann:systemli.org
besides, language changes may just as well change evaluator behavior where the difference is not failure / success, but actual results
No, this is not supposed to happen without some hard language versioning
23:50:37
@piegames:flausch.socialpiegames(It admittedly does happen though, but on the evaluator side we've been trying really hard to avoid it)23:51:02
@raitobezarius:matrix.orgraitobezarius
In reply to @piegames:flausch.social
To be clear I'm fine with that, as long as functions that may result in unsoundness are marked as unsafe in a meaningful way (preferably beyond just convention). Maybe also provenance tracking, that would be awesome but also likely expensive (I haven't looked much into string context as prior art yet)
Once bytecode is there :>
23:51:04
@raitobezarius:matrix.orgraitobezariusThe largest lang change with value difference is the recent ptr equality stuff23:53:09
@raitobezarius:matrix.orgraitobezariusEmpirically over many expressions, it makes more evaluation go well due to the maximal sharing while making more "logical" ptr equalities coherent23:54:03
@sternenseemann:systemli.orgsternii actually need to check whether that killed any test cases i think i wrote pretty comprehensive (albeit simple) ones for tvix23:54:29
@raitobezarius:matrix.orgraitobezariusInterested in the result23:55:13
@piegames:flausch.socialpiegames
In reply to @piegames:flausch.social
To be clear I'm fine with that, as long as functions that may result in unsoundness are marked as unsafe in a meaningful way (preferably beyond just convention). Maybe also provenance tracking, that would be awesome but also likely expensive (I haven't looked much into string context as prior art yet)
Also to get there, we need to finally formally specify what the evaluation model even is and what purity guarantees it even provides etc.
23:56:39
@piegames:flausch.socialpiegames* Also to get there, we need to finally formally specify what the evaluation model even is and what purity/soundness guarantees it even provides etc.23:56:54
@raitobezarius:matrix.orgraitobezarius.oO(banning readFile to /proc)23:59:58
24 Feb 2026
@sternenseemann:systemli.orgsterniyou know I always use /proc/sys/kernel/random/uuid for my random numbers00:14:27
@sternenseemann:systemli.orgsterniokay already Lix 2.93 hits thos annoying argument strictness changes in 2.18 I'll need to look at that again00:15:23
@sternenseemann:systemli.orgsterniLix 2.94 "fails" https://code.tvl.fyi/tree/tvix/eval/src/tests/tvix_tests/notyetpassing/eval-okay-non-identifier-pointer-inequality.nix https://code.tvl.fyi/tree/tvix/eval/src/tests/tvix_tests/eval-okay-value-pointer-equality.nix00:20:16
@sternenseemann:systemli.orgsternilook like intentional changes, but you may want to double check00:20:32
@raitobezarius:matrix.orgraitobezariusI will double check but yeah looks good to me00:24:49
@sternenseemann:systemli.orgsterni i think someone should rush to introduce a dependency on pointer equality on thunks that contain a throw in nixpkgs 00:38:37
@sternenseemann:systemli.orgsternihow has stdenv not managed that yet00:38:43
@sternenseemann:systemli.orgsterni raitobezarius: ofc not everything changed, see https://buildkite.com/tvl/depot/builds/41104#019c8d14-b993-4f9b-a53c-4757516eea43, a bit annoying to weed through what exactly changed (ignore the non pointer equality ones) 00:40:56
@tiktorchic18:matrix.orgTikTorchic18 joined the room.03:47:24
@raitobezarius:matrix.orgraitobezarius
2026-02-24 00:38:56 UTC
--- tvix_tests/eval-okay-value-pointer-equality.out     2026-02-24 00:38:56.777431331 +0000
2026-02-24 00:38:56 UTC
+++ tvix_tests/eval-okay-value-pointer-equality.exp     1970-01-01 00:00:01.000000000 +0000
2026-02-24 00:38:56 UTC
@@ -1 +1 @@
2026-02-24 00:38:56 UTC
-[ true true true true true true false true true true true true true true true true false false ]
2026-02-24 00:38:56 UTC
+[ true true true true false false false true true true true true true true true true false false ]

so, 2 things that were false became true which is coherent with our intended outcome

09:14:31
@raitobezarius:matrix.orgraitobezarius
2026-02-24 00:38:56 UTC
--- tvix_tests/notyetpassing/eval-okay-non-identifier-pointer-inequality.out    2026-02-24 00:38:56.973429050 +0000
2026-02-24 00:38:56 UTC
+++ tvix_tests/notyetpassing/eval-okay-non-identifier-pointer-inequality.exp    1970-01-01 00:00:01.000000000 +0000
2026-02-24 00:38:56 UTC
@@ -1 +1 @@
2026-02-24 00:38:56 UTC
-[ true true true true true true true true ]
2026-02-24 00:38:56 UTC
+[ false false false false false true false false ]

same here

09:14:46
@raitobezarius:matrix.orgraitobezariuseval-okay-non-identifier was exploiting implementation details about how Nix was doing copies09:15:19
@raitobezarius:matrix.orgraitobezariusnow Lix performs true pointer equality09:15:27
@raitobezarius:matrix.orgraitobezariusit already managed that in the complicated cross contexts :p09:16:28
@raitobezarius:matrix.orgraitobezariusjust that people did not realize this in years09:16:34
@neobrain:matrix.orgneobrainwhat exactly is nix3? I keep seeing references to it but it's explained nowhere09:57:28

Show newer messages


Back to Room ListRoom Version: 10