From 1c6354e235d00c576318fc4588b92cb85b75e79b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 4 Dec 2011 07:48:48 -0700 Subject: [PATCH] fix meta/check-dists (Also, use a hash table instead of an association list for a query cache.) --- collects/meta/check-dists.rkt | 7 +++++-- collects/meta/checker.rkt | 10 +++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/collects/meta/check-dists.rkt b/collects/meta/check-dists.rkt index 2c33c66b61..43aae4bde5 100644 --- a/collects/meta/check-dists.rkt +++ b/collects/meta/check-dists.rkt @@ -25,8 +25,11 @@ (set-racket-tree! racket/ racket-base/ racket/-name null) (set-bin-files-delayed-lists! - ;; FIXME: hard-wired list of binary-specific files - '()) + ;; FIXME: hard-wired list of binary-specific files; + ;; we assume there are none. This value is a list of + ;; lists, where a given file must appear in every list + ;; to be ok for the distribution. + '(())) (expand-spec 'distributions) diff --git a/collects/meta/checker.rkt b/collects/meta/checker.rkt index ae348dafd0..eb84cbf135 100644 --- a/collects/meta/checker.rkt +++ b/collects/meta/checker.rkt @@ -398,11 +398,15 @@ ;; contents is still marked. (define (primitive-spec->filter spec) (define (add-query-cache! t r) - (prop-set! (tree-path t) 'queries - (cons (cons spec r) (prop-get (tree-path t) 'queries '())))) + (hash-set! (prop-get (tree-path t) 'queries + (lambda () (let ([ht (make-hash)]) + (prop-set! (tree-path t) 'queries ht) + ht))) + spec + r)) (define (make-cached filter) (lambda (t) - (cond [(assoc spec (prop-get (tree-path t) 'queries '())) => cdr] + (cond [(hash-ref (prop-get (tree-path t) 'queries #hash()) spec #f)] [else (let ([r (filter t)]) (case r [(+ -) (let loop ([t t])