1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00
Files
guix/tests
Ludovic Courtès 4ff12d1de7 profiles: Do not repeat entries in 'manifest' file.
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.
2022-07-01 23:29:16 +02:00
..
2021-09-17 01:27:40 +02:00
2020-12-21 17:47:35 +01:00
2022-05-22 01:07:52 +02:00
2022-05-25 09:28:43 +02:00
2022-02-14 11:23:07 +01:00
2020-12-09 22:25:17 +01:00
2021-09-28 22:00:47 +02:00
2022-05-25 09:28:43 +02:00
2022-06-15 10:18:34 +02:00
2021-04-12 18:42:22 +02:00
2021-12-23 10:54:00 +01:00
2022-07-01 12:10:29 +02:00
2019-03-24 00:13:53 +01:00
2019-04-10 17:09:47 +02:00
2019-06-14 21:57:39 +02:00