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 _________________________ Racket Developers list: http://lists.racket-lang.org/dev