Sender | Message | Time |
---|---|---|
15 Aug 2025 | ||
Corresponding components install the .pc files to dev output | 15:56:50 | |
cool okay I see the pc files in nix.dev store and they point to the nix lib directory | 16:01:51 | |
(Not sure how someone gets these files without using nix itself but maybe that's by design :P ) | 16:02:29 | |
Interesting, locallynix build .#checks.x86_64-linux.nix-fetchers-tests-run passes but on CI it fails. > The program must call nix::initNix() before calling any libstore library functions. | 16:03:56 | |
Download image.png | 16:08:44 | |
Also, CLion to debug live Nix has been amazing; unfortunately the GoogleTest integration doesn't work -- doesn't seem to hydrate the "Target" | 16:08:45 | |
Yeah that's pretty unfortunate, but the order of tests matters. It means that locally there's a test that has initialized libstore already | 16:30:20 | |
Can't help here, since I don't have jetbrains stuff | 16:30:53 | |
You'd need to use the new nixComponents packaging. It makes it so you can use the libs without bringing the cli with them | 16:32:00 | |
ty for the answers! | 20:34:03 | |
i recommend the jetbrains stuff; having the gdb integrated debugger has made investigating issues 100x easier | 20:34:19 | |
I might invest in trying to get rr working too | 20:34:25 | |
16 Aug 2025 | ||
Does anyone have any recommended tooling for finding out what values are being kept around by the GC (as well as why they’re being kept around)? | 00:31:11 | |
nix-store --gc --print-roots | 04:53:02 | |
Sorry, I should have disambiguated -- Boehm GC | 04:54:09 | |
lol | 04:54:15 | |
oops | 04:54:20 | |
In reply to @connorbaker:matrix.orgIFAIK there isn’t a lot of tooling for this. Boehm has some stuff to collect stats, but other than that I imagine you’d have to write custom tools for that. | 06:57:23 | |
I’ll post a small reproducer tomorrow of unexpected behavior I’m seeing with respect to the GC not freeing memory when I think it should be able to; I’d love to hear people’s thoughts on what could be causing it! | 06:59:36 | |
Thank you for the PR shrinking the Value struct by the way, that was great! | 07:00:55 | |
In reply to @connorbaker:matrix.org That would be great to see. Honestly it’d be nice to actually hunker down and write the tooling that we need for GC debugging/visualization. Hit me up if you would like to work on that. How’s the Immer thing going btw? | 07:06:35 | |
In reply to @fzakaria:one.ems.hostTry raise(SIGTRAP); inside gtest | 12:12:05 | |
Or this https://github.com/nemequ/portable-snippets/blob/master/debug-trap/debug-trap.h | 12:13:10 | |
I've got a file
I ran nix eval by way of
and kept lowering the maximum GC size until it would OOM with a One thing which could be tested is to create a large expression in the same fashion, without using | 19:01:26 | |
I would also like such tooling, but I really don't like reading or writing C/C++ :( I've only ever read/written C/C++ in anger and I very much consider myself incompetent with C/C++ I haven't looked at or touched the Immer stuff in a long while; the biggest road blocks I saw to moving forward with it were:
I think 1. was being looked at by the author of Immer, not sure whether they ever got the chance to get into it; 2. and 5. should happen regardless as a code/project hygiene thing. Fundamentally I still think it's important we look at the data structures Nix offers, the ways in which those data structures are most commonly used, and implementations that make those operations fast :l | 19:20:50 | |
Well going by how lambda calculus is evaluated in general. The import will be evaluated anew for each N. So what id try is wrapping the genList with a map seq to force evaluation of each thunk explicitly and see if that helps | 19:32:44 | |
But tbh i have no clue how nix evals, im going by how GHC does things, kinda. Just my first idea when i read your message | 19:34:27 | |
There’s an import cache | 22:44:45 | |
In reply to @connorbaker:matrix.orgThe import is cached, but the function call is not. | 22:47:40 | |
Also IIRC using JSON output forces everything | 22:52:32 |