| 12 Jan 2026 |
emily | Randy Eckenrode: how valuable are the libiconv tests? | 16:12:35 |
emily | it looks like ATF pulls in Lua and soon Tcl to the bootstrap because of running them. maybe they could just be a passthru.tests instead? | 16:13:49 |
emily | the Tcl would be via SQLite; if we can disable SQLite in our bootstrap Python then we get SQLite out of the bootstrap and avoid Tcl | 16:14:12 |
emily | (will try to review the LLVM override PR today btw, swamped…) | 16:14:26 |
Randy Eckenrode | I implemented them as a check to make sure it’s working correctly. We could move them passthru.tests as long as they are run at some point. | 16:27:43 |
Randy Eckenrode | I’m pretty sure I address all feedback. It’s not required for Swift 6.2, but it may be for Swift 6.3. | 16:28:27 |
emily | samasaur: if you would like an exploratory stdenv errand to get your feet wet, it would be interesting to float darwin.libiconv's doInstallCheck to a package parameter, turn it off by default, add a passthru.tests that overrides it on, disable withSqlite in the pkgs/stdenv/darwin/default.nix Python, and then a bunch of stuff can probably be dropped from stage1Packages (e.g. kyua, sqlite, atf at least) and the use of bootstrapStdenv in atf | 16:47:50 |
emily | and then we can see how much that drops from nix-store -qR <stdenv.drv> | sed 's|/nix/store/[a-z0-9]*-||' | sort | 16:48:22 |
emily | (of course we need to make sure it actually builds too) | 16:48:27 |
samasaur | that seems straightforward enough (🤞), will give it a shot later today | 17:57:14 |
emily | feel free to ping me if you need any help :) | 18:06:02 |
emily | looks like there's already overrides/stage1Packages in there that are no longer used… e.g. scons | 18:06:51 |
emily | Randy Eckenrode: do you think there's a way we could make stage1Packages error out if packages aren't used so we know we can clean up overrides etc.? | 18:07:12 |
samasaur | is there an easy way to check whether packages are unused, even manually? the only thing that's coming to mind is removing them and running builds | 18:09:13 |
samasaur | I mean in smaller situations spot checking/LSPs will work but my impression is that this case is too complex for those to work well | 18:09:39 |
emily | nix-store -qR again | 18:10:58 |
emily | shion:~/Developer/nixpkgs (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg scons
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭
| 18:11:10 |
emily | so the scons overrides are just dead code | 18:11:26 |
emily | in fact a ton of stage1Packages seem to be
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg cyrus
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg brotli
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg subversion
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭
now I'm wondering if I've somehow misunderstood how stage1Packages works
| 18:12:23 |
Randy Eckenrode | passthru.tests that greps nix-store -qR <stdenv.drv> for those paths and fails if they aren’t there? | 18:13:36 |
emily | I guess there's not much we can do at eval time | 18:14:01 |
samasaur | In reply to @emilazy:matrix.org
nix-store -qR again ah i was thinking this would show them even if they were unused | 18:14:36 |
Randy Eckenrode | I would like to try structuring the bootstrap as a cross (with prevStage really being buildPackages). It probably wouldn’t reduce the number of builds, but it might allow is to drop most of the overlays. | 18:15:02 |
Randy Eckenrode | But that is like 26.11 or 27.05 stuff. | 18:15:28 |
Randy Eckenrode | Aside from this cleanup, I want to switch Darwin to LLD by default. That will require some work because LLD is not wrapped properly for that. | 18:16:01 |
Randy Eckenrode | No cctools or ld64 should be in the bootstrap at that point. | 18:16:51 |
emily | hmm, do we actually use python3-bootstrap as our final pkgs.python3? | 18:17:36 |
emily | does that mean Darwin gets Python without any LTO? | 18:17:41 |
Randy Eckenrode | I also want to drop the source releases from the SDK and vendor the needed sources along with the others. | 18:18:00 |
emily | or is it just that we use one python3-bootstrap build throughout the entire bootstrap but then it gets built once more for the real python3? | 18:18:13 |