summaryrefslogtreecommitdiff
path: root/gnu/packages/rust.scm
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 /gnu/packages/rust.scm
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
Diffstat (limited to 'gnu/packages/rust.scm')
-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))