A Summary of Project so far [Why ANSI CL?]

Marc Wachowitz mw@ipx2.rz.uni-mannheim.de
Fri, 23 May 97 20:28:36 +0200


"Dwight Hughes" <dhughes@intellinet.com> wrote:
> There is
> also the practical consideration that there does not seem to be
> a Scheme available that can compile to x86 native code *and* that is
> written almost entirely in Scheme (not C).

IMO this argument shouldn't really be relevant in this case. Scheme is
such a simple language that we can trust to be able to (re-)implement
as much of it as we want, as long as the general model of the system
isn't too bad. Also, a lacking standard about e.g. a module system or
object oriented support shouldn't be a primary problem, as long as we
can reach a consensus for our needs which is sufficiently open-ended
to add the more fancy ideas later (a basic module system is easy with
macros - I'm currently implementing just that).

For an initial period, an implementation generating C source code and
using C for some parts of the run-time support (like garbage collection)
probably wouldn't hurt, and while we're moving towards a native code
backend/runtime, it won't have to be extremely fast immediately. Clever
register allocation and floating point optimization can wait until later.

Any short-term efficiency needs for system-level hacking can most likely
be solved by problem-specific procedures/macros implemented directly at
a lower level (like some form of assembly-in-s-expressions), but using
an interface which allows a (possibly also more general) higher-level
implementation later. We probably don't need a hardware interrupt handler
in 50K lines of Lisp tomorrow.

---

The really important question is whether we want essentially an Integrated
Common Lisp Machine, or incorporate substantial new language level stuff.

In the former case, hacking CMU-CL is certainly close to what we need.
In the latter case, a language which does already carry too much around
does very easily get into the way - as the recent discussion about an
immutable CONS to Common Lisp should have demonstrated. (Btw, I probably
don't like the role of a language lawyer any more than others around here,
but the mentioned concerns in that debate are hairy real-world porting
problems cut down to a more easily understandable size. If you find such
discussions annoying, I doubt you'll like debugging unexpected problems
with programs assuming something else than your preferences any more.)

-- Marc Wachowitz <mw@ipx2.rz.uni-mannheim.de>