analysing a source-only-based distro (one where the compiler is required as a dependency) should make the importance of the compiler(s) clearer.
source-only distros include macports, gentoo, and so on.
Guix and Nix _are_ source-based distros. They just happen to have a facility for transparently downloading "binary substitutes" for local builds.
The graphs I'm traversing are the build-time dependency graph of all packages. I could also traverse run-time dependency graphs, but then I'd need to actually build all the things, because those are not known up-front unlike Gentoo and Macports.
The reason the toolchain is missing is because it is an "implicit input" as opposed to a "normal" input, so it's invisible/transparent to the query I'm making.
I wrote a script that lists the number of dependents for each package in Guix by traversing the package graphs:
https://gist.github.com/mbakke/f354272666fbef09c5229f7b85377...
Running it takes about 16 seconds on my laptop, and piping to 'grep -v bootstrap | sort -rn | tail -n 20' gives:
(GCC, glibc and binutils are missing for complicated reasons, but should be up there with Guile)By changing (all-packages) on line 26 to:
We get the most popular Python projects: This approach misses "end user" packages such as browsers and QEMU, but provides some insight into high value targets.For end user packages, Debians "popularity contest" can be useful:
https://popcon.debian.org/