!9IQChSjwSHXPPWTa:lix.systems

Lix

1126 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-rooms307 Servers

Load older messages


SenderMessageTime
23 Feb 2026
@evie:matrix.group-meowing.roEvie (they/she)Where can I read more about the "move flakes out of core" initiative/plan?20:56:39
@raitobezarius:matrix.orgraitobezariuswhat info are you looking for?21:15:16
@raitobezarius:matrix.orgraitobezarius we have https://wiki.lix.systems/books/development/page/flakes-feature-freeze mostly — but it doesn't explain the plan 21:15:36
@mangoiv.:matrix.orgMangoIVHi guys, I checked the issue tracker and there was no open issue about lix (nix build) not recognising derivations that upstream nix and the lix repl (+:b) - is that a known issue? I also know that I did build this derivation with lix at some point without changing it so I think this is a regression. 22:55:20
@raitobezarius:matrix.orgraitobezarius
In reply to @mangoiv.:matrix.org
Hi guys, I checked the issue tracker and there was no open issue about lix (nix build) not recognising derivations that upstream nix and the lix repl (+:b) - is that a known issue? I also know that I did build this derivation with lix at some point without changing it so I think this is a regression.
Surprising, do you have a reproducer?
23:15:09
@sternenseemann:systemli.orgsternihm, I don't think the frozen nixVersion in Lix is so good either since we are doing breaking language changes after all.23:24:46
@sternenseemann:systemli.orgsterniit is not possible, for example to write code that deals with NUL bytes correctly since there is no way to check for Lix 2.94 other than crashing the evaluator if <= 2.9323:25:55
@mangoiv.:matrix.orgMangoIVI do have one but I don't know if you're gonna enjoy that... ^^ 23:30:51
@raitobezarius:matrix.orgraitobezarius
In reply to @sternenseemann:systemli.org
it is not possible, for example to write code that deals with NUL bytes correctly since there is no way to check for Lix 2.94 other than crashing the evaluator if <= 2.93
There's been discussions to move to feature based testing aka builtins.features.nulbytes or something
23:33:19
@mangoiv.:matrix.orgMangoIVafter comitting it does not reproduce anymore 23:33:35
@mangoiv.:matrix.orgMangoIVhorrible 23:33:37
@raitobezarius:matrix.orgraitobezarius
In reply to @mangoiv.:matrix.org
I do have one but I don't know if you're gonna enjoy that... ^^
Do tell
23:33:47
@mangoiv.:matrix.orgMangoIVno I mean after comitting it doesn't reproduce anymore so I was lying but I was not expecting that 23:34:09
@mangoiv.:matrix.orgMangoIVI do have eye witnesses though 23:34:14
@piegames:flausch.socialpiegames
In reply to @sternenseemann:systemli.org
it is not possible, for example to write code that deals with NUL bytes correctly since there is no way to check for Lix 2.94 other than crashing the evaluator if <= 2.93
The problem is, what would an in-lang check even do in such a case? Jist fail more gracefully?
23:35:07
@lt1379:matrix.orgLuncommitting did some crlf -> lf munging?23:35:14
@mangoiv.:matrix.orgMangoIV if you still want the thing that did reproduce it before comitting
github:mangoiv/haskell-language-server/90c6f790c44c862f1b9726a9277c71f3c61b1ee4
23:35:33
@piegames:flausch.socialpiegames
In reply to @raitobezarius:matrix.org
There's been discussions to move to feature based testing aka builtins.features.nulbytes or something
That would be inherently unsafe. Really, any such checks should be moved out of language ASAP
23:36:02
@raitobezarius:matrix.orgraitobezarius
In reply to @piegames:flausch.social
That would be inherently unsafe. Really, any such checks should be moved out of language ASAP
Could you reiterate why? I can see why some feature testing is dangerous but throwing an error in absence of NUL bytes support seems fine to me
23:39:33
@raitobezarius:matrix.orgraitobezariusCrashing as an alternative doesn't seem better to me as an error message23:39:53
@piegames:flausch.socialpiegamesYes but ideally that checking amd error message should be done outside of the Nix code, before even attempting to evaluate it23:40:53
@raitobezarius:matrix.orgraitobezariusArguably we don't spend too much time trying to cater to decades of brokenness and we assume that many features are available without feature detection23:40:53
@sternenseemann:systemli.orgsterni piegames: well if I could properly check whether NUL bytes can be in strings I could actually process 100% of all valid strings in all Nix impls https://cl.tvl.fyi/c/depot/+/14011/1/users/sterni/nix/char/default.nix 23:41:12
@sternenseemann:systemli.orgsterniand this is already a problem with much more mundane things, e.g. if you want to check whether a string doesn't have a NUL byte in it, you can't actually implement that easily23:42:11
@sternenseemann:systemli.orgsternisince you need to have a string that contains a NUL byte23:42:23
@raitobezarius:matrix.orgraitobezarius
In reply to @sternenseemann:systemli.org
piegames: well if I could properly check whether NUL bytes can be in strings I could actually process 100% of all valid strings in all Nix impls https://cl.tvl.fyi/c/depot/+/14011/1/users/sterni/nix/char/default.nix
But then arguably the proposal here is that you have a test runner that passes the right charset path depending on Lix actual version
23:42:51
@raitobezarius:matrix.orgraitobezariusIdk23:42:58
@raitobezarius:matrix.orgraitobezarius
In reply to @sternenseemann:systemli.org
since you need to have a string that contains a NUL byte
The difficulty of smuggling NUL byte atm is a feature imho because I'd rather see us going slowly on this rather than open the flood gates of binary manipulations in Nixlang
23:44:10
@piegames:flausch.socialpiegames
In reply to @raitobezarius:matrix.org
Could you reiterate why? I can see why some feature testing is dangerous but throwing an error in absence of NUL bytes support seems fine to me

Given the information about what features an interpreter implements, there are exactly two allowed things which may be done with:

  1. Error out
  2. Provide a semantically equivalent polyfill

Upholding that invariant is up to the nix code and failing to violate it may result in unsoundness, therefore functions providing this should be deemed "unsafe"

23:44:26
@raitobezarius:matrix.orgraitobezariusI am not going to stand against making Nix expressions less prone to evaluation path divergence due to weird witnesses we would leave in the language23:47:05

Show newer messages


Back to Room ListRoom Version: 10