!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

846 Members
For people hacking on the Nix package manager itself182 Servers

Load older messages


SenderMessageTime
21 May 2025
@sinan:sinanmohd.comsinan changed their profile picture.11:59:58
@sinan:sinanmohd.comsinan changed their profile picture.12:00:45
@emilazy:matrix.orgemily is there a way to trace imports of an evaluation that isn't as horribly slow as nix eval -v -v or scopedImport { import = x: builtins.trace x (import x); }? 13:26:03
@emilazy:matrix.orgemilyactually I guess the latter needs to be recursive which would make it even slower13:27:14
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @emilazy:matrix.org
is there a way to trace imports of an evaluation that isn't as horribly slow as nix eval -v -v or scopedImport { import = x: builtins.trace x (import x); }?
Hm, do you need the trace to be super precise? Would a flamegraph suffice?
14:33:28
@emilazy:matrix.orgemilyyes, precision is the aim (dependency tracking)14:34:24
@emilazy:matrix.orgemilythough only a subset of paths (beneath a given root) are required14:34:39
@emilazy:matrix.orgemilypossibly I can use that to help short-circuit things14:35:04
@hacker1024:matrix.orghacker1024Is modifying the implementation of `import` in the Nix source itself an option?14:36:37
@emilazy:matrix.orgemilyI suppose I'd really rather not :)14:46:21
@emilazy:matrix.orgemily I don't really know why -v -v is slow in the first place 14:46:35
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Can you share a repro for the slowdown?14:59:40
@emilazy:matrix.orgemilyjust import a fetchTarball of Nixpkgs and do anything with it. but yeah I can put one up in a couple hours16:43:13
@emilazy:matrix.orgemilyI'm on Darwin which does have slower FS perf but presumably it shouldn't be amplifying FS operations16:43:33
22 May 2025
@emilazy:matrix.orgemily Sergei Zimmerman (xokdvium): whoops, sorry for forgetting about this. hm, a minimal reproducer seems way less slower than expected. let me try and see what i was observing 05:44:49
@emilazy:matrix.orgemily I can't reproduce. I guess -v -v is great :) 05:46:34
@emilazy:matrix.orgemilyI wish it would trace other file accesses though05:46:45
@emilazy:matrix.orgemily like builtins.readFile 05:46:54
@emilazy:matrix.orgemily does anyone understand why nix eval .?rev=X#foo will sometimes produce "copying …" messages even when the rev did not change? 09:35:24
@joerg:thalheim.ioMic92https://discourse.nixos.org/t/nix-2-29-0-released/64609 Nix 2.29.0 released13:09:10
@joerg:thalheim.ioMic92I think if you do a lot of -v than it will print the flake cache that causes the copying.13:10:53
@joerg:thalheim.ioMic92https://github.com/numtide/nix-eval-cache13:12:30
@joerg:thalheim.ioMic92currently limited to Linux, but could be ported to darwin as well with the right environment variables for LD_PRELOAD13:13:09
@perchun:matrix.orgPerchun Pak [don't ping; dm instead] changed their display name from Perchun Pak to Perchun Pak [don't ping; dm instead].13:50:46
@emilazy:matrix.orgemilythe LD_PRELOAD equivalent doesn't work super reliably on Darwin13:58:02
@emilazy:matrix.orgemilythough with Nix it might work fine since I guess it probably doesn't go through SIP stuff13:58:11
@emilazy:matrix.orgemily does this handle builtins.readFile? 13:58:17
@emilazy:matrix.orgemily -v -v doesn't actually seem to slow things down appreciably after re-testing so it seems likely adequate for my usecase 13:58:29
@emilazy:matrix.orgemily (using scopedImport to catch readFile takes 1.5× longer to eval :( ) 14:00:53
@emilazy:matrix.orgemily I guess I could PR tracing readFile in -v -v too 🙃 14:01:07

Show newer messages


Back to Room ListRoom Version: 6