On Thu, Nov 16, 2023, at 10:14 AM, Ludovic Courtès wrote:
My take is that the daemon rewrite in Guix will aim for 100%
compatibility at the protocol level (in fact part of what’s needed is
already available as (guix …) modules), probably with just the same
feature set. Christopher Baines may have clearer ideas.
Excellent!
I am glad that Florian already emailed about this, I had similar thoughts.
I have long been a proponent of ensuring interoperability in the "store layer" between Nix, Guix, Tvix, and anyone else that wants to have an implementation. (To me, the daemon is just one possible implementation, an RPC bridge to another implementation.) There are some good developments on the Nix side in this space I've been meaning to email this mailing list about. Glad the recent guix-daemon work and ensuing discussion are finally getting me to do so! Here they are:
Furthermore, I hope that beyond merely ensuring some interop with what we have already, we work to further keep things in sync and hopefully converging (where was have diverging new features like Blake hashing in Guix and content-addressed derivations in Nix) going forward. To that end, I would love to set up an implementation-agnostic standard, maybe even an IETF standard (!).
I think while we all have different ideas (and should continue to have different ideas!) on what the user-facing package language looks like, we do essential agree on what this store interface looks like. It is a "narrow waist" which can be implemented numerous different ways, and used in numerous different high level packaging paradigms. It is this quality that makes it so worthy of standardization.
I’m interested in hearing how you view content-addressing and its use.
In Guix there’s one proposal based on ERIS:
Previously there was an experiment to implement what you described at
“partial substitution”:
It sounds like this ERIS plan and Tvix's content addressing are fairly similar --- use improved content addressing "underneath the hood". The thing I have been working on is trying to expose content-addressing all the way into the store path for end-to-end trustlessless.
----------
That's a big wall of text, but glad it's all out there. Stuff is really cooking in all our ecosystems these days, and I'm very excited for where things are going!
John