| 19 Jan 2026 |
Robert Hensing (roberth) | static one for nix-cache-info I think you mean | 15:30:59 |
Mic92 | * 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 |
Mic92 | * 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 |
Mic92 | * 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 | 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 | 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 | 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 | Although it looks like that wasn't part of my latest iteration :) | 16:48:54 |
infinisil | * Although it looks like that wasn't part of my latest iteration anyways :) | 16:49:00 |
infinisil | * Although it looks like that wasn't part of my latest iteration anymore :) | 16:49:04 |
Sergei 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 |
Sergei Zimmerman (xokdvium) | And one that’s arbitrarily deep | 16:52:40 |
infinisil | Yeah exactly | 16:52:45 |
infinisil | I 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 code | 16:53:37 |
Sergei 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 usage | 16:54:20 |