Subject: bug#34574: Confusing manual entry for gexp->file

From: Ludovic Courtès <[email-masked]>
Date: Wed, 06 Mar 2019 14:17:49 +0100

Hi Florian,

"pelzflorian (Florian Pelz)" <[email-masked]> skribis:

> The Guix manual contains the following description of gexp->file:
>
>  -- Monadic Procedure: gexp->file NAME EXP [#:set-load-path? #t]
>           [#:module-path %load-path]  [#:splice? #f]  [#:guile
>      (default-guile)] Return a derivation that builds a file NAME
>      containing EXP. When SPLICE? is true, EXP is considered to be a
>      list of expressions that will be spliced in the resulting file.
>
>      When SET-LOAD-PATH? is true, emit code in the resulting file to set
>      ‘%load-path’ and ‘%load-compiled-path’ to honor EXP’s imported
>      modules. Look up EXP’s modules in MODULE-PATH.
>
>      The resulting file holds references to all the dependencies of EXP
>      or a subset thereof.
>
> I do not understand this last sentence.  How can it be a subset?  A
> subset of what?  Can this be explained more clearly or removed?

It can be a subset of the references of EXP because, when a build
completes, the daemon scan the output(s) to determine the set of
residual references.  That’s the difference between build-time and
run-time dependencies.

For instance, ‘sed’ depends on ‘gcc’ and ‘gcc:lib’ at build time, but
its output depends only on ‘gcc:lib’.

Does that make sense?

Ludo’.