| 19 Dec 2025 |
Sergei Zimmerman (xokdvium) | Repro'd locally
It pains me to look at that code and seeing just how much blocking round-trips it does :( | 01:55:14 |
thomasjm | huh, i'm not familiar with the internals here but afaict #13301 didn't make the blocking round-trip situation worse? i wonder if there are perf improvements to be had here | 02:10:31 |
Sergei Zimmerman (xokdvium) | Yeah it's my quip :) I'm cooking up async for some time now so that we could remedy the round-trip situation | 02:11:26 |
Sergei Zimmerman (xokdvium) | Just needs a sprinkle of stackless coroutines | 02:11:49 |
Sergei Zimmerman (xokdvium) | curl is already pretty async and works with completion callbacks from another thread, it's the downstream code that sucks | 02:12:42 |
thomasjm | sounds like a nice change | 02:13:40 |
thomasjm | i feel like #13301 could have done with a release notes entry as it's a significant change in behavior | 02:13:59 |
Sergei Zimmerman (xokdvium) | Without the bug? | 02:15:44 |
thomasjm | yeah, the non-graceful failure has always been a problem so the fix would be good to advertise. there are people talking about how it changes their deployment strategies in one of the linked discourse threads | 02:16:59 |
Sergei Zimmerman (xokdvium) | Hm, arguably that was a bugfix because:
If set to `true`, Nix falls back to building from source if a
binary substitute fails. This is equivalent to the `--fallback`
flag. The default is `false`.
So fallback flag shouldn't have bailed out at all.
Release notes could use some love indeed though.
| 02:18:32 |
eveeifyeve | Huh it really pains me that exceptions don't work properly in msys2. | 09:43:08 |
eveeifyeve | Redacted or Malformed Event | 11:26:08 |
Julian | Redacted or Malformed Event | 13:58:59 |
Taeer Bar-Yam | why do workflows require approval to run? is that a new thing? | 14:01:26 |
Sergei Zimmerman (xokdvium) | Did some benchmarking of tarball unpacking on my sluggish macos opencore x86 hackintosh:
current master with multithreaded sink:
37.32s user 1.36s system 360% cpu 10.731 total
2.33:
38.60s user 0.56s system 156% cpu 25.064 total
2.32:
42.26s user 14.93s system 104% cpu 54.691 total
2.22 (just to see how bad loose objects really are)
15.11s user 71.89s system 75% cpu 1:55.67 total
Very nice. The system time reduction is very nice on top of the general parallel hashing of blobs. Much more efficient and faster too.
| 22:38:02 |
Sergei Zimmerman (xokdvium) | So that's a 12x speedup from what we used to have when the tarball cache initially landed. Whew. Holding libgit2 just the right way is crazy | 22:39:43 |
Sergei Zimmerman (xokdvium) | That's for a https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz tarball | 22:40:20 |
Mic92 | Now most time is spent in xz? | 22:55:23 |
Mic92 | In reply to @shine:proqqul.net why do workflows require approval to run? is that a new thing? New contributors only in a given repo. It's some protection when people started to abuse CI for crypto mining | 22:57:12 |
Mic92 | Has been around for quite a few years | 22:57:40 |
Sergei Zimmerman (xokdvium) | Nah, it's in libgit2's sha1dc:
9643 Total number in stack (recursive counted multiple, when >=5):
9644 225 sha1_compression_states (in libgit2.1.9.0.dylib) + 0 [0x10bffb2c0]
9645 216 sha1_process (in libgit2.1.9.0.dylib) + 98 [0x10bffc922]
9646 193 ubc_check (in libgit2.1.9.0.dylib) + 0 [0x10bfff780]
9647 190 sha1_process (in libgit2.1.9.0.dylib) + 129 [0x10bffc941]
9648 185 git_hash_sha1_update (in libgit2.1.9.0.dylib) + 14 [0x10bffb21e]
9649 177 SHA1DCUpdate (in libgit2.1.9.0.dylib) + 143 [0x10bffc85f]
9650 173 _platform_memmove$VARIANT$Haswell (in libsystem_platform.dylib) + 0 [0x7ff815ba69c0]
9651 138 git_odb_read (in libgit2.1.9.0.dylib) + 245 [0x10c064055]
9652 137 git_odb__hashobj (in libgit2.1.9.0.dylib) + 214 [0x10c061686]
9653 135 git_hash_vec (in libgit2.1.9.0.dylib) + 143 [0x10bfec95f]
9654 129 odb_read_1 (in libgit2.1.9.0.dylib) + 190 [0x10c06415e]
| 23:04:39 |
| 20 Dec 2025 |
| @acidbong:envs.net joined the room. | 07:34:49 |
tomberek | Performance evaluating ffmpeg.outPath:
version cpuTime totalBytes
2.18.0 0.7706810235977173 239063920
2.19.0 0.6556280255317688 237453216
2.20.0 0.6005399823188782 221187424
2.21.0 0.6103590130805969 219954112
2.22.0 0.6383659839630127 221675008
2.23.0 0.6425349712371826 221675040
2.24.0 0.6011530160903931 221674208
2.25.0 0.500432014465332 214758096
2.26.0 0.5055519938468933 214758096
2.26.0 0.4858900010585785 214758096
2.28.0 0.5660200119018555 214758240
2.29.0 0.5035560131072998 214746848
2.30.0 0.5135070085525513 169822960
2.31.0 0.624688982963562 169822960
2.32.0 0.6163859963417053 130878112
2.33.0 0.5727580189704895 131258912
| 18:05:41 |
| 21 Dec 2025 |
connor (burnt/out) (UTC-8) | Has anyone made a wrapper around hyperfine yet that allows us to get summary statistics of the data output by NIX_SHOW_STATS? | 19:02:53 |
Sergei Zimmerman (xokdvium) | In reply to @connorbaker:matrix.org Has anyone made a wrapper around hyperfine yet that allows us to get summary statistics of the data output by NIX_SHOW_STATS? Lix has some and I do occasionally use the bench/ scripts | 19:14:52 |
Sergei Zimmerman (xokdvium) | So, not really. I would be nice to get continuous benchmarking going with something like llvm-lnt, but I haven’t had the time to work on it more | 19:16:04 |
| @acidbong:envs.net left the room. | 20:09:28 |
| 22 Dec 2025 |
eveeifyeve | Maybe I could take over? | 13:22:02 |
eveeifyeve | I've got free hands. | 13:22:42 |
eveeifyeve | Is nix-meeting now?? | 17:00:31 |