[racket-dev] zo-parse and implicit requires from template-phased syntax?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Mar 13 16:47:57 EDT 2012

The intent is that you follow `mod-requires' transitively with phase
shifts.

That is, if "test.rkt" requires "helper.rkt" with a phase shift of 1,
and "helper.rkt" requires `racket/list' with a phase shift of -1, then
"test.rkt" needs `racket/list' at phase 0.

If you look only at `prefix-toplevels' in the main module, then you
could potentially miss imports that have side effects.

At Tue, 13 Mar 2012 16:29:34 -0400, Danny Yoo wrote:
> > Do you agree that, not only do I have to visit the modules explicitly
> > listed in mod-requires, but also the phase-0 ModuleVariable references
> > in the module variables in the module's prefix-toplevels?
> 
> Followup: ok, this seems like what you're doing in nodep-module:
> 
>     http://pre.racket-lang.org/racket/collects/compiler/demodularizer/nodep.rkt
> 
> so I'll assume that those two locations alone are what I should be watching.
> 
> 
> I'm still surprised that the other places where I expect to see this
> information, such as module-compiled-imports, and the definition of
> add-module-code-connections in
> collects/drracket/private/module-browser.rkt, do not provide this
> complete information.  If I'm not mistaken, we can only get this
> information through clever use of compiler/zo-parse.
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.