summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-01-05 16:40:49 +0000
committerChristopher Baines <mail@cbaines.net>2024-01-12 12:06:57 +0000
commitd162bd0e724864ef1fcf8327c7dc3d2e9fd76665 (patch)
treeeac383c86496e06b1085b9d5c34730fce34b7f4c
parent75a63e2a2e73e7287df00a64984b6359bcc2fc54 (diff)
packages: rust: Memoize make-rust-sysroot results.
To ensure that it just returns a single package record for some given arguments, as this helps to avoid poor performance of the store connection object cache. Performance with computing the cross derivations is important for the data service, as it's currently very slow to process revisions. * gnu/packages/rust.scm (make-rust-sysroot): Move code to make-rust-sysroot/implementation. (make-rust-sysroot/implementation): New variable. Change-Id: Ibb30c7398328c87c032bb8828635a34ada935167
-rw-r--r--gnu/packages/rust.scm6
1 files changed, 5 insertions, 1 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index ea95d27476..64cde7ea14 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -60,6 +60,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix download)
+ #:use-module (guix memoization)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -1057,7 +1058,10 @@ exec -a \"$0\" \"~a\" \"$@\""
(package-native-inputs base-rust))))))
(define*-public (make-rust-sysroot target)
- (let ((base-rust rust))
+ (make-rust-sysroot/implementation target rust))
+
+(define make-rust-sysroot/implementation
+ (mlambda (target base-rust)
(package
(inherit base-rust)
(name (string-append "rust-sysroot-for-" target))