13
submitted 7 months ago by self@awful.systems to c/freeasm@awful.systems

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.

you are viewing a single comment's thread
view the rest of the comments
[-] corbin@awful.systems 4 points 7 months ago

I'm still waiting to hear about how Lix will achieve faster evaluation. I'm worried that they don't actually have such a plan, and are hoping that Rust will magically speed things up.

[-] self@awful.systems 3 points 7 months ago

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)

[-] corbin@awful.systems 3 points 7 months ago

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.

this post was submitted on 06 May 2024
13 points (100.0% liked)

FreeAssembly

75 readers
1 users here now

this is FreeAssembly, a non-toxic design, programming, and art collective. post your share-alike (CC SA, GPL, BSD, or similar) projects here! collaboration is welcome, and mutual education is too.

in brief, this community is the awful.systems answer to Hacker News. read this article for a solid summary of why having a less toxic collaborative community is important from a technical standpoint in addition to a social one.

some posting guidelines apply in addition to the typical awful.systems stuff:

(logo credit, with modifications by @dgerard@awful.systems)

founded 8 months ago
MODERATORS