!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

422 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.142 Servers

Load older messages


SenderMessageTime
28 Jul 2025
@jade_:matrix.orgjade_okay fyi the build jobs are running as Utility (presumably alongside the daemon)01:05:05
@emilazy:matrix.orgemilymaybe the QoS needs to be higher then :)01:05:33
@emilazy:matrix.orgemily though user interactive sounds like it would be interesting 01:05:56
@emilazy:matrix.orgemilybut worth a try at least…01:05:58
@jade_:matrix.orgjade_.. whereas if i run them in a terminal via like, ninja to build a normal lix from source, it's Default01:06:07
@emilazy:matrix.orgemilyright01:06:17
@emilazy:matrix.orgemily utility is what it's meant to be 01:06:36
@emilazy:matrix.orgemilybut it does mean sacrificing perf01:06:40
@emilazy:matrix.orgemilyuser-initiated might be good to try01:06:45
@jade_:matrix.orgjade_i am wondering if the nix daemon itself should be at U-Init or Default01:08:12
@jade_:matrix.orgjade_because it is likely to be the one causing the blocking01:08:24
@jade_:matrix.orgjade_worried that might possibly starve the UI tho, so it might be at our own peril to up-schedule ourselves01:09:43
@emilazy:matrix.orgemilyyeah that's what I mean, just wrap the daemon to get it as user-initiated01:12:25
@emilazy:matrix.orgemily I don't think it's correct but it's worth trying 01:12:30
@emilazy:matrix.orgemilythe 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 request01:12:53
@emilazy:matrix.orgemilyso a terminal-initiated build would raise the spawned builds to default but one from a background service wouldn't01:13:10
@jade_:matrix.orgjade_i would put "correct" in quotes tho01:13:13
@emilazy:matrix.orgemilyI think there is no inherent obstacle to doing this with capnproto01:13:18
@jade_:matrix.orgjade_since that is very not portable01:13:20
@emilazy:matrix.orgemilyit's pretty portable if you have a transport-agnostic RPC layer already01:13:32
@jade_:matrix.orgjade_and i worry that it might make debugging annoying01:13:33
@emilazy:matrix.orgemilythey're pretty comparable to Unix sockets, can even pass FDs01:13:39
@jade_:matrix.orgjade_* and i worry that it might make debugging/running one-off daemons annoying01:13:43
@emilazy:matrix.orgemilybut of course it does require everything to be using capnproto already01:13:51
@emilazy:matrix.orgemily(I assume Unix socket and over-the-network transports will need to coexist anyway for remote builds, so another local transport doesn't seem like too much additional complexity)01:14:19
@jade_:matrix.orgjade_are mach ports api compatible by presenting fds?01:14:22
@jade_:matrix.orgjade_* are mach ports api compatible by presenting an fd based interface?01:15:12
@emilazy:matrix.orgemilythey're not stream sockets, no01:15:21
@emilazy:matrix.orgemilythey would need implementing as a backend in capnproto01:15:39
@jade_:matrix.orgjade_ah. that's kiiiinda annoying in that it's more darwin only code, but if we can keep it contained it might be okay01:16:34

Show newer messages


Back to Room ListRoom Version: 10