- 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.
Was gonna blog this but I’m actively looking for work so need to tone it down a bit
<Disaffected FLOSS community threatens to fork project because of longstanding issues.>
“Hah! Let them fork! Our mightly BDFL will resist all comers!”
<Fork is announced>
“guys this fork says it’s nice to people but it’s actually unkind towards our long-suffering BDFL and his hard work. please be civil”
I regret to tell you that at least one commenter on lobste.rs decided to break their 6mo commenting silence to opine that the site design is too “pink”.
what level of fragile masculinity have we reached where a bog-standard, modular corporate memphis site using pink as an accent color instead of Tech Startup Blue warrants an evaluation that we’ve “left the tech industry” (read: respectability)
please. read What is queer typography? and make like. one singular aesthetic decision in your life that doesn’t conform to someone else’s standards
who knew that an effective firewall against bad faith actors was to make your Nix fork lesbian themed? and speaking of bad faith, holy fuck, some of the takes in that lobste.rs thread
Some people are salty that the threats of forking were actually backed by existing forks I guess.
lobsters are, frankly, deeply unserious site with laughingly bad moderation; you can freely write “debian has grown an apparatchik class”, and this is an acceptable language, but calling the author of the comment “a libertarian bro who uses words they don’t understand” causes the reply to be moderated.
Can’t believe that doofus doesn’t know about T-Mobile. I find that their profile includes several red flags: invited by the sock, no articles submitted, only comments sporadically with opinion-only short jabs, profile is not filled out after months… I’m not saying that they’re a sockpuppet, but they don’t seem like part of the community.
I honestly think the big win coming out of the most recent events is framing https://github.com/nixos/nix as “CppNix”. There are lots of good explanations about how each of the pieces relates to one another, but for practical purposes, many of those pieces live in one place, and now we can all call that place CppNix, which sounds…less than ideal! I think it’s the thing that will make clear just how dependent the whole enterprise is on that piece, and just how tightly that piece is controlled, even if other people on the CppNix team think that something like a fork is overkill and that things are better, because they can only be so good when CppNix is the default for a bunch of things it shouldn’t be. Some of those other team members have been working to make that less true, and I think that’s great, but I think a lot of recent documentation improvements have managed to hide the tight coupling, even if it wasn’t intentional, and this makes it absolutely clear.
One of the really cool bits about this fork is that it exposes the way in which all sorts of parts of the nix ecosystem are required to move in lockstep with cppnix: I tried lix out, and immediately this fails to build if you use hydra (the nix CI system, also headed by edolstra). Surprise: it links in cppnix for some evaluation magic, and does so using unstable APIs that change wildly from release to release.
Much better running buildbot now.
what is the sentiment on tvix here? is it a no-go because of the Yandex connection? If so it would be a shame because TVL is doing some really cool stuff with their monorepo/non-flake setup.
generally interesting but the authors themselves have indicated it’s nowhere near primetime (which limits usefulness/impact);. definitely worthwhile as another avenue, as PoC and testing ground, maybe more?
I understand why they chose this, but I think their failure to recognize the UX improvements of flakes limits their scope unnecessarily. I think they can be much more aggressive about how they cause regressions while acknowledging that maybe having a more structured system is good, even if that system is fundamentally broken in all sorts of ways.
I’m reading their fork of nix’s README and they mention that they don’t agree with flakes as a concept at all. I was previously under the impression that there was some technical limitation with their monorepo that prevented flakes from scaling well. Now I’m not so sure.
What a lovely thing to open my Monday reading with :)
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.
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.