Re: CL implementations and tail-call optimization



In article <1156761645.434767.82780@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
Rob Thorpe <robert.thorpe@xxxxxxxxxxxx> wrote:
I've looked at all of the implementations on my machine. All of Sbcl,
Ecl , Clisp and Gcl have TCO in their compilers. The normal
interpreters of Ecl, Gcl and Clisp don't have it (and Sbcl doesn't have
an interpreter).

[Apologies for pulling this thread out of the deep.]

Just as a note, since 0.9.17 SBCL has had a full interpreter. It is not
enabled by default; to use it:

(setf sb-ext:*evaluator-mode* :interpret) ; :compile for default behavior

It is primarily intended for performance of run-once code and eventual
support of compilerless images. There is currently no debugger support
(you see the frames of the evaluator guts in the debugger), and in
general compiled code is a lot more developer-friendly.

Unlike CMUCL's interpreter SBCL's directly interprets the source code.
(CMUCL interprets the IR1 flow graph the compiler generates, IIRC.)

-bcd
--
*** Brian Downing <bdowning at lavos dot net>
.



Relevant Pages

  • Re: Minimal Forth
    ... Play around with the search order, ... Cross compilers typically do things to the search order, ... patching the interpreter, which ANS doesn't allow. ...
    (comp.lang.forth)
  • Re: Using Python for programming algorithms
    ... Java interprets the bytecode in a virtual machine by default. ... but incurs the penalty from running an interpreter most of the ... The speed of Common Lisp with compilers like SBCL and CMUCL comes from ...
    (comp.lang.python)
  • Re: [OT] header file question
    ... but is there any that compilers can do and interpreters ... both places is easier, or at least simpler, in an interpreter, since ... Compiled code almost always runs faster than interpreted, ... You can usually combine object code compiled from multiple languages ...
    (comp.lang.c)
  • Re: (setf (if c x y) val)
    ... >Clisp is an interpreter - most Common Lisps are compilers. ... >Your examples doesn't work on SBCL for example. ... whether compiled or interpreted code is running (CLISP can do both). ...
    (comp.lang.lisp)
  • Re: Pythons Performance
    ... > definition of a compiled language... ... Once byte-code compilers running an interpreter in a virtual ... Python is compiled AND interpreted -- it compiles ... compiling interpreter, or maybe an interpreting compiler, in my book. ...
    (comp.lang.python)