!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

942 Members
For people hacking on the Nix package manager itself200 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
18 Jul 2025
@joerg:thalheim.ioMic92Same actually for platform specific header - could be a bit tedious though 17:35:25
@joerg:thalheim.ioMic92 @xokdvium:matrix.org: clang format stuff is good to go? 17:36:58
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)I think so. The diff is good and the auto-rebase script seems to work well.17:37:33
@joerg:thalheim.ioMic92Okay. Hit it!17:38:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Done! No more range formatting. Yay!17:40:50
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Pinned an issue about the auto-rebase script: https://github.com/NixOS/nix/issues/1350218:02:18
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)I know that one of the expensive parts of CI with Nix monorepos is evaluation on each commit in part because there's no re-use of evaluation caches across commits. I see that a new AttrDb is created for each fingerprint (https://github.com/NixOS/nix/blob/b8d223a2106c7dbdb0c61f822288195ee9e26e9b/src/libexpr/eval-cache.cc#L75). For those with knowledge about evaluation caching as it is currently implemented: would it be feasible to rewrite it such that entries in Attributes use the hash of their source files as part of their primary key? As an example, if the hashes of the files read to evaluate an attribute doesn't change across two commits, the result from the first evaluation would be returned for the second (it would be cached).22:05:10
@andiandi:tchncs.deandiandi 🐈 changed their display name from andiandi 🦆 to andiandi@hadr25.22:09:06
@andiandi:tchncs.deandiandi 🐈 changed their display name from andiandi@hadr25 to andiandi@hadr25 🏰🏞️.22:13:42
19 Jul 2025
@ma27:nicht-so.sexyma27
In reply to @connorbaker:matrix.org
I know that one of the expensive parts of CI with Nix monorepos is evaluation on each commit in part because there's no re-use of evaluation caches across commits.
I see that a new AttrDb is created for each fingerprint (https://github.com/NixOS/nix/blob/b8d223a2106c7dbdb0c61f822288195ee9e26e9b/src/libexpr/eval-cache.cc#L75).
For those with knowledge about evaluation caching as it is currently implemented: would it be feasible to rewrite it such that entries in Attributes use the hash of their source files as part of their primary key?
As an example, if the hashes of the files read to evaluate an attribute doesn't change across two commits, the result from the first evaluation would be returned for the second (it would be cached).
I think part of the problem is that you can't really say which files are the sourcefiles of an attribute without an evaluation, right?
17:41:11
20 Jul 2025
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) I think you could if using the flake interface. I've lookged through the eval-cache.cc file a bit, here's an idea.
Consider the portion which involves getting the keys of an attribute set. If before and after forcing a value you were snapshot and then compare the results of the import cache, that could be a start.
03:48:39
@roberthensing:matrix.orgroberth I plan to work on that starting Sep/Oct. Might work regardless of flakes :: Bool 15:16:39

Show newer messages


Back to Room ListRoom Version: 6