On Wed, May 6, 2009 at 9:11 AM, Derick Eddington <[email protected]> wrote: > On Wed, 2009-05-06 at 07:02 +0200, Michele Simionato wrote: >> On Wed, May 6, 2009 at 6:18 AM, Derick Eddington >> <[email protected]> wrote: >> > The on-demand semantics is a result of Ikarus's implicit phasing. >> >> No, Ypsilon does implicit phasing but it instantiates the imported >> modules always. > > Yes. Aziz told you: > > On Tue, 2009-05-05 at 12:06 +0300, Abdulaziz Ghuloum wrote: > > Being different was not a design goal of the system; you understand > > that. It's a byproduct of dropping the "for" syntax from the import > > form and disassociating its purpose as a scoping mechanism from its > > use for instantiation. > > I was talking about Ikarus. Before I posted last time, I did know > Ypsilon does what you say. I say Ypsilon is doing implicit phasing > wrong.
Maybe Ypsilon is using a non-orthodox interpretation of what "implicit phasing" means, but its interpretation is allowed by the R6RS and I happen to like its behaviour. In your example Ypsilon prints "(macro-helper) invoked" which is consistent with what I would have expected. IOW, I would have made the same mistake of Fujita, if I were a Scheme implementor. I convinced that others would make the same "mistake" too. >> Suppose I am importing a library >> purely for its side effects > > That is a major misuse of importing. Importing is purely a lexical > scope thing. It's far more confusing to have to figure-out that a > lexical import is being done to implicitly cause side-effects at > execution time. If you want to execute something in an imported > library, say so (in code), like you would for a zillion other cases. You say so, but at least the PLT people think in a different way. I say the meaning of "import" is open to interpretation in the Scheme world and I do not know of any other implementation using the meaning in the strict sense of Ikarus.
