Packages of some languages rely heavily on propagation. R is one example. Since the generated “manifest” file of a Guix profile records entries for all propagated packages, this can get really big really quickly.
A profile consisting only of four R packages (r-seurat, r-cistopic, r-monocle3, and r-cicero-monocle3) results in a “manifest” file that weighs 7.1MB. At the MDC I repeatedly encountered manifest files that are exceeding 24MB. Simply reading that big a file with (call-with-input-file "huge-manifest" read) takes several seconds. On the MDC cluster I observed a delay of about 27 seconds. Disabling read positions with (read-disable 'positions) significantly speeds this up (18s vs 27s), but it’s still very slow. We may be able to speed things up by supporting definitions or references in manifest files, so that we don’t need to repeat a sub-tree when generating the file. -- Ricardo