From 4d0895ccff47ffb91aaaed5314f5d1c21ddbe27f Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 20 Sep 2011 13:29:42 -0600 Subject: [PATCH] add `var-ref->mod-decl-insp' and switch `cur-code-insp' uses Macros and other tools that need syntax privilege used `(current-code-inspector)' at the module top-level to try to capture the right code inspector at load time. It's more consistent to instead use the enclosing module's declaration-time inspector, and `var-ref->mod-decl-insp' provides that. The new function works only on references to anonymous variables, which limits access to the inspector. The real function name is longer, of course. original commit: 0197902309c5400d463393829a88282c627dafd2 --- collects/mzlib/private/package-helper.rkt | 3 ++- collects/mzlib/shared.rkt | 3 ++- collects/racket/package.rkt | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/collects/mzlib/private/package-helper.rkt b/collects/mzlib/private/package-helper.rkt index e700f12..837f4df 100644 --- a/collects/mzlib/private/package-helper.rkt +++ b/collects/mzlib/private/package-helper.rkt @@ -46,7 +46,8 @@ ((bound-identifier=? id (caar renames)) (car renames)) (else (stx-assoc id (cdr renames))))) - (define insp (current-code-inspector)) + (define insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (rebuild ctxt val) (if (syntax? ctxt) diff --git a/collects/mzlib/shared.rkt b/collects/mzlib/shared.rkt index e1abe2b..995bc9f 100644 --- a/collects/mzlib/shared.rkt +++ b/collects/mzlib/shared.rkt @@ -9,7 +9,8 @@ (provide shared) -(define-for-syntax code-insp (current-code-inspector)) +(define-for-syntax code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define undefined (letrec ([x x]) x)) (require (only-in scheme/base [cons the-cons])) diff --git a/collects/racket/package.rkt b/collects/racket/package.rkt index 7d7aa42..e5f41e6 100644 --- a/collects/racket/package.rkt +++ b/collects/racket/package.rkt @@ -102,7 +102,8 @@ orig orig)) -(define-for-syntax code-insp (current-code-inspector)) +(define-for-syntax code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-for-syntax (disarm* stx) (cond [(and (syntax? stx)