[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/13: grafts: 'references-oracle' now takes a derivation input.
From: |
guix-commits |
Subject: |
02/13: grafts: 'references-oracle' now takes a derivation input. |
Date: |
Tue, 2 Jul 2019 12:34:03 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 9616b81e9861c831159a0e1a5993854b9ad3c3e5
Author: Ludovic Courtès <address@hidden>
Date: Tue Jul 2 16:45:12 2019 +0200
grafts: 'references-oracle' now takes a derivation input.
That way, if we end up calling 'build-derivations', we'll only build the
outputs that we really need.
* guix/grafts.scm (references-oracle): Rename 'drv' to 'input'.
[output-paths]: Remove.
Adjust accordingly.
(graft-derivation): Adjust call to 'references-oracle'.
---
guix/grafts.scm | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/guix/grafts.scm b/guix/grafts.scm
index 3b43e11..adc7bfa 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -163,16 +163,11 @@ references. Call REFERENCES to get the list of
references."
items))))
(remove (cut member <> self) refs)))
-(define (references-oracle store drv)
- "Return a one-argument procedure that, when passed the file name of DRV's
-outputs or their dependencies, returns the list of references of that item.
-Use either local info or substitute info; build DRV if no information is
-available."
- (define (output-paths drv)
- (match (derivation->output-paths drv)
- (((names . items) ...)
- items)))
-
+(define (references-oracle store input)
+ "Return a one-argument procedure that, when passed the output file names of
+INPUT, a derivation input, or their dependencies, returns the list of
+references of that item. Use either local info or substitute info; build
+INPUT if no information is available."
(define (references* items)
(guard (c ((store-protocol-error? c)
;; As a last resort, build DRV and query the references of the
@@ -181,13 +176,14 @@ available."
;; Warm up the narinfo cache, otherwise each derivation build
;; will result in one HTTP request to get one narinfo, which is
;; much less efficient than fetching them all upfront.
- (substitution-oracle store (list drv))
+ (substitution-oracle store
+ (list (derivation-input-derivation input)))
- (and (build-derivations store (list drv))
+ (and (build-derivations store (list input))
(map (cut references store <>) items))))
(references/substitutes store items)))
- (let loop ((items (output-paths drv))
+ (let loop ((items (derivation-input-output-paths input))
(result vlist-null))
(match items
(()
@@ -324,7 +320,7 @@ DRV, and graft DRV itself to refer to those grafted
dependencies."
;; upfront to have as much parallelism as possible when querying substitute
;; info or when building DRV.
(define references
- (references-oracle store drv))
+ (references-oracle store (derivation-input drv outputs)))
(match (run-with-state
(cumulative-grafts store drv grafts references
- branch master updated (8b5df10 -> 2e03bbe), guix-commits, 2019/07/02
- 03/13: gnu: postgres service: More secure default permissions., guix-commits, 2019/07/02
- 04/13: gnu: Add chafa., guix-commits, 2019/07/02
- 06/13: gnu: Add ghc-ansi-terminal-0.8., guix-commits, 2019/07/02
- 08/13: gnu: ghc-ansi-terminal: Update to 0.9.1., guix-commits, 2019/07/02
- 07/13: gnu: ghc-ansi-wl-pprint: Use ghc-ansi-terminal-0.8., guix-commits, 2019/07/02
- 05/13: gnu: Add ghc-wl-pprint-annotated., guix-commits, 2019/07/02
- 11/13: gnu: Add ghc-validation., guix-commits, 2019/07/02
- 01/13: derivations: Update 'build-derivations' docstring., guix-commits, 2019/07/02
- 02/13: grafts: 'references-oracle' now takes a derivation input.,
guix-commits <=
- 09/13: gnu: Add ghc-concurrent-output., guix-commits, 2019/07/02
- 10/13: gnu: Add ghc-hedgehog., guix-commits, 2019/07/02
- 12/13: gnu: Add trivial-utf-8., guix-commits, 2019/07/02
- 13/13: gnu: Add emacs-multi-term, guix-commits, 2019/07/02