diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-04-17 14:32:24 +0200 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2023-04-19 20:12:19 -0400 |
commit | abdf812acc70d5424e51e2d6fb280bf08b087b68 (patch) | |
tree | 1ff2a0e707e44add05826eef6f7b645f8bb29dbb /guix/scripts | |
parent | 72096b733016f50e71f02a6558425d8659f8970c (diff) |
environment: Really auto-load (guix scripts pack).
Fixes a performance regression on cache hits introduced in
b31ea797edb4f6e8c14e8fe790da1319607c5cb1, whereby (guix scripts pack)
would be loaded eagerly during startup, leading hundreds of (gnu
packages *) modules to be loaded.
Fixes <https://issues.guix.gnu.org/62899>.
* guix/scripts/environment.scm: Autoload (gnu build install).
(%options): Add indirection when calling 'symlink-spec-option-parser' so
that (guix scripts pack) is auto-loaded only when needed.
Diffstat (limited to 'guix/scripts')
-rw-r--r-- | guix/scripts/environment.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index ebfc05731c..8c0da9694e 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -38,7 +38,7 @@ #:autoload (guix scripts pack) (symlink-spec-option-parser) #:use-module (guix transformations) #:autoload (ice-9 ftw) (scandir) - #:use-module (gnu build install) + #:autoload (gnu build install) (evaluate-populate-directive) #:autoload (gnu build linux-container) (call-with-container %namespaces user-namespace-supported? unprivileged-user-namespace-supported? @@ -271,7 +271,11 @@ use '--preserve' instead~%")) (alist-cons 'file-system-mapping (specification->file-system-mapping arg #f) result))) - (option '(#\S "symlink") #t #f symlink-spec-option-parser) + (option '(#\S "symlink") #t #f + (lambda (opt name arg result) + ;; Delay call to avoid auto-loading (guix scripts pack) + ;; when unnecessary. + (symlink-spec-option-parser opt name arg result))) (option '(#\r "root") #t #f (lambda (opt name arg result) (alist-cons 'gc-root arg result))) |