| 17 Aug 2025 |
connor (burnt/out) (UTC-8) | It's my understanding that all of them should be garbage, because the only value retained from the instantiation is forced with deepSeq and should hold no references to that instantiation of Nixpkgs (though I suppose since it's a string with context it could hold references that way?). Put another way, is it possible there are still live references to those instances of Nixpkgs, or something about their instantiation is keeping them around? | 05:21:43 |
emily | hmm. maybe you are right. well, I don't think deepSeq is doing anything there since strings are atomic afaik | 05:22:31 |
emily | so each thunk will keep around a reference until it is forced at least | 05:22:52 |
emily | but then the instantiation is in the thunk so… eh | 05:23:02 |
roberth | deepSeq is not sufficient to drop all closures, as functions (lambdas) are normal form, but also have closures, much like thunks. You'd have to drop all functions (if any exist in your result, idk) | 18:54:59 |
emily | .drvPath shouldn't contain any functions I hope | 18:55:58 |
fzakaria | It won't even run it though; using CLIon's gtest runner -- do you have it working? | 20:22:30 |
fzakaria | I was looking today at https://github.com/jart/json.cpp -- vs nlohman | 20:23:42 |
emily | the JSON library is extremely load-bearing for evaluation semantics, please don't switch it out without a very thorough test suite and fuzzing; the switch to nlohmann_json in 2.4 already produced a lot of eval changes | 20:30:05 |
fzakaria | Just sharing it; I sponsor jart via GitHub (I wish a larger amount) so I try to follow up on the work she does. -- I really like all the work she does + I find her code outstanding. | 20:32:43 |
Sergei Zimmerman (xokdvium) | Also let's first handle the TOML fiasco | 20:40:26 |
emily | I did my best :D | 20:41:03 |
fzakaria | was that solvable ? I thought it's just not because of the spec | 20:41:06 |