!yxFWYdmeLrdzdoIrcE:maralorn.de

nix-output-monitor

93 Members
https://github.com/maralorn/nix-output-monitor30 Servers

Load older messages


SenderMessageTime
19 Nov 2025
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all)tbh i am surprised the json format knows about phases. Isn't that a layer violation? Nix (the evaluator) shouldn't really have knowledge about the concept of stdenv or build phases at all23:14:33
@maralorn:maralorn.demaralornYes, it totally is.23:15:50
@maralorn:maralorn.demaralornI was abhorred when I learned this.23:16:07
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all)i hate this damn language23:16:12
@emma:rory.gayEmma [it/its]I thought build phases were a builtin ngl23:16:43
@k900:0upti.meK900 They're not 23:16:52
@k900:0upti.meK900They're an stdenv-ism23:16:56
@maralorn:maralorn.demaralornBut nix has some kind of special support for them iirc?23:17:45
@k900:0upti.meK900 Yes 23:18:07
@emma:rory.gayEmma [it/its]Now that i can see making sense, but i would've expected a fifo to be exposed in the build env or something for that purpose23:18:50
@whispers:catgirl.cloudwhispers (it/fae) i don't think it does, it's a printf in nixpkgs stdenv 23:19:13
@whispers:catgirl.cloudwhispers (it/fae)https://github.com/NixOS/nixpkgs/blob/ed53e9bfd83a0f16833a17f478b8e11f70462854/pkgs/stdenv/generic/setup.sh#L170823:19:47
@emma:rory.gayEmma [it/its]Does nix just relay any line that haplens to be json or smth?23:19:54
@emma:rory.gayEmma [it/its]Oh huh, i guess theoretically anyone can hook into that23:20:55
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all) nono, nix definitely has a concept of phases: https://github.com/search?q=repo%3ANixOS%2Fnix%20phase&type=code 23:21:35
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all)it even supports running phases individually ???23:21:48
@k900:0upti.meK900Layering violation ecks dee23:22:04
@whispers:catgirl.cloudwhispers (it/fae)oh wow that's. horrid23:22:10
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all) there is a couple disgusting layer violations. E.g. nix knows about outputs (particularly the bin output) to make nix run flakes work. And it also knows about quite a lot in meta. Add build phases to the pile, i guess. 23:22:55
@maralorn:maralorn.demaralornoutputs are a central concept in nix, I don't see how nix knowing about them in general is a layer violation23:24:15
@maralorn:maralorn.demaralornSpecial casing bin might be a violation23:24:50
@maralorn:maralorn.demaralornI mean I guess all of that could be made explicit as nix interface23:25:18
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all)yes, outputs are fine, but knowing about bin is wrong23:27:00
@emma:rory.gayEmma [it/its] Dont you need to know about bin to make nix run work? 23:27:44
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all) tbh if you asked me how to rewrite nix, i'd split the thing into nix and nixpkgs commands, with the former being just evaluator/builder and the latter being a wrapper that adds domain-specific knowledge and assumptions 23:27:48
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all) thats exactly the problem. Flakes are a giant layer violation and should not be part of the evaluator imo. 23:28:13
@emma:rory.gayEmma [it/its]The alternative would be more digging into meta/mainProgram (which it does anyways)23:28:15
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all)like, nix shouldn't fight you if you want to use it for something not nixpkgs-shaped23:29:35
@emma:rory.gayEmma [it/its]I dont think they are, theyre part of the CLI, not the underlying evaluator23:29:37
@grimmauld:grapevine.grimmauld.deGrimmauld (any/all) as it stands you can't really split the two apart 23:30:26

Show newer messages


Back to Room ListRoom Version: 9