~ruther/guix-local

27c68457d992895833a7b0a833679dc2efc9e188 — Ludovic Courtès 12 years ago d295232
guix package: 'search-path-environment-variables' traverses module tree once.

* guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]:
  Use 'find-best-packages-by-name' instead of 'find-packages-by-name'.
  On a profile with 140 packages, this reduces execution time of this
  procedure from 5.8 seconds to 2.9 seconds (50% improvement.)
1 files changed, 5 insertions(+), 2 deletions(-)

M guix/scripts/package.scm
M guix/scripts/package.scm => guix/scripts/package.scm +5 -2
@@ 417,8 417,11 @@ current settings and report only settings not already effective."
    (define manifest-entry->package
      (match-lambda
       (($ <manifest-entry> name version)
        (match (append (find-packages-by-name name version)
                       (find-packages-by-name name))
        ;; Use 'find-best-packages-by-name' and not 'find-packages-by-name';
        ;; the former traverses the module tree only once and then allows for
        ;; efficient access via a vhash.
        (match (or (find-best-packages-by-name name version)
                   (find-best-packages-by-name name #f))
          ((p _ ...) p)
          (_ #f)))))