!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

424 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
23 Mar 2026
@raitobezarius:matrix.orgraitobezariusbut i'd appreciate reading an overall coherent set of opinions if you find the time to do it ;-)22:50:17
@raitobezarius:matrix.orgraitobezarius (not saying you don't provide a coherent set of opinions atm, but more like, this is what i would like to read from a different perspective) 22:50:41
@piegames:flausch.socialpiegames
In reply to @blokyk:matrix.org
i do agree with that tbf, and i think the FOD error is a good example of something that doesn't make sense to make catchable; but i don't think all errors should be that way. while in general, things related to bare derivations and building probably aren't gonna be the most useful to catch, the fact you can't run/use any nix expression inside your code without the fear that it might fatally throw is a little frustrating imo. if we did have a Result type it'd obviously be preferable to exceptions, but for the foreseeable future we won't, so i do think it's useful to be able to tell if e.g. some packages fail to eval in nixpkgs, or a property of a object we computed actually throws, etc
Basically at the core is the following problem: any fallibility which may depend on impure outside context propagates that impurity into the language if caught. I agree that not being able to catch runtime type errors is annoying though, and this may be fixable, but no guarantees (also a pproper type system would instant fix this entire class of issues)
22:51:03
@blokyk:matrix.orgzoë (she/her)

(i am somewhat reminded of the line i saw in last month's core team meting:

We wonder if we should have more boring people in our project
and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, obviously no problem with that, i am a pretty boring person in general) x)

22:51:27
@blokyk:matrix.orgzoë (she/her) *

(i am somewhat reminded of the line i saw in last month's core team meting:

We wonder if we should have more boring people in our project

and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, obviously no problem with that, i am a pretty boring person in general) x)

22:52:06
@blokyk:matrix.orgzoë (she/her)

also a proper type system would instant fix this entire class of issues

yeah, nix's lack of a type system is probably my biggest gripe with it; even stripping the cursed/badly designed parts of it, the dynamic nature makes writing nix just landmine after landmine

22:52:57
@blokyk:matrix.orgzoë (she/her)anyway i do agree with the solution of making externally-caused errors uncatchable, that makes complete sense to me; it's really mostly runtime errors that annoy me22:55:47
@blokyk:matrix.orgzoë (she/her)* anyway i do agree with the solution of making externally-caused errors uncatchable, that makes complete sense to me; it's really mostly runtime errors that frustrate me22:55:52
@blokyk:matrix.orgzoë (she/her)i really shouldn't have been, but i was genuinely surprised that the actual evaluator uses c++ exceptions to propagate eval/user-facing errors, instead of using a result type; it just felt... dirty. again, really shouldn't have been surprised, it is the nix codebase after all x)22:58:57
@raitobezarius:matrix.orgraitobezariusmy lawyer does not allow me to comment on these matters22:59:15
@blokyk:matrix.orgzoë (she/her)xD22:59:23
@blokyk:matrix.orgzoë (she/her)fair enough22:59:30
@raitobezarius:matrix.orgraitobezariusit's important to imagine Nix as a 20 years old technology22:59:43
@piegames:flausch.socialpiegames
In reply to @blokyk:matrix.org
i really shouldn't have been, but i was genuinely surprised that the actual evaluator uses c++ exceptions to propagate eval/user-facing errors, instead of using a result type; it just felt... dirty. again, really shouldn't have been surprised, it is the nix codebase after all x)
To be fair: try using Result types in C++ in 2005
22:59:47
@raitobezarius:matrix.orgraitobezariusit's also important to imagine that (technical) debt payment have not been popular23:00:11
@blokyk:matrix.orgzoë (she/her)i know i know, nix's 2000s-phd-thesis nature keeps catching up to it23:00:21
@raitobezarius:matrix.orgraitobezarius* it's also important to imagine that (technical) debt payment has not been popular23:00:22
@blokyk:matrix.orgzoë (she/her)* i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :|23:00:52
@blokyk:matrix.orgzoë (she/her)* i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :(23:00:54
@blokyk:matrix.orgzoë (she/her)* i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :/23:00:55
@blokyk:matrix.orgzoë (she/her)* i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :|23:00:57
@blokyk:matrix.orgzoë (she/her)* i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :/23:01:01
@blokyk:matrix.orgzoë (she/her)* i know i know, i've very much noticed that nix's 2000s+phd-thesis nature keeps catching up to it :/23:03:13
@blokyk:matrix.orgzoë (she/her) *

(i am somewhat reminded of the line i saw in last month's core team meting:

We wonder if we should have more boring people in our project

and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, yeah i am objectively a pretty boring person) x)

23:23:43
@blokyk:matrix.orgzoë (she/her) * with all that said, i still do have a question: should it be tagged E/Easy (with the notes from this discussion) and left to be first-time/drive-by contributed? it's not very urgent, and though it doesn't go into the c++ part of the codebase like most other changes will require, i still think it can be a good exercise, especially if combined with some tests 23:38:22
24 Mar 2026
@blokyk:matrix.orgzoë (she/her) *

(i am somewhat reminded of the line i saw in last month's core team meting:

We wonder if we should have more boring people in our project

and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, yeah i am objectively a pretty boring person, and i'm trying to believe that's okay) x)

00:20:16
@blokyk:matrix.orgzoë (she/her)alright i tried to sum it up based on what i understood, but i'm not very confident in that, don't hesitate to tell me if i misinterpreted/misunderstood/misframed something00:23:59
@blokyk:matrix.orgzoë (she/her) * alright i tried to sum it up based on what i understood, but i'm not very confident in that, don't hesitate to tell me if i misinterpreted/misunderstood/misframed something 00:34:19
@raitobezarius:matrix.orgraitobezariuslgtm05:35:46
@helle:tacobelllabs.nethelle (just a stray cat girl) The idea of technical debt collector comes to mind, anyway. 08:43:39

Show newer messages


Back to Room ListRoom Version: 10