aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2025-03-09 13:13:25 +0000
committerChristopher Baines <mail@cbaines.net>2025-03-10 06:30:43 +0000
commit59f1a04f4e1ad92c48709bf5247facf83ad281b0 (patch)
tree33b8406513c41d1122fa07132fff5ad8eba3bcc5
parentedeb89e0cfca43269c9ae7f50e097c0f58f4e42f (diff)
downloaddata-service-59f1a04f4e1ad92c48709bf5247facf83ad281b0.tar
data-service-59f1a04f4e1ad92c48709bf5247facf83ad281b0.tar.gz
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.
-rw-r--r--guix-data-service/jobs/load-new-guix-revision.scm11
1 files 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