!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

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

Load older messages


SenderMessageTime
31 Jul 2025
@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
@emilazy:matrix.orgemily I think there is some value to the basic highest-level idea of lazy trees over -f . 14:20:35
@emilazy:matrix.orgemilybut I agree that proper VFS is the way14:20:39
@emilazy:matrix.orgemilyyou do still run into questions around NAR hashing and so on14:20:56
@weethet:catgirl.cloudWeetHetIs it impossible to get rid of NAR hashes altogether and just have a compat layer as snix does?14:23:31
@weethet:catgirl.cloudWeetHetOr even just use snix-store altogether14:25:36
@emilazy:matrix.orgemilythe problem is that it is exposed to the language14:26:24

Show newer messages


Back to Room ListRoom Version: 10