[plt-scheme] side effects in R6RS modules

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sun May 3 12:16:57 EDT 2009

At Sun, 3 May 2009 18:00:23 +0200, Michele Simionato wrote:
> On Sun, May 3, 2009 at 5:46 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > With the now-committed changes, your example prints a registration of
> > `a' followed by a registration of `b', and the resulting list is '(a
> > b).
> But now I am confused. I expected to get the empty list, i.e. the
> same result I would have obtained with separate compilation.
> Care to explain this point better? What happens if you perform
> separate compilation of the libraries?

Assuming that you've gone back to your original code, you don't have
any stale bytecode files sitting around, right? For example, if you
changed "define+.ss" but "defines.ss" is already compiled, then the
module loader won't know to recompile "defines.ss" (since it checks
only immediate file timestamps). But if you run "mzc" on "x.ss", it
should update everything as needed (because it checks dependencies).

Posted on the users mailing list.