!VRULIdgoKmKPzJZzjj:nixos.org

Nix Package Manager development

936 Members
For people hacking on Nix: https://github.com/NixOS/nix Nix maintainers can be reached here.199 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
19 Jan 2026
@roberthensing:matrix.orgRobert Hensing (roberth) static one for nix-cache-info I think you mean 15:30:59
@joerg:thalheim.ioMic92* That's the theory, but in practice it's feels quiet overwhelming to having to respond to so many people. With many of them just doing nitpicky reviews of the worst kind.15:31:22
@joerg:thalheim.ioMic92 * If you don't care about too many feature, you can get a way with two http calls for narinfo and nar and a static one for nix-cache-info 15:31:49
@joerg:thalheim.ioMic92 * If you don't care about too many feature, you can get away with two http calls for narinfo and nar and a static one for nix-cache-info 15:32:30
@infinisil:matrix.orginfinisil Robert Hensing (roberth): raboof Taeer Bar-Yam Mic92: Regarding lazy attrs, I stand by my previous conclusion that it should be opt-in with a builtins.lazyUpdate primop 16:42:26
@infinisil:matrix.orginfinisil And to implement it, I believe the best way is to make attributes an abstract interface, and for lazyUpdate to create a separate underlying attribute set implementation that's based on two Values 16:44:10
@infinisil:matrix.orginfinisil And in my PR I tried to create some automatic merge-into-a-single-attrs-if-both-sides-have-been-accessed thing, which was really complicated, but very necessary if you wanted it to be the standard // operator. By having an explicit primop opt-in, there's no need for this complexity, and it can always just be stored as two Values 16:47:19
@infinisil:matrix.orginfinisilAlthough it looks like that wasn't part of my latest iteration :)16:48:54
@infinisil:matrix.orginfinisil* Although it looks like that wasn't part of my latest iteration anyways :)16:49:00
@infinisil:matrix.orginfinisil* Although it looks like that wasn't part of my latest iteration anymore :)16:49:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @infinisil:matrix.org
And in my PR I tried to create some automatic merge-into-a-single-attrs-if-both-sides-have-been-accessed thing, which was really complicated, but very necessary if you wanted it to be the standard // operator. By having an explicit primop opt-in, there's no need for this complexity, and it can always just be stored as two Values
Wouldn’t it be more like a binary tree of Values of you chain multiple merges around?
16:52:18
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)And one that’s arbitrarily deep16:52:40
@infinisil:matrix.orginfinisilYeah exactly16:52:45
@infinisil:matrix.orginfinisilI don't think that's a problem if it's opt-in. You can decide how the tree-structure should look like with how you write Nix code16:53:37
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Hm the stack usage is already unbounded, but that could make the situation even worse. I couldn’t really come up with a good algorithm for doing m-way merges with a binary tree that’s a bounded in stack usage16:54:20

Show newer messages


Back to Room ListRoom Version: 6