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