summaryrefslogtreecommitdiff
path: root/guix/derivations.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/derivations.scm')
-rw-r--r--guix/derivations.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 38cefb6100..97f96d99c1 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -90,6 +90,7 @@
derivation-path->output-paths
derivation
raw-derivation
+ invalidate-derivation-caches!
map-derivation
@@ -841,6 +842,15 @@ output should not be used."
(hash-set! %derivation-cache file drv*)
drv*)))
+(define (invalidate-derivation-caches!)
+ "Invalidate internal derivation caches. This is mostly useful for
+long-running processes that know what they're doing. Use with care!"
+ ;; Typically this is meant to be used by Cuirass and Hydra, which can clear
+ ;; caches when they start evaluating packages for another architecture.
+ (invalidate-memoization! derivation->bytevector)
+ (invalidate-memoization! derivation-path->base16-hash)
+ (hash-clear! %derivation-cache))
+
(define* (map-derivation store drv mapping
#:key (system (%current-system)))
"Given MAPPING, a list of pairs of derivations, return a derivation based on