[plt-scheme] Re: [Larceny-users] side effects in R6RS modules

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue May 5 10:44:42 EDT 2009

On May 5, 2009, at 7:53 AM, Michele Simionato wrote:

> On Tue, May 5, 2009 at 1:47 PM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> On Mon, May 4, 2009 at 11:19 PM, Michele Simionato
>> <michele.simionato at gmail.com> wrote:
>>> ..., but
>>> one must take extra care in Ikarus, because the compiler is
>>> very smart (those smart kids!)
>> I mean no disrespect to Aziz & Ikarus (they are fine systems, both of
>> them ;), but I do not think that "smart" is the right label to apply
>> to a compiler that eliminates code whose effect is observable.
> I look at it this in way: Aziz changed the meaning of the "import"  
> form.
> In all systems (import (foo)) means "instantiate foo", but in Ikarus
> it means "have a look at module foo, but instantiate it only
> if it exports some variable which is actually used in the rest of
> the program".

In PL, such questions should be decided via mathematical models that
do not depend on machines and compilers. That's the only way to truly
disambiguate the English in a spec.

For whatever reasons, the editors moved the only piece of mathematics
semantics (which doesn't include modules and macros) to the appendix,
for reasons that still escape me. Well, they don't really. If you
don't have a tool for arbitrating two distinct interpretations of
an informal document, you can always claim that both are correct and
if you so desire, you can claim one of them is, eh, smart? :-) 

Posted on the users mailing list.