!UNVBThoJtlIiVwiDjU:nixos.org

Staging

361 Members
Staging merges | Running staging cycles: https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+head%3Astaging-next+head%3Astaging-next-25.11 | Review Reports: https://malob.github.io/nix-review-tools-reports/114 Servers

Load older messages


SenderMessageTime
22 Apr 2026
@raitobezarius:matrix.orgraitobezariusok12:23:37
@raitobezarius:matrix.orgraitobezariusI found a shorter reproducer on CppNix12:23:42
@raitobezarius:matrix.orgraitobezarius pkgs.pkgsExtraHardening on CppNix 12:23:47
@raitobezarius:matrix.orgraitobezariusOK, I think I understand what is going on12:27:42
@raitobezarius:matrix.orgraitobezarius Lix won't fail on evaluating pkgs.pkgsExtraHardening but will fail on pkgs.pkgsExtraHardening.stdenv 12:27:57
@raitobezarius:matrix.orgraitobezariusLooks like a forcing/laziness issue somewhere12:28:11
@raitobezarius:matrix.orgraitobezarius So, first of all, withDefaultHardeningFlags do not return a correctly formed stdenv with __bootPackages and that's arguably a pkgsExtraHardening bug 12:28:43
@raitobezarius:matrix.orgraitobezariusSecond, I think we need to rule out should Lix force more thunks here or should CppNix force less thunks12:29:07
@raitobezarius:matrix.orgraitobezarius If Lix can produce a list of attribute keys for pkgs.pkgsExtraHardening but CppNix cannot, either Lix is making up keys that cannot be calculated or CppNix is not lazy enough with respect to the attrset spine thingie 12:29:58
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Maybe easier to compare Lix 2.93/94?12:30:35
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) Those should differ too and it might be easier to gauge whether those differ intentionally 12:30:56
@raitobezarius:matrix.orgraitobezariusMeh I'm sure we will fall in the pointer tagging change and this won't help me understanding what is going on12:31:03
@raitobezarius:matrix.orgraitobezariusI will try analyzing the forcing logic just by reading the frames12:31:31
@raitobezarius:matrix.orgraitobezariusand if I fail, I will think about something else12:31:35
@raitobezarius:matrix.orgraitobezariusfound a nicer reproducer12:49:45
@raitobezarius:matrix.orgraitobezarius nix-instantiate --eval -E 'import ./. { system = "x86_64-darwin"; allowAliases = false; overlays = [ (self: super: { stdenv = super.stdenv.override {}; }) ]; }' 12:49:50
@raitobezarius:matrix.orgraitobezariusCppNix explodes immediately, Lix produces a result12:49:57
@emilazy:matrix.orgemily(nothing better than a language without semantics)12:51:55
@raitobezarius:matrix.orgraitobezariuslet's be even more precise12:52:06
@raitobezarius:matrix.orgraitobezarius nix-instantiate --eval -E 'import ./. { system = "x86_64-darwin"; allowAliases = false; overlays = [ (self: super: { stdenv = super.stdenv // { __bootPackages = throw "bye"; }; }) ]; }' also differs in evaluation 12:52:10
@raitobezarius:matrix.orgraitobezarius it feels like what trips up the __bootPackages is the series of asserts inside the darwin/default.nix entrypoint 12:52:40
@raitobezarius:matrix.orgraitobezariusbut I don't know if this needs to be forced to know the list of package names12:52:58
@raitobezarius:matrix.orgraitobezariusOn a conceptual level, no package name depends on the actual state of stdenv12:53:48
@raitobezarius:matrix.orgraitobezariusThere's no true evaluation bug because CppNix and Lix agrees that pkgs.pkgsExtraHardening.stdenv is cooked12:54:11
@raitobezarius:matrix.orgraitobezarius I don't have time to go deeper right now to pinpoint why the potential assert are thunked somehow in the eval machinery in Lix 12:54:44
@raitobezarius:matrix.orgraitobezariusI will open an issue on the Lix side and pass it to the rest of the core team12:54:53
@raitobezarius:matrix.orgraitobezarius I suggest that override is repaired and is tested wrt to presence of __bootPackages or that AvailabilityVersions do not assume its existence in stdenv because overridden stdenv exist 12:55:16
@raitobezarius:matrix.orgraitobezariusThis unblocks the current failure in Hydra12:55:32
@raitobezarius:matrix.orgraitobezarius release-checks should add something about .stdenv to the package set being evaluated 12:55:48
@raitobezarius:matrix.orgraitobezariusThis will make Lix flag this also unless we deem it to be a bug on our side and will converge to CppNix's evaluation behaviors12:56:04

Show newer messages


Back to Room ListRoom Version: 6