From 093fba97d93781f9bd9caef8fcb2028cc38dd34f Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 27 Mar 2014 07:42:37 -0500 Subject: [PATCH] make DrRacket cache path->pkg calls within a single 'Run' --- pkgs/drracket-pkgs/drracket/drracket/private/eval-helpers.rkt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/drracket-pkgs/drracket/drracket/private/eval-helpers.rkt b/pkgs/drracket-pkgs/drracket/drracket/private/eval-helpers.rkt index 13d2526bd5..1a139263ee 100644 --- a/pkgs/drracket-pkgs/drracket/drracket/private/eval-helpers.rkt +++ b/pkgs/drracket-pkgs/drracket/drracket/private/eval-helpers.rkt @@ -85,12 +85,13 @@ (define skip-path? (let* ([cd (find-collects-dir)] [sd (find-share-dir)] + [path->pkg-cache (make-hash)] [no-dirs (append (list (CACHE-DIR)) (if cd (list cd) null) (if sd (list sd) null))]) (λ (p) (or (file-stamp-in-paths p no-dirs) - (let ([pkg (path->pkg p)]) + (let ([pkg (path->pkg p path->pkg-cache)]) (and pkg (not (set-member? open-pkgs pkg)) (file-stamp-in-paths p (list (pkg-directory pkg)))))))))