Subject: bug#44760: Closure copy in ‘guix system init’ is inefficient

From: Jonathan Brielmaier <[email-masked]>
Date: Wed, 16 Dec 2020 22:53:22 +0100

Hi Ludo,

there seems to be another regression in this series.

Pulling from 6a060ff27ff68384d7c90076baa36c349fff689d gives:
```
[ 1/20] Loading './guix/base32.scm'...

[ 2/20] Loading './guix/build/store-copy.scm'...

[ 3/20] Loading './guix/build/syscalls.scm'...

[ 4/20] Loading './guix/build/utils.scm'...

[ 5/20] Loading './guix/combinators.scm'...

[ 6/20] Loading './guix/progress.scm'...

[ 7/20] Loading './guix/records.scm'...

[ 8/20] Loading './guix/serialization.scm'...

[ 9/20] Loading './guix/sets.scm'...

[10/20] Loading './guix/store/deduplication.scm'...

;;; Failed to autoload copy-file/deduplicate in (guix store deduplication):

;;; no code for module (gcrypt hash)

Backtrace:

          17 (primitive-load "/gnu/store/1fwvy0fz6zfgnyq1mj5pn8mfin7?")

In ice-9/eval.scm:

    619:8 16 (_ #f)

In srfi/srfi-1.scm:

   460:18 15 (fold #<procedure 7fffeeb741e0 at ice-9/eval.scm:336:1?> ?)

   460:18 14 (fold #<procedure 7fffeeb81ac0 at ice-9/eval.scm:336:1?> ?)

   460:18 13 (fold #<procedure 7fffeecdaf20 at ice-9/eval.scm:336:1?> ?)

In ice-9/eval.scm:

    619:8 12 (_ #(#(#<directory (guix build utils) 7fffef187d20>) # ?))

In ice-9/boot-9.scm:

   2806:4 11 (save-module-excursion #<procedure 7fffeecdad40 at ice-?>)

In unknown file:

          10 (primitive-load "./guix/store/deduplication.scm")

In ice-9/eval.scm:

   721:20  9 (primitive-eval (define-module (guix store #) # (# #) ?))

In ice-9/psyntax.scm:

  1241:36  8 (expand-top-sequence ((define-module (guix store #) ?)) ?)

  1233:19  7 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)

   285:10  6 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) ?)

In ice-9/eval.scm:

   293:34  5 (_ #<directory (guix build utils) 7fffef187d20>)

In ice-9/boot-9.scm:

   3380:4  4 (define-module* _ #:filename _ #:pure _ #:version _ # _ ?)

  2565:24  3 (call-with-deferred-observers #<procedure 7fffeec53cd0 ?>)

  3393:24  2 (_)

   222:17  1 (map1 (((gcrypt hash)) ((guix build utils)) ((guix ?)) ?))

   3300:6  0 (resolve-interface (gcrypt hash) #:select _ #:hide _ # _ ?)

ice-9/boot-9.scm:3300:6: In procedure resolve-interface:

no code for module (gcrypt hash)

```
All commits before in this series are fine. The fix in
d88ff09ea3138fc85c1463b0b345bd6ba71ca568 does not really help.