!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

421 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
24 Feb 2026
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)But that’s not exactly the thing we want for a well-defined lexical order. For now sorting on demand doesn’t seem to cost too much to be a blocker for fixing the impurity10:06:48
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)* I mean, if somebody does the crazy and switches to a better representation that’d be great. FWIW there’s an immutable CHAMP implementation in immer that connor baker tried using for attrsets10:10:21
@piegames:flausch.socialpiegames
In reply to @piegames:flausch.social
Any alternative solutions to this?
How about always evaluating all values in comparisons, so that eval order does not matter because it's not as lazy?
10:17:35
@piegames:flausch.socialpiegamesOr how about treating values that throw as incomparable instead of propagating it up and beyond the comparison?10:18:22
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @piegames:flausch.social
Or how about treating values that throw as incomparable instead of propagating it up and beyond the comparison?
It’s not really only about throw expressions though. Forcing all values would be a workable, though a more radical solution
10:20:49
@piegames:flausch.socialpiegamesDo we have numbers on how many comparisons even happen in Nixpkgs? My assumption would be that it's not that common and that most instances already fast forward because of the pointer comparison10:23:30
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Something like ~1M that doesn't shortcircuit and falls through to per-attr equality11:19:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) For all drv-paths via -qaP --drv-path for x86_64-linux 11:19:44
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)That doesn't count derivation outPath equality and size mismatches of attrs11:21:33
@emilazy:matrix.orgemilythe pointer comparison is hideously impure so not a good reason to not reduce existing impurity13:49:32
@k900:0upti.meK900Do we really want to say that flakes are hard frozen?13:49:47
@emilazy:matrix.orgemilythe ordering also matches attrNames/attrValues13:49:49
@k900:0upti.meK900I feel like it's fine to pick some one-line patches that fix things13:50:03
@emilazy:matrix.orgemilyso attrsets already have a canonical ordering13:50:04
@piegames:flausch.socialpiegames @k900:0upti.me that depends on whether that change may cause conflicts in the migration, I don't know the state of that CC @raitobezarius:matrix.org 13:51:18
@raitobezarius:matrix.orgraitobezariusI am sorry I am failing to understand the conversation13:51:46
@raitobezarius:matrix.orgraitobezariusI read things on pointer comparisons from emily and things about flakes13:51:54
@raitobezarius:matrix.orgraitobezariusCan someone TLDR me?13:51:57
@raitobezarius:matrix.orgraitobezariusor repeat what they want from me13:52:00
@emilazy:matrix.orgemilyi.e. you can implement an ordered-by-attrname == in Nix today (modulo pointer equality)13:52:13
@k900:0upti.meK900https://github.com/NixOS/nix/commit/3180671cabeb6a6010057770731e12761ed5666c cppnix broke flakes again13:52:16
@k900:0upti.meK900We could cherry-pick13:52:27
@k900:0upti.meK900Also the nix profile add thing from the other day13:52:37
@raitobezarius:matrix.orgraitobezariusman13:52:39
@k900:0upti.meK900I think it's fine to pick these small-ish changes that should merge cleanly into the migration13:53:01
@raitobezarius:matrix.orgraitobezariusYes, but this change is non trivial from a libexpr perspective13:53:16
@raitobezarius:matrix.orgraitobezariusNow url Value have context strings?13:53:26
@k900:0upti.meK900Yeah that one might be too much13:53:34
@raitobezarius:matrix.orgraitobezariusI need to think13:53:47
@k900:0upti.meK900I was thinking about the nix profile add one more13:53:47

Show newer messages


Back to Room ListRoom Version: 10