On Tue, May 12, 2009 at 4:14 PM, Abdulaziz Ghuloum <[email protected]> wrote:
> See, Ikarus does not invoke the library that does not define
> a variable used outside, right?  But importing that library
> forces Ikarus to at least expand it, right?  Expanding the
> library evaluates its transformers, right?  And what can we
> put in transformers?  Global side effects of course!  And
> since the library's expand-time side effects go into the the
> same store as the script's run time, voilla, we now have a
> solution to Ikarus's stubbornness for not invoking these
> much-needed-to-be-evaluated-for-side-effects-only libraries.
>
> Right!
>
> This is exactly the kind of thinking that one should not be
> doing.  Supporting scenarios that go along these lines of
> thinking is also something I don't intend to do, ever.

Your position is clear. However, I still have some question,
as always!
Consider for instance an implementation of (Tiny)CLOS.
AFAIK such implementations are based on side
effects to populate a hash table of functions.
If I have a module which just imports the base
generic function, and adds multimethods to
it with define-method, without exporting other
variables, I wonder if Ikarus would instantiate
that module and populate the generic functions with
the methods, or not, because of the import "lazyness".
BTW, I think you did implement some version
of TinyCLOS in the past; did your implementation work without
relying on side effects? And how so?

             Michele

Reply via email to