| 28 Jul 2025 |
jade_ | plausible | 00:23:02 |
jade_ | i think ninja also tries to stop process output from getting interleaved too bad | 00:23:12 |
emily | (might be dependent on it not streaming all build logs to the terminal. but that's at least an available/default mode here, too) | 00:23:16 |
jade_ | your daily reminder that 50% of the problems in nix are the protocol being an absolutely cooked design :( | 00:23:50 |
just1602 | The nix idea wasn't bad, but it would have taken another PhD thesis to properly implement the protocol đŸ˜… | 00:24:54 |
raitobezarius | In reply to @esperlily:matrix.org oh hey you just merged 3765 as I was reading through it. I was going to ask, why are we still copying the file when we have no chroot? don't we just need to set NIX_SSL_CERT_FILE to point at the caFile in that case? I'm so sorry | 00:28:38 |
raitobezarius | In reply to @esperlily:matrix.org oh hey you just merged 3765 as I was reading through it. I was going to ask, why are we still copying the file when we have no chroot? don't we just need to set NIX_SSL_CERT_FILE to point at the caFile in that case? no chroot doesn't mean that there's no sandbox policy applied no? | 00:29:08 |
jade_ | okay fyi the build jobs are running as Utility (presumably alongside the daemon) | 01:05:05 |
emily | maybe the QoS needs to be higher then :) | 01:05:33 |
emily | though user interactive sounds like it would be interesting | 01:05:56 |
emily | but worth a try at least… | 01:05:58 |
jade_ | .. whereas if i run them in a terminal via like, ninja to build a normal lix from source, it's Default | 01:06:07 |
emily | right | 01:06:17 |
emily | utility is what it's meant to be | 01:06:36 |
emily | but it does mean sacrificing perf | 01:06:40 |
emily | user-initiated might be good to try | 01:06:45 |
jade_ | i am wondering if the nix daemon itself should be at U-Init or Default | 01:08:12 |
jade_ | because it is likely to be the one causing the blocking | 01:08:24 |
jade_ | worried that might possibly starve the UI tho, so it might be at our own peril to up-schedule ourselves | 01:09:43 |
emily | yeah that's what I mean, just wrap the daemon to get it as user-initiated | 01:12:25 |
emily | I don't think it's correct but it's worth trying | 01:12:30 |
emily | the actual correct thing to do is to make sure IPC happens via Mach ports, which will automatically "donate" the QoS class of the client to processes it talks to while they service its request | 01:12:53 |
emily | so a terminal-initiated build would raise the spawned builds to default but one from a background service wouldn't | 01:13:10 |
jade_ | i would put "correct" in quotes tho | 01:13:13 |
emily | I think there is no inherent obstacle to doing this with capnproto | 01:13:18 |
jade_ | since that is very not portable | 01:13:20 |
emily | it's pretty portable if you have a transport-agnostic RPC layer already | 01:13:32 |
jade_ | and i worry that it might make debugging annoying | 01:13:33 |
emily | they're pretty comparable to Unix sockets, can even pass FDs | 01:13:39 |
jade_ | * and i worry that it might make debugging/running one-off daemons annoying | 01:13:43 |