| 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 |
Sergei Zimmerman (xokdvium) | That’s why I went with a linked list for the structural sharing PR (don’t know if you saw that or not) | 16:54:44 |
infinisil | (didn't see it) | 16:55:00 |
Sergei Zimmerman (xokdvium) | https://github.com/NixOS/nix/pull/13987
That reduced nixpkgs-metrics memory usage from 27 GB to ~ 20GB | 16:56:04 |
Sergei Zimmerman (xokdvium) | I really wanted to do a binary tree, but the on-demand m-way merge got a lot in the way | 16:56:47 |
Robert Hensing (roberth) | work sesh about to start btw. I'll join after/with some food | 16:59:20 |
Sergei Zimmerman (xokdvium) | In reply to @roberthensing:matrix.org work sesh about to start btw. I'll join after/with some food Can’t make it today. Would be very happy if you’ll had a chance to do one more pass on the ssh-ng:// coroutine perf fix in https://github.com/NixOS/nix/pull/14998 | 17:00:53 |
Sergei Zimmerman (xokdvium) | In reply to @roberthensing:matrix.org work sesh about to start btw. I'll join after/with some food * Can’t make it today. Would be very happy if you all had a chance to do one more pass on the ssh-ng:// coroutine perf fix in https://github.com/NixOS/nix/pull/14998 | 17:01:04 |
niksnut | left a comment | 17:22:38 |
Sergei Zimmerman (xokdvium) | In reply to @niksnut:matrix.org left a comment Addressed! Much simpler now | 20:33:09 |
| 20 Jan 2026 |
Sergei Zimmerman (xokdvium) | Exciting times: https://www.phoronix.com/news/Linux-Open-Tree-Namespace | 10:23:54 |
Mic92 | Not quiet sure how this would be used in Nix? | 11:42:35 |
John Ericson | I talked to that guy about better process spawning at one point | 21:01:51 |
John Ericson | Kinda analogous 😎 | 21:02:15 |
John Ericson | (he also worked on process fds) | 21:02:44 |
| @scr4mbl3:matrix.org left the room. | 23:54:33 |