Motivation



The goal is to get rid of Perl as runtime dependency for Nix package manager.



This will have many implications:



- reduce closure size of Nix by 50 MB

- Nix will be written only in C++ (and some bash)

- better cross-platform (cross compile) support



Level of effort



The work consists of converting each of the scripts in the scripts/ directory (except the shell scripts, nix-http-export, nix-reduce-build, and show-duplication) into standalone c++ programs.



It may be natural to add some stuff to core Nix libraries as part of that.



If necessary for external projects (e.g. hydra) the nix/perl directory can be kept there and built as a separate package.



Note: Manifests (preceeding binary caches) and binary patching (depends on manifests) won't be ported as part of this effort. The feature will be dropped.



Developer: Shea Levy



Shea is a core contributor to NixOS ecosystem in general. He is also second top contribor to Nix (by number of commits).



Shea is going to implement this proposal if we meet the funding goal.

Read more