!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

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

Load older messages


SenderMessageTime
31 Jul 2025
@emilazy:matrix.orgemilysee https://github.com/NixOS/nix/pull/13225#pullrequestreview-2858935020 for discussion, particularly the later review subthread14:13:17
@emilazy:matrix.orgemilyI think roberth has it right that you want an opaque path type14:13:26
@emilazy:matrix.orgemilythough that is of course a big lift14:13:30
@emilazy:matrix.orgemilyNAR hashing is also just bad… but that's another matter14:13:50
@emilazy:matrix.orgemilyanyway14:14:00
@emilazy:matrix.orgemily does anyone have feelings about /nix/var/nix/b instead of /nix/var/nix/builds? 14:14:07
@emilazy:matrix.orgemilyI have implemented most of the thing to fix the Unix socket length issue14:14:24
@emilazy:matrix.orgemily with /b/ we end up below the previous average length of a build directory 14:14:33
@emilazy:matrix.orgemily with /builds/ we are still slightly above 14:14:42
@emilazy:matrix.orgemily though if you count path normalization i.e. /private/tmp/… which I think a lot of things are doing behind the scenes we are ahead even with /builds/ 14:14:53
@weethet:catgirl.cloudWeetHet

Path equality and ordering (as observable to users) must remain identical

I've changed my opinion on this, though I'm not sure if there are really no usecases for comparing paths

14:15:15
@weethet:catgirl.cloudWeetHet But it would be interesting to go over github and just see if anyone ever compares paths 14:15:38
@emilazy:matrix.orgemilyforbidding path comparison is precisely what a more opaque path type would achieve without breaking the language guarantees14:16:27
@emilazy:matrix.orgemilyit has other nice advantages too (you can do objcap stuff)14:16:39
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)
In reply to @emilazy:matrix.org
tbf, lazy trees prevents torn writes
I might not be using Flakes enough but I never saw a torn writes and I probably run the most experimental filesystem stack on my main system with the one of the largest stores around (and I hit most of the store bugs :D)
14:16:41
@emilazy:matrix.orgemilythat is a lower level of torn write than I mean14:16:56
@weethet:catgirl.cloudWeetHetAlthough you don't need to use nar-hashes to compare paths14:16:58
@weethet:catgirl.cloudWeetHetYou can use a cache that can be cached14:17:18
@weethet:catgirl.cloudWeetHet* You can use a hash that can be cached14:17:26
@emilazy:matrix.orgemily and tbf default flakes behaviour does not prevent it either. what I mean is that -f . cannot achieve the same as .?rev=HEAD because you can end up evaluating an inconsistent state 14:17:26
@emilazy:matrix.orgemily where a.nix is the old version and b.nix is the new version 14:17:33
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)
In reply to @weethet:catgirl.cloud

Path equality and ordering (as observable to users) must remain identical

I've changed my opinion on this, though I'm not sure if there are really no usecases for comparing paths

Burden of proof is not on me ;-)
14:17:35
@emilazy:matrix.orgemily because a.nix and b.nix change after a.nix starts to be read and evaluated 14:17:41
@emilazy:matrix.orgemily but before b.nix is imported 14:17:44
@emilazy:matrix.orgemily this is unfortunate; .?rev=…# avoids it but is slow 14:18:03
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)In the end, what lazy trees aims to achieve is a virtual filesystem and we want this certainly, but I don't think tacking it off this way is meaningful or useful14:18:24
@emilazy:matrix.orgemily(I won't comment on the flake "worktree contents but only files that are in the index" behaviour because it's incoherent, of course)14:18:37
@emilazy:matrix.orgemily (OTOH, Jujutsu @ is a much more coherent version of the same basic aim hence https://git.lix.systems/lix-project/lix/issues/799) 14:18:58
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)

If people truly wants lazy trees "that way" on Lix, this is for an out of tree distribution rather than Lix itself

Flakes compat offers a path forward for those who have giga-enormous monorepos at work and needs to avoid the expensive copies but want to keep the flakes semantics and wants to know how to diff things (which is something you should anyway know how to do).

Once we paid enough technical debt, we can have slowly a proper VFS IMHO

14:19:53
@emilazy:matrix.orgemilyto be clear I don't think Lix should implement lazy trees esp. at present14:20:19

Show newer messages


Back to Room ListRoom Version: 10