!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

899 Members
For people hacking on the Nix package manager itself190 Servers

Load older messages


SenderMessageTime
19 Jan 2026
@roberthensing:matrix.orgRobert Hensing (roberth)Shepherd Team A team of 3-4 community members defined unanimously by the RFC Steering Committee, responsible for accepting or rejecting a specific RFC. 15:28:38
@joerg:thalheim.ioMic92I maintain two binary caches that were implemented from scratch. It's not much work if you just want to validate a concept, proxies can be quiet easy. So if you want to move fast, just doing it from scratch might very doable. If you have to handle storage i.e. garbage collection, things get trickier.15:28:44
@roberthensing:matrix.orgRobert Hensing (roberth)The responsibility of the team is to guide the discussion as long as it is constructive, new points are brought up and the RFC is iterated on and from time to time summarise the current state of discussion. If this is the case no longer, then the Shepherd Team shall step in with a motion for FCP.15:29:05
@joerg:thalheim.ioMic92If 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 narinfo15:29:59
@joerg:thalheim.ioMic92That's the theory, but in practice it's feels quiet overwhelming to having to respond to so many people.15:30:51
@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
@xokdvium:matrix.orgSergei 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:matrix.orginfinisil(didn't see it)16:55:00
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)

https://github.com/NixOS/nix/pull/13987

That reduced nixpkgs-metrics memory usage from 27 GB to ~ 20GB

16:56:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)I really wanted to do a binary tree, but the on-demand m-way merge got a lot in the way16:56:47
@roberthensing:matrix.orgRobert Hensing (roberth)work sesh about to start btw. I'll join after/with some food16:59:20
@xokdvium:matrix.orgSergei 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
@xokdvium:matrix.orgSergei 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:matrix.orgniksnutleft a comment17:22:38
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @niksnut:matrix.org
left a comment
Addressed! Much simpler now
20:33:09
20 Jan 2026
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Exciting times: https://www.phoronix.com/news/Linux-Open-Tree-Namespace10:23:54

Show newer messages


Back to Room ListRoom Version: 6