4ff12d1de7
Fixes <https://issues.guix.gnu.org/55499>. Reported by Ricardo Wurmus <rekado@elephly.net>. With this change, the manifest file created for: guix install r r-seurat r-cistopic r-monocle3 r-cicero-monocle3 r-assertthat goes from 5.7M to 176K. Likewise, on this profile, wall-clock time of: GUIX_PROFILING=gc guix package -I goes from 0.7s to 0.1s, with heap usage going from 55M to 9M. * guix/profiles.scm (manifest->gexp)[optional]: New procedure. [entry->gexp]: Turn into a monadic procedure. Return a 'repeated' sexp if ENTRY was already visited before. Adjust caller accordingly. Bump manifest version. (sexp->manifest)[sexp->manifest-entry]: Turn into a monadic procedure. Add case for 'repeated' nodes. Add each entry to the current state vhash. Add clause for version 4 manifests. [sexp->manifest-entry/v3]: New procedure, with former 'sexp->manifest-entry' code. * tests/profiles.scm ("deduplication of repeated entries"): New test. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths)[let-fields]: New macro. Use it. Expect version 4. Add clause for 'repeated' nodes. |
||
---|---|---|
.. | ||
maven | ||
android-ndk-build-system.scm | ||
android-repo.scm | ||
ant-build-system.scm | ||
asdf-build-system.scm | ||
bournish.scm | ||
bzr.scm | ||
cargo-build-system.scm | ||
cargo-utils.scm | ||
chicken-build-system.scm | ||
clojure-build-system.scm | ||
clojure-utils.scm | ||
cmake-build-system.scm | ||
compile.scm | ||
copy-build-system.scm | ||
cvs.scm | ||
debug-link.scm | ||
download-nar.scm | ||
download.scm | ||
dub-build-system.scm | ||
dune-build-system.scm | ||
elm-build-system.scm | ||
emacs-build-system.scm | ||
emacs-utils.scm | ||
font-build-system.scm | ||
git.scm | ||
glib-or-gtk-build-system.scm | ||
gnu-bootstrap.scm | ||
gnu-build-system.scm | ||
gnu-dist.scm | ||
go-build-system.scm | ||
graft.scm | ||
gremlin.scm | ||
guile-build-system.scm | ||
haskell-build-system.scm | ||
hg.scm | ||
java-utils.scm | ||
json.scm | ||
julia-build-system.scm | ||
linux-module-build-system.scm | ||
lisp-utils.scm | ||
make-bootstrap.scm | ||
maven-build-system.scm | ||
meson-build-system.scm | ||
meson-configuration.scm | ||
minetest-build-system.scm | ||
minify-build-system.scm | ||
node-build-system.scm | ||
ocaml-build-system.scm | ||
pack.scm | ||
perl-build-system.scm | ||
po.scm | ||
profiles.scm | ||
python-build-system.scm | ||
qt-build-system.scm | ||
qt-utils.scm | ||
r-build-system.scm | ||
rakudo-build-system.scm | ||
rebar-build-system.scm | ||
renpy-build-system.scm | ||
ruby-build-system.scm | ||
scons-build-system.scm | ||
store-copy.scm | ||
svn.scm | ||
syscalls.scm | ||
texlive-build-system.scm | ||
union.scm | ||
utils.scm | ||
waf-build-system.scm |