gnu: ld-wrapper: Memoize.
authorLudovic Courtès <ludo@gnu.org>
Sat, 12 Oct 2019 13:01:50 +0000 (15:01 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sat, 12 Oct 2019 13:18:25 +0000 (15:18 +0200)
The command:

  guix graph -e '(@@ (gnu packages commencement) coreutils-final)'

now shows 93 nodes (992 edges) instead of 176 nodes (1241 edges).

* gnu/packages/commencement.scm (ld-wrapper-boot0): Use 'mlambda'
instead of 'lambda'.
(ld-wrapper-boot3): Likewise.

gnu/packages/commencement.scm

index f234fa0..d113aca 100644 (file)
@@ -1942,15 +1942,16 @@ the bootstrap environment."
                (delete 'set-TZDIR)))
            ((#:tests? _ #f) #f))))))
 
-(define (ld-wrapper-boot0)
-  ;; We need this so binaries on Hurd will have libmachuser and libhurduser
-  ;; in their RUNPATH, otherwise validate-runpath will fail.
-  (make-ld-wrapper "ld-wrapper-boot0"
-                   #:target boot-triplet
-                   #:binutils binutils-boot0
-                   #:guile %bootstrap-guile
-                   #:bash (car (assoc-ref (%boot0-inputs) "bash"))
-                   #:guile-for-build %bootstrap-guile))
+(define ld-wrapper-boot0
+  (mlambda ()
+    ;; We need this so binaries on Hurd will have libmachuser and libhurduser
+    ;; in their RUNPATH, otherwise validate-runpath will fail.
+    (make-ld-wrapper "ld-wrapper-boot0"
+                     #:target boot-triplet
+                     #:binutils binutils-boot0
+                     #:guile %bootstrap-guile
+                     #:bash (car (assoc-ref (%boot0-inputs) "bash"))
+                     #:guile-for-build %bootstrap-guile)))
 
 (define (%boot1-inputs)
   ;; 2nd stage inputs.
@@ -2238,13 +2239,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
        ,@(package-arguments zlib)))
     (inputs (%boot2-inputs))))
 
-(define (ld-wrapper-boot3)
-  ;; A linker wrapper that uses the bootstrap Guile.
-  (make-ld-wrapper "ld-wrapper-boot3"
-                   #:binutils binutils-final
-                   #:guile %bootstrap-guile
-                   #:bash (car (assoc-ref (%boot2-inputs) "bash"))
-                   #:guile-for-build %bootstrap-guile))
+(define ld-wrapper-boot3
+  (mlambda ()
+    ;; A linker wrapper that uses the bootstrap Guile.
+    (make-ld-wrapper "ld-wrapper-boot3"
+                     #:binutils binutils-final
+                     #:guile %bootstrap-guile
+                     #:bash (car (assoc-ref (%boot2-inputs) "bash"))
+                     #:guile-for-build %bootstrap-guile)))
 
 (define gcc-final
   ;; The final GCC.