From f761ec10ce4c9617414b252a50f8b185a8536511 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 21 Nov 2012 06:49:45 -0700 Subject: [PATCH] serialize bluebox tables Typically, the bluebox table includes keys that have interned parts, so serialization can save space both on disk and in memory when the bluebox information is reloaded. original commit: 693ff33bfc9e660ac898e262cbefca6a5adee522 --- collects/scribble/contract-render.rkt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/collects/scribble/contract-render.rkt b/collects/scribble/contract-render.rkt index 9b02f397..3082e2c5 100644 --- a/collects/scribble/contract-render.rkt +++ b/collects/scribble/contract-render.rkt @@ -3,7 +3,8 @@ (prefix-in text: "text-render.rkt") "base-render.rkt" "core.rkt" - file/convertible) + file/convertible + racket/serialize) (provide override-render-mixin-single override-render-mixin-multi) @@ -23,7 +24,7 @@ [the-ri ri] [the-text-p p]) (r-part part 'block index-table)) - (define table-str (format "~s\n" index-table)) + (define table-str (format "~s\n" (serialize index-table))) (define cb.rktd (cond [multi? @@ -135,8 +136,10 @@ (define-values (after-line _3 _4) (port-next-location text-p)) (define txt-loc (cons before-position (- after-line before-line))) + (define ri (the-ri)) (for ([(k v) (in-hash ents)]) - (hash-set! index-table k (cons txt-loc (hash-ref index-table k '()))))) + (let ([k (tag-key k ri)]) + (hash-set! index-table k (cons txt-loc (hash-ref index-table k '())))))) (define (r-blockss+cont blockss mode index-table) (for ([blocks (in-list blockss)]) @@ -172,7 +175,7 @@ (when (pair? mode) (define ents (cdr mode)) (define key (index-element-tag element)) - (hash-set! ents key #t))) + (hash-set! ents (tag-key key (the-ri)) #t))) (r-content (element-content element) mode index-table))