cbaines pushed a commit to branch trunk
in repository data-service.
commit 59f1a04f4e1ad92c48709bf5247facf83ad281b0
Author: Christopher Baines <[email protected]>
AuthorDate: Sun Mar 9 13:13:25 2025 +0000
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