refactor(web/tvl/blog): Update Tvix intro blog post

This incorporates feedback from sterni from cl/4052 and chipb on IRC.

Change-Id: I0547d130dcd578746d5183c563be4b1d042cb5f8
This commit is contained in:
Vincent Ambo 2021-12-01 01:50:16 +03:00
parent 698ec0565a
commit c725f89d8b
2 changed files with 24 additions and 17 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View file

@ -28,7 +28,7 @@ experiments](https://cl.tvl.fyi/c/depot/+/1123/) aimed at improving
the current evaluator and fought [gnarly the current evaluator and fought [gnarly
bugs](https://cl.tvl.fyi/c/depot/+/1504). bugs](https://cl.tvl.fyi/c/depot/+/1504).
After a while we realised that we are treading water: Some of our After a while we realised that we were treading water: Some of our
ideas are too architecturally divergent from Nix to be done on top of ideas are too architecturally divergent from Nix to be done on top of
the existing codebase, and the memory model of Nix causes significant the existing codebase, and the memory model of Nix causes significant
headaches when trying to do any kind of larger change. headaches when trying to do any kind of larger change.
@ -38,10 +38,6 @@ whiteboard in a small flat in Hurghada, Egypt.
![flokli & tazjin brainstorming](https://static.tvl.fyi/latest/files/flokli_tazjin_tvix.webp) ![flokli & tazjin brainstorming](https://static.tvl.fyi/latest/files/flokli_tazjin_tvix.webp)
<!-- TODO(tazjin): Wait for adisbladis approval to use this picture
![adisbladis & tazjin brainstorming](https://static.tvl.fyi/latest/files/adisbladis_tazjin_tvix.webp)
-->
Half a year later we are now ready to announce our new project: Half a year later we are now ready to announce our new project:
**Tvix**, a re-imagined Nix with full nixpkgs compatibility. Tvix is **Tvix**, a re-imagined Nix with full nixpkgs compatibility. Tvix is
generously funded [by NLNet](https://nlnet.nl/project/Tvix/) (thanks!) generously funded [by NLNet](https://nlnet.nl/project/Tvix/) (thanks!)
@ -50,30 +46,41 @@ and we are ready to start implementing it.
The [Tvix The [Tvix
architecture](https://code.tvl.fyi/about/tvix/docs/components.md) is architecture](https://code.tvl.fyi/about/tvix/docs/components.md) is
designed to be modular: It should be possible to write an evaluator designed to be modular: It should be possible to write an evaluator
that plugs in the Guix language, to use arbitrary builders, and to that plugs in the Guile language (for compatibility with GNU Guix), to
replace the store implementation. use arbitrary builders, and to replace the store implementation.
Tvix has these high-level goals: Tvix has these high-level goals:
* Creating an alternative implementation of Nix that is **fully * Creating an alternative implementation of Nix that is **fully
compatible with nixpkgs**, as we believe that most of the value of compatible with nixpkgs**.
Nix currently lives in the massive amount of community contributions
to nixpkgs. The package collection is an enormous effort with hundreds of
* A new Nix language implementation with a more efficient interpreter, thousands of commits, encoding expert knowledge about lots of
and without the strict separation between evaluation and build different software and ways of building and managing it. It is a
phases very valuable piece of software and we must be able to reuse it.
* More efficient Nix language evaluation, leading to greatly increased
performance.
* No more strict separation of evaluation and build phases: Generating
Nix data structures from build artefacts ("IFD") should be supported
first-class and not incur significant performance cost.
* Well-defined interaction protocols for how the three different * Well-defined interaction protocols for how the three different
components (evaluator, builder, store) interact. components (evaluator, builder, store) interact.
* A builder implementation using OCI instead of custom sandboxing * A builder implementation using OCI instead of custom sandboxing
code. code.
![adisbladis & tazjin brainstorming](https://static.tvl.fyi/latest/files/adisbladis_tazjin_tvix.webp)
Tvix is not intended to *replace* Nix, instead we want to improve the Tvix is not intended to *replace* Nix, instead we want to improve the
ecosystem by offering a diversity of implementations. However, we do ecosystem by offering a diversity of implementations. We do not intend
not intend to support experimental features. to support experimental features that are being developed in Nix.
As things ramp up we will be posting more information on this blog, As things ramp up we will be posting more information on this blog,
for now you can keep an eye on for now you can keep an eye on
[`//tvix`](https://cs.tvl.fyi/depot/-/tree/tvix) in the TVL monorepo, [`//tvix`](https://cs.tvl.fyi/depot/-/tree/tvix) in the TVL monorepo
subscribe to [our feed](https://tvl.fyi/feed.atom). and subscribe to [our feed](https://tvl.fyi/feed.atom).
Stay tuned! Stay tuned!