[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


I still haven't had time to read through the difference list, although
I am tempted to give my usual reply "If the differences are trivial,
why did you make them.  I'm sure you'll supply a translator that will
let me ignore them."

As to when an implementation is allowed to "cheat", one of the
SmallTalk implementation groups expressed it best; too bad I'll have
to paraphrase.  "An implementor must cheat, but can't get caught."  In
other words, convenient doesn't imply legal.  (There's a lot of hair
in TC to guarantee that when it caches common sub-expressions, the
cache is invalidated correctly.  It would be a lot more convenient to
eliminate that hair; the generated code would run faster too.  Anyone
care to defend that change?)

I was at the Lisp conference so I may have missed the Lisp meeting at
AAAI where you asked the question.  I'm not sure how relevant it is.
Existing lisp implementations can not afford to change to
tail-recursion.  I'd expect an implementor of an existing language to
resent having it redefined out from under him.  (If you asked me to
make my pascal compiler generate tail recursive code, I'd tell you to
go die.)  Neither Scheme nor T are not lisp in the sense that Maclisp,
ZetaLisp, InterLisp, FranzLisp, or PSL are.  CommonLisp may be a third