self: Move all modules into a single directory.
authorLudovic Courtès <ludo@gnu.org>
Mon, 7 Jan 2019 21:57:34 +0000 (22:57 +0100)
committerLudovic Courtès <ludo@gnu.org>
Mon, 7 Jan 2019 22:50:56 +0000 (23:50 +0100)
commit49c35bbb71f80bdd7c01b4d74e08335c3ec5331c
treefb35f824e710ac3b401b69c02ea5d3b342fa89bb
parent3c85058c0e29fdff5269cff58f43dfbad92259b6
self: Move all modules into a single directory.

This halves the number of elements in %LOAD-PATH and %LOAD-COMPILED-PATH
and halves the number of 'stat' calls as reported by:

  env -i $(type -P guix) build -e '(@ (gnu packages base) coreutils)' -nd

* guix/self.scm (node-source+compiled, guile-module-union): New
procedures.
(guix-command): Remove 'compiled-modules' parameter.  Remove
'source-directories' and 'object-directories' variables and add
'module-directory'.  Change command so that it adds nothing but
MODULE-DIRECTORY to %LOAD-PATH and %LOAD-COMPILED-PATH.
(whole-package): Remove #:compiled-modules.  Assume MODULES contains
'share/guile/site' and 'lib/guile' and adjust code accordingly.
(compiled-guix): When PULL-VERSION is 1, use 'node-source+compiled'
only.  Remove #:compiled-modules argument to 'whole-package'.
* guix/channels.scm (whole-package-for-legacy): Add 'module+compiled'
and pass it to 'whole-package'.
guix/channels.scm
guix/self.scm