This reduces the number of lookups in the 'add-data-to-store' cache from
2705 to 2685 (hit rate: 10% to 9%) when running:
GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd
* gnu/packages/bootstrap.scm (raw-build)[->store]: Use 'lower-object'
instead of 'origin->derivation'. This allows the origin-to-derivation
mapping to be cached.
This reduces the number of lookups in the 'add-data-to-store' cache from
2743 to 2705 (hit rate: 11% to 10%) when running
GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd
The execution time of "guix build libreoffice -nd" goes from 1.80s to 1.78s.
* gnu/packages/bootstrap.scm (bootstrap-origin): Return SOURCE unchanged
when its has no patches and no snippet.
Its hit rate was only 8%. Removing it reduces heap size of "guix build
libreoffice -nd" from 69MiB to 61MiB and the wall-clock time is unchanged.
* guix/derivations.scm (derivation->bytevector): Change from 'mlambda'
to 'lambda'.
This reduces the number of 'add-data-to-store' cache lookups from 3329
to 2743 (hit rate: 27% to 11%) when running:
GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd
Execution time of "guix build libreoffice -nd" goes from 1.86s to 1.80s.
* guix/gexp.scm (imported+compiled-modules): Wrap body in 'mcached'.
* guix/store.scm (cache-object-mapping): Add #:vhash-cons parameter and
honor it.
(lookup-cached-object): Add #:vhash-fold* parameter and honor it.
(%mcached): Add #:vhash-fold* and #:vhash-cons and honor them.
(mcached): Add clauses with 'eq?' and 'equal?' as the first argument.
* guix/gexp.scm (imported+compiled-modules): New procedure.
(lower-gexp): Use it instead of separate calls to 'imported-modules' and
'compiled-modules'.
This reduces the number of lookups in the 'add-data-to-store' cache from
7505 to 3329 (hit rate from 68% to 27%) when running:
GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd
The execution time of "guix build libreoffice -nd" goes from 2.12s to 1.87s.
* guix/derivations.scm (%module-cache): New variable.
(imported+compiled-modules)[key]: New variable.
Lookup KEY in %MODULE-CACHE and populate %MODULE-CACHE upon cache miss.
* guix/derivations.scm (imported+compiled-modules): New procedure.
(build-expression->derivation): Use it instead of separate calls to
'%imported-modules' and '%compiled-modules'.
* gnu/packages/crates-io.scm: Rename all packages to contain version
string.
[source]: Rename all downloaded files to use '.crate'.
[arguments]: Remove all cargo-inputs and cargo-development-inputs.
Comment out all custom phases to link to external libraries.
[native-inputs, inputs]: Comment out all inputs.
[properties]: Mark all packages hidden.
Fixes the example given at <https://issues.guix.gnu.org/issue/37942>.
* gnu/packages/gnome.scm (meld)[inputs]: Add gsettings-desktop-schemas.
[arguments]: Add (guix build glib-or-gtk-build-system) to #:modules
and #:imported-modules. Use its ‘glib-or-gtk-wrap’ phase.
* /gnu/packages/patchutils.scm: (meld)[inputs]: Replace gtksourceview with
gtksourceview-3.
[arguments]<#:phases>[wrap-typelib]: New phase.
Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>