[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/07: doc: Update gexp wrt. extensibility.
From: |
Ludovic Courtès |
Subject: |
01/07: doc: Update gexp wrt. extensibility. |
Date: |
Sat, 28 Mar 2015 21:10:53 +0000 |
civodul pushed a commit to branch wip-build-systems-gexp
in repository guix.
commit 14dfcead773b8ca813af780ba8bb053e720c7ab5
Author: Ludovic Courtès <address@hidden>
Date: Sat Mar 28 21:16:36 2015 +0100
doc: Update gexp wrt. extensibility.
This is a followup to bcb1328.
* doc/guix.texi (G-Expressions): Move paragraph about extensibility
below. Remove assumptions that things are either packages or
derivations.
---
doc/guix.texi | 31 ++++++++++++++++---------------
1 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 1736503..162d3e8 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2489,13 +2489,9 @@ Gexps are meant to be written to a file and run or
manipulated by other
processes.
@item
-When a package or derivation is unquoted inside a gexp, the result is as
-if its output file name had been introduced.
-
-Actually this mechanism is not limited to package and derivation
-objects; @dfn{compilers} able to ``lower'' other high-level objects to
-derivations can be defined, such that these objects can also be inserted
-into gexps.
+When a high-level object such as a package or derivation is unquoted
+inside a gexp, the result is as if its output file name had been
+introduced.
@item
Gexps carry information about the packages or derivations they refer to,
@@ -2503,6 +2499,11 @@ and these dependencies are automatically added as inputs
to the build
processes that use them.
@end itemize
+Actually this mechanism is not limited to package and derivation
+objects; @dfn{compilers} able to ``lower'' other high-level objects to
+derivations can be defined, such that these objects can also be inserted
+into gexps.
+
To illustrate the idea, here is an example of a gexp:
@example
@@ -2562,24 +2563,24 @@ or more of the following forms:
@table @code
@item address@hidden
@itemx (ungexp @var{obj})
-Introduce a reference to @var{obj}. @var{obj} may be a package or a
+Introduce a reference to @var{obj}. @var{obj} may have one of the
+supported types, for example a package or a
derivation, in which case the @code{ungexp} form is replaced by its
output file name---e.g., @code{"/gnu/store/@dots{}-coreutils-8.22}.
-If @var{obj} is a list, it is traversed and any package or derivation
-references are substituted similarly.
+If @var{obj} is a list, it is traversed and references to supported
+objects are substituted similarly.
If @var{obj} is another gexp, its contents are inserted and its
dependencies are added to those of the containing gexp.
If @var{obj} is another kind of object, it is inserted as is.
address@hidden address@hidden:@var{output}
address@hidden (ungexp @var{package-or-derivation} @var{output})
address@hidden address@hidden:@var{output}
address@hidden (ungexp @var{obj} @var{output})
This is like the form above, but referring explicitly to the
address@hidden of @var{package-or-derivation}---this is useful when
address@hidden produces multiple outputs (@pxref{Packages
-with Multiple Outputs}).
address@hidden of @var{obj}---this is useful when @var{obj} produces
+multiple outputs (@pxref{Packages with Multiple Outputs}).
@item address@hidden
@itemx address@hidden:output
- branch wip-build-systems-gexp created (now 27044cb), Ludovic Courtès, 2015/03/28
- 01/07: doc: Update gexp wrt. extensibility.,
Ludovic Courtès <=
- 03/07: gnu: bootstrap: Move 'use-modules' forms to the beginning of build expressions., Ludovic Courtès, 2015/03/28
- 05/07: packages: Refer to the native tools when handling sources and downloads., Ludovic Courtès, 2015/03/28
- 07/07: gexp: Micro-optimize sexp serialization., Ludovic Courtès, 2015/03/28
- 04/07: gexp: Slightly simplify 'lower-inputs'., Ludovic Courtès, 2015/03/28
- 02/07: gexp: Add 'local-file'., Ludovic Courtès, 2015/03/28
- 06/07: build-system: Rewrite using gexps., Ludovic Courtès, 2015/03/28