bkyk8rc3zvpnsf5inmcqq4n3k98cv6hj-my-site-hyper-literate-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 3573c015f85b6f46c0fbe85c553cb708ee13fee7
parent 227924d8da6d11718a4fdcba2db2a805748d1126
Author: Matthew Flatt <mflatt@racket-lang.org>
Date:   Fri,  8 Jan 2010 19:53:04 +0000

add module->compiled-module-expression, which is used in Scribble's traversal of module paths to find documented bindings

svn: r17576

original commit: 4fedeeaf7a7bfd68132524536a9d692ddc8f318b

Diffstat:
Mcollects/scribble/search.ss | 25+++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/collects/scribble/search.ss b/collects/scribble/search.ss @@ -17,6 +17,10 @@ (module-path-index-join name (module-path-index-rejoin base rel-to))]))) + (define (try thunk) + (with-handlers ([exn:fail? (lambda (exn) #f)]) + (thunk))) + (define (find-scheme-tag part ri stx/binding phase-level) ;; The phase-level argument is used only when `stx/binding' ;; is an identifier. @@ -106,12 +110,21 @@ rmp (lambda () (let-values ([(valss stxess) - (with-handlers ([exn:fail? - (lambda (exn) - (values null null))]) - (module-compiled-exports - (get-module-code (resolved-module-path-name rmp) - #:choose (lambda (src zo so) 'zo))))]) + (let ([exp + (or + (try + (lambda () + ;; First, try using bytecode: + (get-module-code (resolved-module-path-name rmp) + #:choose (lambda (src zo so) 'zo)))) + (try + (lambda () + ;; Bytecode not available. Declaration in the + ;; current namespace? + (module->compiled-module-expression rmp))))]) + (if exp + (module-compiled-exports exp) + (values null null)))]) (let ([t ;; Merge the two association lists: (let loop ([base valss]