Heya, Thanks for the perfect explanation, Chris. To complement what you wrote:
> More specifically, there are various interpretations of the word > "derivation", depending on the context. For example, there are structs > in the Nix C++ source code that represent derivations [3]. In the Nix > expression language, derivations are represented as attribute sets [4]. > There are also "store derivations", which are files in the store that > precisely encode the build actions that will be executed when the > derivation is built [5]. > > Some of this carries over to Guix. The general meaning of the word > "derivation" appears to be the same as in Nix: a derivation basically > takes inputs and produces an output. Guix also uses "store derivations" > because we use (a modified version of) the Nix daemon. Note that the > Guix manual sometimes uses the word "derivation" to refer to "store > derivations", which can be confusing. The meaning of “derivation” is the same in Guix as in Nix, unsurprisingly: https://www.gnu.org/software/guix/manual/html_node/Derivations.html But it’s true that the manual uses the word “derivation” both to denote the in-memory representation (<derivation> records) and the on-disk representation (.drv files.) Most of the time, at the Scheme level, all you see is <derivation> records. In the context of reepca’s work, the new daemon in Scheme would be able to reuse (guix derivations) and <derivation> records directly. Ludo’.
