!9IQChSjwSHXPPWTa:lix.systems

Lix

1134 Members
Lix user channel. Feel free to discuss on-topic issues here and give each other help. For matrix.to links to the rest of the Lix channels, see: https://wiki.lix.systems/books/lix-organisation/page/matrix-rooms313 Servers

Load older messages


SenderMessageTime
7 Apr 2026
@blokyk:matrix.orgzoë (she/her)here's the nix.conf part17:39:44
@blokyk:matrix.orgzoë (she/her) * 17:39:55
@llakala:matrix.orgllakalarepl-overlays was actually originally proposed as a cppnix feature and got bikeshedded by roberth and others for not being flakey enough 17:40:04
@blokyk:matrix.orgzoë (she/her) (and next release, nix repl --help will also have a section about them :p) 17:40:38
@llakala:matrix.orgllakala
In reply to @llakala:matrix.org
repl-overlays was actually originally proposed as a cppnix feature and got bikeshedded by roberth and others for not being flakey enough
see https://github.com/NixOS/nix/pull/10203
17:41:05
@llakala:matrix.orgllakalaa very depressing issue to read through 17:41:27
@vigress9:matrix.org@vigress9:matrix.org removed their display name V. 🏳️‍⚧️.17:46:14
@vigress9:matrix.org@vigress9:matrix.org left the room.17:47:05
@kfiz:matrix.sopado.dekfizFair enough.18:30:30
@maralorn:maralorn.demaralornHuh, hydra was running on lix for a while now? Any lessons learned from that?21:52:45
@raitobezarius:matrix.orgraitobezariuswhat lesson?21:59:01
@maralorn:maralorn.demaralornSomething between "the evaluator regularly crashed" and we saved tons of money because we could switch to a machine with much less ram. 😆22:01:51
@raitobezarius:matrix.orgraitobezariusi surmise that lix is currently less interesting at scale than cppnix given there's still optimizations we are not doing22:02:53
@delroth:delroth.netdelroththe builders run on lix, not the coordinator22:03:19
@raitobezarius:matrix.orgraitobezariusthe last time lix was used for a long time on the hydra build farm, i remember it was in response of a consistently crashing cppnix interpreter22:03:22
@jlamur:matrix.orgJules Lamur

Hey, I don't understand why a nix-store -qR --include-outputs on a deriver does not include the outputs of dependencies.
Could you help me understand what's happening and if that's the expected behavior?

Basically, the question is why does the last command not contains the output of bison (only the deriver)?

$ nix-instantiate --eval https://releases.nixos.org/nixos/25.11-small/nixos-25.11.8880.5a035534a428/nixexprs.tar.xz -A hello.drvPath --raw
/nix/store/0a8f9vx5sdwdx4a27axfkkjznj5navrq-hello-2.12.2.drv
$ nix-store -q -R --include-outputs /nix/store/0a8f9vx5sdwdx4a27axfkkjznj5navrq-hello-2.12.2.drv | grep bison
/nix/store/vgjfnqbxgxa8a5575bhq07nm35b2l31m-bison-3.8.2.tar.gz.drv
/nix/store/i7miyh7832lkyy229nipb5h6zg5n32rc-bison-3.8.2.drv

Does that even make sense to have a dependency on a deriver but not on its output?

22:14:44
@raitobezarius:matrix.orgraitobezariusthe recipe depends on the recipes of others, but not the outputs of others except if the recipe depends on the actual output to build itself22:19:16
@raitobezarius:matrix.orgraitobezariusthe output depends on the outputs of others, including the recipes22:19:22
@raitobezarius:matrix.orgraitobezariusi'm not sure there's "one" good model of dependencies for .drv files22:20:56
@raitobezarius:matrix.orgraitobezarius.drv files in the store are already an hack somewhat22:21:03
@raitobezarius:matrix.orgraitobezariusone advantage i see not to make the bison output appear in that list is that this probably has consequences for nix copy22:21:36
@raitobezarius:matrix.orgraitobezariusif you nix copy only the derivers, you may not want to copy the outputs of the dependencies of the derivers22:21:54
@raitobezarius:matrix.orgraitobezariusbut this could have been designed completely differently i guess?22:22:08
@raitobezarius:matrix.orgraitobezarius("copy as many prebuilt things as possible and the recipes for what is missing", etc.)22:22:19
@jlamur:matrix.orgJules Lamur

I tried to write a small reproducer (with no dependencies on nixpkgs), but I failed to reproduce:

let
  system = "x86_64-linux";
  # just a basic C program that outputs whatever is in $myRefs env var to $out env var
  builder = ./basic_builder;
in rec {
  a = derivation {
    inherit system builder;
    name = "a";
  };
  b = derivation {
    inherit system builder;
    name = "b";
    myRefs = [ a ]; # $myRefs is written by the builder in the output (so they are run-time deps only?)
  };
  c = derivation {
    inherit system builder;
    name = "c";
    myFakeRefs = [ b ]; #myFakeRefs are not used by the builder, (so they are build-time deps only?)
  };
}

And I get that result:

$ nix-store -q -R --include-outputs "$(nix-instantiate --eval --raw -A c.drvPath)"
/nix/store/bdv4b4s9wryp2cd951x276z17s7v1pi3-basic_builder
/nix/store/1rai7c3259jzzc9qj8jbs0yfwk1c6amx-a.drv
/nix/store/c4f5rm2pchf5b1vri68rpa2in03rnlwg-a
/nix/store/whfq9h0h0blyawwq0nd1qnsyagzm3nli-b.drv
/nix/store/gfs6f7kxal5a52ikndfq8fvfpmx0vz08-c.drv
/nix/store/ircx9amlbg2wlxycrcnsv76cv95fx8g1-b
/nix/store/m6gaqy1fh5hkmlippb5cxjx4l6a7ha98-c
22:24:45
@raitobezarius:matrix.orgraitobezariuswhat if you use __structuredAttrs?22:26:20
@raitobezarius:matrix.orgraitobezariusdo you also reproduce with stdenv.mkDerivation ?22:26:35
@jlamur:matrix.orgJules LamurI did not try stdenv.mkDerivation yet22:26:52
@raitobezarius:matrix.orgraitobezariusit's possible that mkDerivation is doing a lot of work22:27:05
@jlamur:matrix.orgJules Lamur(still trying to process your previous comments 😁)22:27:06

Show newer messages


Back to Room ListRoom Version: 10