From 8102cf0b37e100f760d25b500cf91ed38928615c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 18 Jan 2018 16:14:06 +0100 Subject: gnu: commencement: Memoize 'linux-libre-headers-boot0'. Fixes . The effect can be seen in the package graph produced by: guix graph -e '(@@ (gnu packages commencement) static-bash-for-glibc)' This reduces the number of "duplicate" nodes in this graph, i.e., distinct package objects that correspond to the same derivation (objects that are not 'eq?' but semantically equal.) * gnu/packages/commencement.scm (linux-libre-headers-boot0): Make an 'mlambda' instead of a 'lambda'. (hurd-core-headers-boot0): Ditto. --- guix/packages.scm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'guix/packages.scm') diff --git a/guix/packages.scm b/guix/packages.scm index 9571565e17..be0a5eeedb 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -620,6 +620,9 @@ (define (transitive-inputs inputs) This is implemented as a breadth-first traversal such that INPUTS is preserved, and only duplicate propagated inputs are removed." (define (seen? seen item outputs) + ;; FIXME: We're using pointer identity here, which is extremely sensitive + ;; to memoization in package-producing procedures; see + ;; . (match (vhash-assq item seen) ((_ . o) (equal? o outputs)) (_ #f))) -- cgit v1.2.3