From 59f1a04f4e1ad92c48709bf5247facf83ad281b0 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 9 Mar 2025 13:13:25 +0000 Subject: [PATCH] Use vector-fold rather than map to construct input-derivations This avoids append-map and vector->list so might be faster and use less memory. --- guix-data-service/jobs/load-new-guix-revision.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index 75400b2..e0e0bc6 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -1190,10 +1190,13 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1" "insert-missing-derivations: ensure-input-derivations-exist (" log-tag ")") (let ((input-derivations - (map - derivation-input-derivation - (append-map derivation-inputs - (vector->list derivations))))) + (vector-fold + (lambda (_ result drv) + (append! (map derivation-input-derivation + (derivation-inputs drv)) + result)) + '() + derivations))) (unless (null? input-derivations) ;; Ensure all the input derivations exist (for-each