I test applied this on master and then went to build my rusty-packages manifest. The time on './pre-inst-env guix build -m ... -n' went from 35 seconds to 20 seconds and the derivations didn't change. On Mon, Dec 02, 2024 at 05:53:28PM +0100, Ludovic Courtès wrote: > * guix/build-system/cargo.scm (crate-closure): Remove ‘first?’. > > Change-Id: Ica1a661eb422a882ae3a1a54819b2dd7d68449de > --- > guix/build-system/cargo.scm | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm > index 658a2e525e..0e9a4b1d23 100644 > --- a/guix/build-system/cargo.scm > +++ b/guix/build-system/cargo.scm > @@ -1,5 +1,5 @@ > ;;; GNU Guix --- Functional package management for GNU > -;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2021 Ludovic Courtès > +;;; Copyright © 2013-2016, 2019, 2021, 2024 Ludovic Courtès > ;;; Copyright © 2013 Andreas Enge > ;;; Copyright © 2013 Nikita Karetnikov > ;;; Copyright © 2016 David Craven > @@ -227,24 +227,22 @@ (define (crate-closure inputs) > (let loop ((inputs inputs) > (result '()) > (propagated '()) > - (first? #t) > (seen vlist-null)) > (match inputs > (() > (if (null? propagated) > (reverse result) > - (loop (reverse (concatenate propagated)) result '() #f seen))) > + (loop (reverse (concatenate propagated)) result '() seen))) > (((and input (label (? package? package))) rest ...) > - (if (and (not first?) (seen? seen package)) > - (loop rest result propagated first? seen) > + (if (seen? seen package) > + (loop rest result propagated seen) > (loop rest > (cons input result) > (cons (package-cargo-inputs package) > propagated) > - first? > (vhash-consq package package seen)))) > ((input rest ...) > - (loop rest (cons input result) propagated first? seen))))) > + (loop rest (cons input result) propagated seen))))) > > (define (expand-crate-sources cargo-inputs cargo-development-inputs) > "Extract all transitive sources for CARGO-INPUTS and CARGO-DEVELOPMENT-INPUTS > -- > 2.46.0 > > > -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted