Skip to content

Comment on Tvix: We Are Rewriting Nixparent

Comments

it's good to see an ecosystem forming around the derivation data type, with the possibility of reuse across projects that use derivations.

Guix used to use the same derivation format as Nix, but they've since diverged

TIL. Do you have any links that go into more detail about these differences?

I don't have a link with low-level details, but this talk highlighted the main differences: https://xana.lepiller.eu/guix-days-2020/guix-days-2020-andre...

Does Guix have any performance issues?

Sure, just different ones. Compiling Guix and its package modules (aka 'guix pull') takes minutes on powerful hardware, and is nigh impossible on low-end systems. Computing derivations that import a lot of Guile/Guix modules can take some time for the same reason. These computations are cached of course, but still change frequently enough that you'll notice if you have to build them locally (i.e. custom packages not in Guix proper).

OTOH, Guix operates on in-memory representations of profiles, packages and derivations, and delays using the store until an actual build needs to be performed; whereas I believe Nix keeps making RPC's to the store during evaluation (please correct me if this is wrong).

I don't think adding Guix support to Tvix is as easy as plugging in a Guile evaluator, as the Nix tooling would not be able to understand the higher-level abstractions in Guix. You really need Guix and all its supporting modules to evaluate Guix packages.

Thank you! I am wondering, is there a ticket open to follow for optimizing Guix?

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.