Skip to content
Helper utilities to debug scope-related problems in Racket
Racket
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
named-scopes
scribblings
test
.gitignore
.travis.yml
LICENSE-more.md
LICENSE.txt
README.md
info.rkt
main.rkt
named-scopes-sli-parameter.rkt
named-scopes.rkt
superscripts.rkt

README.md

Build Status, Coverage Status, Build Stats, Online Documentation, Maintained as of 2018, License: CC0 v1.0.

debug-scopes

Some utilities which help debugging scope-related issues with Racket unhygienic macros (hygienic macros in Racket will likely not need these utilities).

First, run:

raco pkg install debug-scopes

Then, require one or several of the following modules:

(require debug-scopes)
  • (+scopes stx) returns a string with a succinct representation of which scopes are present on each identifier.
  • (print-full-scopes) prints the long version of the scope information for the scopes used in preceeding calls to +scopes.
(require debug-scopes/named-scopes)
  • (make-named-scope string-or-symbol) creates a scope similarly to make-syntax-introducer, but annotates it with a name. This is a hack which creates a module with that name, and extracts the module scope (since these scopes have names attached to them in Racket). As a result, with the current implementation, this returns a module scope instead of a macro scope like make-syntax-introducer.
(require debug-scopes/named-scopes/override)
  • Overrides define-syntax and syntax-local-introduce. The overridden syntax-local-introduce works with the overridden define-syntax to flip a named scope instead of the usual macro scope. The use-site scope which may be flipped by syntax-local-introduce is left unchanged.
You can’t perform that action at this time.