On Sat, 20 Aug 2005, bear wrote:
On Sat, 20 Aug 2005, Matthias Neubauer wrote:
This all seems to bring us back to the "good old times" where there
was no real separation between code and data---this time, it just
happens "one stage further up" ...
Check me if I'm wrong, but as far as I know the only real problem with
that was the performance hit. Lisp gives up some expressiveness (not
turing-completeness, but convenience of expression) when it's divided
into stages. ("compilation is a performance hack!")
I mean, if there were no performance problems, wouldn't it be more
powerful to be programming in a lisp where there were no separate
macroexpansion and compilation phases, and all the semantics were
available at runtime?
Maybe, but note that in the namespaces thread I was actually advocating a
stricter phase separation, not a looser one, in the suggestion that variables
from different phases should not be able to interfere. An advantage of this
approach is that the meaning of the code then depends just on its lexical
structure, as opposed to being image-based. The meaning is also "invariant
under compilation". I appreciate that the image-based approach has its own
arguments in favour, but for the purposes of this SRFI I would like to choose
one approach and apply it consistently.
I have implemented this idea and will make it available in the next revision for
comment.
Cheers
Andre