civodul pushed a commit to branch master
in repository guix.
commit d23d8fcee99e7b127f9e649925caca9cf0d36e76
Author: Ludovic Courtès <[email protected]>
AuthorDate: Sat May 27 19:29:33 2023 +0200
services: herd: "Resolve" transient services only when needed.
This allows us to get rid of the "eval root" actions, which in turn
would lead to confusing "Evaluating user expression" messages.
Fixes <https://issues.guix.gnu.org/55857>.
* gnu/services/herd.scm (resolve-transients): In 'values', avoid
'eval-there' call when UNRESOLVED is empty.
---
gnu/services/herd.scm | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm
index 48594015fc..c24a403935 100644
--- a/gnu/services/herd.scm
+++ b/gnu/services/herd.scm
@@ -242,12 +242,13 @@ service is transient."
;; for all of SERVICES.
(let* ((unresolved (filter (compose unspecified? live-service-transient?)
services))
- (values (or (eval-there
- `(and (defined? 'transient?) ;shepherd >= 0.9.0
- (map (compose transient? lookup-running)
- ',(map (compose first
- live-service-provision)
- unresolved))))
+ (values (or (and (pair? unresolved)
+ (eval-there
+ `(and (defined? 'transient?) ;shepherd >= 0.9.0
+ (map (compose transient? lookup-running)
+ ',(map (compose first
+
live-service-provision)
+ unresolved)))))
(make-list (length unresolved) #f)))
(resolved (map (lambda (unresolved transient?)
(cons unresolved