import: pypi: Detect inputs.
* guix/import/pypi.scm (python->package-name, maybe-inputs, compute-inputs,
guess-requirements): New procedures.
* guix/import/pypi.scm (guix-hash-url): Now takes a filename instead of an
URL as input.
* guix/import/pypi.scm (make-pypi-sexp): Now tries to generate the inputs
automagically.
* tests/pypi.scm: Update the test.
Add (guix cpio).
* guix/cpio.scm, tests/cpio.scm: New files.
* Makefile.am (MODULES): Add guix/cpio.scm.
(SCM_TESTS): Add tests/cpio.scm.
tests: Move 'file=?' to (guix tests).
* tests/nar.scm (file-tree-equal?)[file=?]: Move to...
* guix/tests.scm (file=?): ... here. New procedure.
Merge branch 'master' into core-updates
Merge branch 'master' into core-updates
Add 'guix size'.
* guix/scripts/size.scm: New file.
* Makefile.am (MODULES): Add it.
(SCM_TESTS): Add tests/size.scm.
* doc.am (SUBCOMMANDS): Add 'size'.
* po/guix/POTFILES.in: Add guix/scripts/size.scm.
* tests/size.scm: New file.
* doc/guix.texi (Packages with Multiple Outputs): Add xref to "Invoking guix
size".
(Invoking guix size): New node.
(Invoking guix gc): Add index for "closure" and xref to the above.
* doc/contributing.texi (Submitting Patches): Use @enumerate for the check
list. Add item about 'guix size'.
Merge branch 'master' into core-updates
Conflicts:
gnu/packages/commencement.scm
gnu/packages/xml.scm
tests: Avoid sequence of zero expressions.
* tests/records.scm ("define-record-type* with let* behavior"): Add missing
body for clause.
records: Add support for 'innate' fields.
* guix/records.scm (make-syntactic-constructor): Add #:innate parameter.
[record-inheritance]: Honor it.
[innate-field?]: New procedure.
(define-record-type*)[innate-field?]: New procedure.
Pass #:innate to 'make-syntactic-constructor'.
* tests/records.scm ("define-record-type* & inherit & innate",
"define-record-type* & thunked & innate"): New tests.
Merge branch 'master' into core-updates
guix-register: Perform deduplication even when --prefix is passed.
Fixes <http://bugs.gnu.org/19044>.
* nix/guix-register/guix-register.cc (register_validity): Change the (optimize
&& prefix.empty ()) condition to just (optimize). Change settings.nixStore
around the loop. Prepend PREFIX to the argument passed to 'optimisePath'.
* tests/guix-register.sh: Use 'guix-register -p' with duplicate files, and
make sure they are deduplicated on the target. Adjust existing tests.
tests: Make the daemon socket explicit in guix-register test.
* tests/guix-register.sh: Define GUIX_DAEMON_SOCKET. Pass it explicitly to
'open-connection'.
import: hackage: Refactor parsing code and add new options.
* guix/import/cabal.scm: New file.
* guix/import/hackage.scm: Update to use the new Cabal parsing module.
* tests/hackage.scm: Update tests.
* guix/scripts/import/hackage.scm: Add new '--cabal-environment' and '--stdin'
options.
* doc/guix.texi: ... and document them.
* Makefile.am (MODULES): Add 'guix/import/cabal.scm',
'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'.
(SCM_TESTS): Add 'tests/hackage.scm'.
monads: Allow n-ary '>>=' expressions.
Suggested by Federico Beffa <beffa@fbengineering.ch>.
* guix/monads.scm (bind-syntax): New macro.
(with-monad): Use it instead of 'identifier-syntax'.
* tests/monads.scm (">>= with more than two arguments"): New test.
* doc/guix.texi (The Store Monad): Explain that there can be several MPROC.
Add an example.
store: Add 'verify-store' RPC.
* guix/store.scm (operation-id): Add 'verify-store'.
(verify-store): New procedure.
(set-build-options): Adjust comment.
* tests/store.scm ("verify-store", "verify-store + check-contents"): New
tests.
gexp: Add 'plain-file'.
* guix/gexp.scm (<plain-file>): New type.
(plain-file, plain-file-compiler): New procedures.
* tests/gexp.scm ("one plain file"): New test.
* doc/guix.texi (G-Expressions): Document 'plain-file'.
base32: Use a custom error condition instead of 'misc-error'.
Suggested by Christopher Allan Webber <cwebber@dustycloud.org>.
* guix/base32.scm (&invalid-base32-character): New error condition.
(make-base32-string->bytevector): Use it instead of 'error'.
* tests/base32.scm ("&invalid-base32-character"): New test.
monads: 'foldm', 'mapm', and 'anym' now take a list of regular values.
* guix/monads.scm (foldm, mapm, anym): Change to take a list of regular
values as is customary.
* tests/monads.scm ("mapm", "anym"): Adjust accordingly.