speed up doc build a little; fix bugs related to getting continuation marks from a thread and using the errortrace profiler
svn: r12237 original commit: 37aae202c56968d53901b4398a90e096bbe8c754
This commit is contained in:
parent
53f9aad182
commit
4bc0939c57
|
@ -383,6 +383,7 @@
|
||||||
|
|
||||||
(define/public (render-element i part ri)
|
(define/public (render-element i part ri)
|
||||||
(cond
|
(cond
|
||||||
|
[(string? i) (render-other i part ri)] ; short-cut for common case
|
||||||
[(and (link-element? i)
|
[(and (link-element? i)
|
||||||
(null? (element-content i)))
|
(null? (element-content i)))
|
||||||
(let ([v (resolve-get part ri (link-element-tag i))])
|
(let ([v (resolve-get part ri (link-element-tag i))])
|
||||||
|
|
|
@ -127,11 +127,11 @@
|
||||||
v)))
|
v)))
|
||||||
v)))
|
v)))
|
||||||
|
|
||||||
(define (module-path-index->taglet mod)
|
(define (do-module-path-index->taglet mod)
|
||||||
;; Derive the name from the module path:
|
;; Derive the name from the module path:
|
||||||
(let ([p (collapse-module-path-index
|
(let ([p (collapse-module-path-index
|
||||||
mod
|
mod
|
||||||
(build-path (current-directory) "dummy"))])
|
(lambda () (build-path (current-directory) "dummy")))])
|
||||||
(if (path? p)
|
(if (path? p)
|
||||||
;; If we got a path back anyway, then it's best to use the resolved
|
;; If we got a path back anyway, then it's best to use the resolved
|
||||||
;; name; if the current directory has changed since we
|
;; name; if the current directory has changed since we
|
||||||
|
@ -160,6 +160,13 @@
|
||||||
p)])
|
p)])
|
||||||
(intern-taglet p)))))
|
(intern-taglet p)))))
|
||||||
|
|
||||||
|
(define collapsed (make-weak-hasheq))
|
||||||
|
(define (module-path-index->taglet mod)
|
||||||
|
(or (hash-ref collapsed mod #f)
|
||||||
|
(let ([v (do-module-path-index->taglet mod)])
|
||||||
|
(hash-set! collapsed mod v)
|
||||||
|
v)))
|
||||||
|
|
||||||
(define (module-path-prefix->string p)
|
(define (module-path-prefix->string p)
|
||||||
(format "~a" (module-path-index->taglet (module-path-index-join p #f))))
|
(format "~a" (module-path-index->taglet (module-path-index-join p #f))))
|
||||||
|
|
||||||
|
|
|
@ -91,18 +91,16 @@
|
||||||
(define (anchor-name v)
|
(define (anchor-name v)
|
||||||
(define (encode-byte b)
|
(define (encode-byte b)
|
||||||
(string-append (if (< b 16) "~0" "~") (number->string b 16)))
|
(string-append (if (< b 16) "~0" "~") (number->string b 16)))
|
||||||
(define (encode-str str)
|
(define (encode-bytes str)
|
||||||
(if (regexp-match? #px"[^[:ascii:]]" str)
|
(string->bytes/utf-8 (encode-byte (bytes-ref str 0))))
|
||||||
(string-append* (map encode-byte (bytes->list (string->bytes/utf-8 str))))
|
|
||||||
(encode-byte (char->integer (string-ref str 0)))))
|
|
||||||
(if (literal-anchor? v)
|
(if (literal-anchor? v)
|
||||||
(literal-anchor-string v)
|
(literal-anchor-string v)
|
||||||
(let* ([v (format "~a" v)]
|
(let* ([v (string->bytes/utf-8 (format "~a" v))]
|
||||||
[v (regexp-replace* #rx"[A-Z.]" v ".&")]
|
[v (regexp-replace* #rx#"[A-Z.]" v #".&")]
|
||||||
[v (regexp-replace* #rx" " v "._")]
|
[v (regexp-replace* #rx#" " v #"._")]
|
||||||
[v (regexp-replace* #rx"\"" v ".'")]
|
[v (regexp-replace* #rx#"\"" v #".'")]
|
||||||
[v (regexp-replace* #rx"[^-a-zA-Z0-9_!+*'()/.,]" v encode-str)])
|
[v (regexp-replace* #rx#"[^-a-zA-Z0-9_!+*'()/.,]" v encode-bytes)])
|
||||||
v)))
|
(bytes->string/utf-8 v))))
|
||||||
|
|
||||||
(define-serializable-struct literal-anchor (string))
|
(define-serializable-struct literal-anchor (string))
|
||||||
|
|
||||||
|
@ -826,6 +824,7 @@
|
||||||
|
|
||||||
(define/override (render-element e part ri)
|
(define/override (render-element e part ri)
|
||||||
(cond
|
(cond
|
||||||
|
[(string? e) (super render-element e part ri)] ; short-cut for common case
|
||||||
[(hover-element? e)
|
[(hover-element? e)
|
||||||
`((span ([title ,(hover-element-text e)])
|
`((span ([title ,(hover-element-text e)])
|
||||||
,@(render-plain-element e part ri)))]
|
,@(render-plain-element e part ri)))]
|
||||||
|
@ -1270,9 +1269,16 @@
|
||||||
(loop (cdr path) (cdr root))))))
|
(loop (cdr path) (cdr root))))))
|
||||||
roots))))
|
roots))))
|
||||||
|
|
||||||
|
(define exploded (make-weak-hash))
|
||||||
|
(define (explode/cache p)
|
||||||
|
(or (hash-ref exploded p #f)
|
||||||
|
(let ([v (explode p)])
|
||||||
|
(hash-set! exploded p v)
|
||||||
|
v)))
|
||||||
|
|
||||||
(define (from-root p d)
|
(define (from-root p d)
|
||||||
(define e-p (explode (path->complete-path p (current-directory))))
|
(define e-p (explode/cache (path->complete-path p (current-directory))))
|
||||||
(define e-d (and d (explode (path->complete-path d (current-directory)))))
|
(define e-d (and d (explode/cache (path->complete-path d (current-directory)))))
|
||||||
(define p-in? (in-plt? e-p))
|
(define p-in? (in-plt? e-p))
|
||||||
(define d-in? (and d (in-plt? e-d)))
|
(define d-in? (and d (in-plt? e-d)))
|
||||||
;; use an absolute link if the link is from outside the plt tree
|
;; use an absolute link if the link is from outside the plt tree
|
||||||
|
@ -1287,12 +1293,13 @@
|
||||||
(let loop ([e-d e-d] [e-p e-p])
|
(let loop ([e-d e-d] [e-p e-p])
|
||||||
(cond
|
(cond
|
||||||
[(null? e-d)
|
[(null? e-d)
|
||||||
|
(string-append*
|
||||||
(let loop ([e-p e-p])
|
(let loop ([e-p e-p])
|
||||||
(cond [(null? e-p) "/"]
|
(cond [(null? e-p) '("/")]
|
||||||
[(null? (cdr e-p)) (car e-p)]
|
[(null? (cdr e-p)) (list (car e-p))]
|
||||||
[(eq? 'same (car e-p)) (loop (cdr e-p))]
|
[(eq? 'same (car e-p)) (loop (cdr e-p))]
|
||||||
[(eq? 'up (car e-p)) (string-append "../" (loop (cdr e-p)))]
|
[(eq? 'up (car e-p)) (cons "../" (loop (cdr e-p)))]
|
||||||
[else (string-append (car e-p) "/" (loop (cdr e-p)))]))]
|
[else (cons (car e-p) (cons "/" (loop (cdr e-p))))])))]
|
||||||
[(equal? (car e-d) (car e-p)) (loop (cdr e-d) (cdr e-p))]
|
[(equal? (car e-d) (car e-p)) (loop (cdr e-d) (cdr e-p))]
|
||||||
[(eq? 'same (car e-d)) (loop (cdr e-d) e-p)]
|
[(eq? 'same (car e-d)) (loop (cdr e-d) e-p)]
|
||||||
[(eq? 'same (car e-p)) (loop e-d (cdr e-p))]
|
[(eq? 'same (car e-p)) (loop e-d (cdr e-p))]
|
||||||
|
|
|
@ -295,8 +295,9 @@
|
||||||
(*sig-elem (sig-id sig) (extract-id prototype))
|
(*sig-elem (sig-id sig) (extract-id prototype))
|
||||||
(to-element (make-just-context (extract-id prototype)
|
(to-element (make-just-context (extract-id prototype)
|
||||||
stx-id)))))]))
|
stx-id)))))]))
|
||||||
|
(define p-depth (prototype-depth prototype))
|
||||||
(define flat-size (+ (prototype-size args + + #f)
|
(define flat-size (+ (prototype-size args + + #f)
|
||||||
(prototype-depth prototype)
|
p-depth
|
||||||
(element-width tagged)))
|
(element-width tagged)))
|
||||||
(define short? (or (flat-size . < . 40) ((length args) . < . 2)))
|
(define short? (or (flat-size . < . 40) ((length args) . < . 2)))
|
||||||
(define res
|
(define res
|
||||||
|
@ -319,7 +320,7 @@
|
||||||
(loop (cdr res))))))))))
|
(loop (cdr res))))))))))
|
||||||
res)))
|
res)))
|
||||||
(define tagged+arg-width (+ (prototype-size args max max #t)
|
(define tagged+arg-width (+ (prototype-size args max max #t)
|
||||||
(prototype-depth prototype)
|
p-depth
|
||||||
(element-width tagged)))
|
(element-width tagged)))
|
||||||
(define result-next-line?
|
(define result-next-line?
|
||||||
((+ (if short? flat-size tagged+arg-width) (block-width res))
|
((+ (if short? flat-size tagged+arg-width) (block-width res))
|
||||||
|
@ -339,10 +340,10 @@
|
||||||
(to-flow
|
(to-flow
|
||||||
(make-element
|
(make-element
|
||||||
#f
|
#f
|
||||||
`(,(make-openers (add1 (prototype-depth prototype)))
|
`(,(make-openers (add1 p-depth))
|
||||||
,tagged
|
,tagged
|
||||||
,@(if (null? args)
|
,@(if (null? args)
|
||||||
(list (make-closers (prototype-depth prototype)))
|
(list (make-closers p-depth))
|
||||||
(append-map (lambda (arg)
|
(append-map (lambda (arg)
|
||||||
(list spacer ((arg->elem #t) arg)))
|
(list spacer ((arg->elem #t) arg)))
|
||||||
args))
|
args))
|
||||||
|
@ -363,7 +364,7 @@
|
||||||
(make-element
|
(make-element
|
||||||
#f
|
#f
|
||||||
(list
|
(list
|
||||||
(make-openers (add1 (prototype-depth prototype)))
|
(make-openers (add1 p-depth))
|
||||||
tagged)))
|
tagged)))
|
||||||
(if one-ok?
|
(if one-ok?
|
||||||
(list*
|
(list*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user