!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

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

Load older messages


SenderMessageTime
10 Nov 2025
@k900:0upti.meK900Yes08:18:57
@k900:0upti.meK900 Unironically yes 08:18:58
@qyriad:katesiria.orgQyriad
In reply to @piegames:flausch.social
Yes but once you ban it you want to move off all functions off your data structures to retain the ability to compare your data
well, unless you simply don't count functions in structure comparisons
08:19:09
@piegames:flausch.socialpiegamesGlad we agree. I still need a vision how to do that for a language within the Nix ecosystem tbh08:19:45
@k900:0upti.meK900 There's literally one place in nixpkgs where this is relevant 08:19:47
@k900:0upti.meK900 And it can be fixed with a treewide 08:19:57
@k900:0upti.meK900 Annoying as that may be 08:20:02
@piegames:flausch.socialpiegamesThat would be possible but honestly feel weird08:20:12
@piegames:flausch.socialpiegamesWhich one?08:20:17
@k900:0upti.meK900 Platform equality 08:20:28
@qyriad:katesiria.orgQyriad
In reply to @piegames:flausch.social
That would be possible but honestly feel weird
it would make comparison trinary, ¯\_(ツ)_/¯ 
08:20:52
@piegames:flausch.socialpiegamesHow so?08:21:29
@k900:0upti.meK900 Expr::eq(this, that) -> MsoTristate 08:21:36
@k900:0upti.meK900 When 08:21:36
@qyriad:katesiria.orgQyriad you're probably right that it's better to not, though 08:22:03
@k900:0upti.meK900 (in case anyone isn't familiar, https://learn.microsoft.com/en-us/dotnet/api/microsoft.office.core.msotristate?view=office-pia) 08:22:29
@piegames:flausch.socialpiegamesWhat I dislike is that you have some data structure, it compares nicely, now you want to add a helper function that manipulates the data, suddenly your data has no equality anymore08:24:22
@qyriad:katesiria.orgQyriad yeah that's whatI don't like either 08:57:14
@qyriad:katesiria.orgQyriad * yeah that's what I don't like either 08:57:34
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping == vs ===? /hj 09:11:18
@qyriad:katesiria.orgQyriad ban == for sets entirely and require defining a __eq? /hj 09:11:58
@piegames:flausch.socialpiegames So my take is that for most data structures ("types"), the code doesn't change between most instances. So it could be factored out of the comparison. Only attrs that actually need per-value functions to be different would be incomparable 09:16:14
@piegames:flausch.socialpiegamesYknow, just the normal stuff from most every other language09:16:25
@k900:0upti.meK900I mean having a user defined __eq would be good for other reasons as well09:17:59
@k900:0upti.meK900But it's also a super hard compat break09:18:06
@qyriad:katesiria.orgQyriad I think something that is clear at the least is that Nixpkgs lib should have a lib.attrsets.equalsWithoutFunctions or something 09:23:42
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)It is there btw09:23:58
@k900:0upti.meK900 There's lib.platforms.equals or something 09:24:20
@k900:0upti.meK900But it will never be used consistently if the obvious thing is allowed09:24:30
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) Also lib.systems.equals is horribly slow and inefficient 09:25:04

Show newer messages


Back to Room ListRoom Version: 10