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
1 files changed, 5 insertions(+), 1 deletions(-) M gnu/packages/rust.scm
M gnu/packages/rust.scm => gnu/packages/rust.scm +5 -1
@@ 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))