!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.140 Servers

Load older messages


SenderMessageTime
21 Nov 2025
@helle:tacobelllabs.nethelle (just a stray cat girl)eeeh, ended up with substitue = false and prefetching the one file I needed that was failing with curl and a local nixpkgs pointed at that (trying to find the cache entry for it I was not in the mood for)15:02:12
@Ericson2314:matrix.orgJohn EricsonI did that too17:10:17
@Ericson2314:matrix.orgJohn Ericsonsplit libcmd into store layer and not store layer parts17:10:40
@isabel:isabelroses.comisabel changed their profile picture.18:13:57
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to pinghttps://gerrit.lix.systems/c/lix/+/4605 its merged 🎉 18:34:13
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)I looked and I may have missed it but I still see special cases in libcmd on master.18:41:27
@mzero:matrix.orgmzero joined the room.20:37:43
@mzero:matrix.orgmzerodid the special casing for small lists get removed? there are still comments that refer to it, but I'm not seeing it in the code (though I could just be missing it)20:54:15
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)removed, indeed20:54:40
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)did you notice something problematic for small lists?20:54:48
@mzero:matrix.orgmzerono, I was just looking at the string changes in the release notes and noticed it. is there any perforce impact from it? I assume lists with exactly 2 elems aren't that common, but I'm still curious.20:59:59
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)AFAIK, this optimization is noise when we looked21:07:47
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)Lists with 2 elems are usually pairs in Nixlang21:07:58
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)Unnamed pairs21:08:07
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)I did research a bit the distribution of list sizes when evaling nixpkgs. Small lists are quite often used, but lists just pale in comparison with attrsets overall21:17:12
@mzero:matrix.orgmzeroname value pairs are so common because of listToAttrs, etc, I wonder if a pair type would actually make a significant perf difference21:19:00
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)A more generic approach could be to have "attrset shapes". Very similar to how v8 optimizes classes with the same layout21:20:09
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Then names wouldn't need to be stored in the attribute set and function calls could reuse the same memory and not copy anything to a new Env. (I and Robert Hensing discussed this a bit at some point)21:21:57
@qyriad:katesiria.orgQyriad
In reply to @xokdvium:matrix.org
A more generic approach could be to have "attrset shapes". Very similar to how v8 optimizes classes with the same layout
benefits of a JIT especially
21:22:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Not exactly tho. jit/memory layout are tangential somewhat21:22:32
@qyriad:katesiria.orgQyriad yeah but you can optimize hot shapes  21:22:56
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) Yeah. I think python has slots for this kind of thing 21:23:13
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) * Yeah. I think python has __slots__ for this kind of thing 21:23:28
@mzero:matrix.orgmzerodo you have something I could read about that? I'm curious how it would work.21:25:02
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Probably staring at prior art in V8? I haven't done that myself, but I'd be curious how they do tracing to find hot shapes21:26:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)All of those optimizations are pretty inaccessible without tracing infra :(21:27:26
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)But tracing attrset shapes doesn't exactly depend on function call tracing. Computing a shape fingerprint and having a small hashmap of that could give a rough picture of the frequency.21:29:23
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)So maybe only do this for attrsets smaller than N, compute a hash of symbol table ids, store it a fixed-sized map and count frequency that way. This shouldn't have much of an overhead21:30:50
@Ericson2314:matrix.orgJohn Ericsonyeah that is in a bitrotted PR21:39:29
22 Nov 2025
@helle:tacobelllabs.nethelle (just a stray cat girl) glares at lix/nix/prefetch.cc +118 11:47:29

Show newer messages


Back to Room ListRoom Version: 10