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

From: Danny Yoo (dyoo at cs.wpi.edu)
Date: Tue Mar 13 16:00:51 EDT 2012

On Tue, Mar 13, 2012 at 2:55 PM, Blake Johnson <bjohn3x at gmail.com> wrote:
> I think that mod-requires just has the explicitly declared requires for each
> phase. In the demodularizer, we have to trace through the requires to get
> all phase 0 code.

Ok, good.  But the word "requires" is overloaded by the context, so I
really have no clear idea what you mean.  :)  I'm trying to agree on
terms, to categorize what exactly it means to trace through the
requires to get all phase 0 code.

In the example I posted up, the only reference to racket/list I can
find is through one of the ModuleVariables living in the prefix.  I
can see a reference to racket/list there.  I've been staring at the
parsed bytecode really hard, and that's the only place I see a
reference to it.

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?  Are there
other locations in the bytecode other than:

   (mod-requires a-module)


   (filter module-variable? (prefix-toplevels (mod-prefix a-a-module)))

that I must not neglect to inspect?

Posted on the dev mailing list.