diff options
author | Christopher Baines <mail@cbaines.net> | 2025-03-09 13:13:25 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2025-03-10 06:30:43 +0000 |
commit | 59f1a04f4e1ad92c48709bf5247facf83ad281b0 (patch) | |
tree | 33b8406513c41d1122fa07132fff5ad8eba3bcc5 | |
parent | edeb89e0cfca43269c9ae7f50e097c0f58f4e42f (diff) | |
download | data-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.scm | 11 |
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 |