3 ms·
This is a good analysis. A potential option for his proposed build output format is http://nixos.org/nix/ http://nixos.org/nix/ expressions. Nix is already kin
by trishume 11y ago
This is a good analysis. A potential option for his proposed build output format is http://nixos.org/nix/ http://nixos.org/nix/ expressions.
Nix is already kind of a fusion of a package manager and a build system. It's rather mature, has a decent ecosystem and does a lot of what he is looking for:
- Complete determinism, handling of multiple versions, total dependency graphs
- Parallel builds (using that dependency graph)
- Distribution
One major benefit of a solution like generating Nix files over compiler integration is that it works for cross-language dependencies. A lot of the time integrated solutions break down is for things like if a C extension of a Ruby gem relies on the presence of imagemagick. Nix has no problem handling that kind of dependency.
Also of course it is a lot less work to generate Nix expressions than it is to write a package manager. There are already scripts like https://github.com/NixOS/cabal2nix https://github.com/NixOS/cabal2nix which already solve problems of the packaging system they replace.
- nwmcsween 11y agoLanguage specific tools (compiler in this case) could allow for things such as checking if library foo's api which library bar 'emulates' is sufficient for program c which depends on foo's API. With a lot more effort you could automate all dependency tracking and alternative library compatibility.