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

From: "pelzflorian (Florian Pelz)" <[email-masked]>
Date: Wed, 6 Mar 2019 19:35:19 +0100

On Wed, Mar 06, 2019 at 02:17:49PM +0100, Ludovic Courtès wrote:
> 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’.

Thank you.  I did not know this is how the daemon determines outputs’
references.  In this case I would understand the manual more easily if
it said:

The output(s) resulting from this derivation will be scanned for
references by the daemon.  They can hold references to all the
dependencies of EXP or a subset thereof.

Please make this more clear in the manual.

Regards,
Florian