!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

416 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
@weethet:catgirl.cloudWeetHetBecause on a path <-> string boundary the paths are devirtualised14:07:33
@weethet:catgirl.cloudWeetHetSo the nondeterminism leak is minimal14:07:51
@weethet:catgirl.cloudWeetHetI don't love it but realistically it's not as big of a trade off as it can seem in the first place14:09:10
@emilazy:matrix.orgemilytbf, lazy trees prevents torn writes14:10:47
@emilazy:matrix.orgemilythough of course nondeterminism in pure eval mode sans IFD is not really acceptable14:10:57
@emilazy:matrix.orgemily(and does not really seem necessary)14:11:07
@weethet:catgirl.cloudWeetHetThe real issue is that calculating the path and copying the source to the store are computationally very similar tasks14:11:53
@emilazy:matrix.orgemilythey're not really14:12:16
@emilazy:matrix.orgemilyjust hashing is meaningfully faster14:12:28
@weethet:catgirl.cloudWeetHetI don't know if nar-hash can be constructed iteratively so that you only need to rehash changed files14:13:14
@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
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

Show newer messages


Back to Room ListRoom Version: 10