- cross-posted to:
- linux@lemmy.ml
- cross-posted to:
- linux@lemmy.ml
it can’t be overstated how important the Nix evaluator is to the Nix ecosystem; it implements the Nix language and package manager, maintains the store, has a hand in the low-level workings of every Nix tool, and is the focus of the push by Eelco and friends to commercialize Nix and keep it appealing to military-industrial interests.
all of the above is why I joined the Aux CLI SIG, which focuses on maintaining a fork of the Nix evaluator for the Aux ecosystem. but just now I saw the announcement for Lix, a Nix evaluator fork that focuses on modernizing the codebase (including gradually replacing C++ with Rust), maintaining correctness (something the upstream evaluator has been notoriously struggling with lately), and doing right by its community. I found myself nodding along to their description of the project and feeling something I haven’t felt since I read the open letter — I’m finally feeling excited for the future of the technology behind Nix.
I have no idea if Lix will become Aux’s chosen evaluator fork, though the Aux CLI SIG can help determine that collectively (and I’ll have many more details on Aux in a post later tonight). here’s what’s truly exciting though: by following Lix’s install steps and pulling auxpkgs-unstable, we can have a package ecosystem and NixOS fork that’s completely independent of the Nix community, and we can have it right now. I’m so excited by that news that I’m going to spin up a host just to give Lix+auxpkgs a try later tonight.
here’s the Aux thread about Lix; so far, there’s a lot of high-level support and excitement for using it as Aux’s evaluator.
nah, there’s actually low-hanging fruit here, especially when it comes to flakes. my impression is that Rust is part of a much-needed effort to make the evaluator more maintainable (as CppNix is reputedly a bit of a shitshow on the inside), but the performance improvements will most likely involve a new version of flakes (and I believe a flake versioning scheme is on their short-term roadmap)
I guess. This doesn’t really match my experience at all, though; in particular, Nix was slow to evaluate back when we all used
nix-env
, and I’m not sure why flakes would matter much to evaluation performance. It reminds me of Hugs; surely at some point we should invent a GHC instead.