derivations: 'derivation' and related procedures return a single value.
authorLudovic Courtès <ludo@gnu.org>
Wed, 18 Sep 2013 15:01:40 +0000 (17:01 +0200)
committerLudovic Courtès <ludo@gnu.org>
Wed, 18 Sep 2013 16:49:53 +0000 (18:49 +0200)
commit59688fc4b5cfac3e05610195a47795f5cc15f338
treea1f498fc498857e65e5002817760c8721c9caf45
parent81b66f8567ea2e3ecb0983318d5dedd3b1332e48
derivations: 'derivation' and related procedures return a single value.

* guix/derivations.scm (derivation->output-path,
  derivation->output-paths): New procedures.
  (derivation-path->output-path): Use 'derivation->output-path'.
  (derivation-path->output-paths): Use 'derivation->output-paths'.
  (derivation): Accept 'derivation?' objects as inputs.  Return a single
  value.
  (build-derivations): New procedure.
  (compiled-modules): Use 'derivation->output-paths'.
  (build-expression->derivation)[source-path]: Add case for when the
  input matches 'derivation?'.
  [prologue]: Accept 'derivation?' objects in INPUTS.
  [mod-dir, go-dir]: Use 'derivation->output-path'.
* guix/download.scm (url-fetch): Adjust to the single-value return.
* guix/packages.scm (package-output): Use 'derivation->output-path'.
* guix/scripts/build.scm (guix-build): When the argument is
  'derivation-path?', pass it through 'read-derivation'.
  Use 'derivation-file-name' to print out the .drv file names, and to
  register them.  Use 'derivation->output-path' instead of
  'derivation-path->output-path'.
* guix/scripts/package.scm (roll-back): Adjust to the single-value
  return.
  (guix-package): Use 'derivation->output-path'.
* guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?'
  objects instead of .drv file names.
* gnu/system/grub.scm (grub-configuration-file): Use
  'derivation->output-path' instead of 'derivation-path->output-path'.
* gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise.
* tests/builders.scm, tests/derivations.scm, tests/packages.scm,
  tests/store.scm, tests/union.scm: Adjust to the new calling
  convention.
* doc/guix.texi (Defining Packages, The Store, Derivations): Adjust
  accordingly.
18 files changed:
doc/guix.texi
gnu/system/grub.scm
gnu/system/vm.scm
guix/build-system/cmake.scm
guix/build-system/gnu.scm
guix/build-system/perl.scm
guix/build-system/python.scm
guix/derivations.scm
guix/download.scm
guix/packages.scm
guix/scripts/build.scm
guix/scripts/package.scm
guix/ui.scm
tests/builders.scm
tests/derivations.scm
tests/packages.scm
tests/store.scm
tests/union.scm