[Ecls-list] Announce: A new C++ based implementation of Common Lisp based on the ECL CL code

Christian Schafmeister chris.schaf at verizon.net
Sat Mar 16 22:21:08 UTC 2013


The compiler I'm writing uses the LLVM API to generate LLVM-IR directly which is just-in-time compiled to executable code.
Using (setq XXX (COMPILE nil (lambda (x) (* 3 x)))) returns a compiled function that can be evaluated directly using (FUNCALL XXX 4) --> 12.
There are no intermediate compilers that need to be run to generate executable code.

I am guided by my own interest to learn/try my own Common Lisp --> LLVM implementation.



On Mar 16, 2013, at 9:39 AM, Anton Vodonosov <avodonosov at yandex.ru> wrote:

> 05.03.2013, 01:25, "Juan Jose Garcia-Ripoll" <juanjose.garciaripoll at gmail.com>:
>> On Mon, Mar 4, 2013 at 5:30 PM, Christian Schafmeister <chris.schaf at verizon.net> wrote:
>> I've created a new implementation of Common Lisp that has a core written in C++ completely from scratch but hosts the ECL Common Lisp source code.
>> Sounds like a lot of work.
>> It hosts all of the ECL Common Lisp code in the ecl/src/lsp and ecl/src/clos directories of the ECL source tree.
>> I do not use any part of the ECL CL->C compiler or the byte code compiler.
>> I've implemented my own CL interpreter and CL->LLVM-IR->native code compiler.
>> I do not understand why you reimplemented the interpreter, but the LLVM thingy looks interesting.
> As ECL can compiles List to C, a C compiler generating LLVM code may be used
> (llvm-gcc or clang).
> Juan Jose, Christian, how can you compare Lisp -> C -> LLVM with Lisp -> LLVM
> solution to ECL?
> My understantind (pure theoretical, I haven't tried any of that):
> if ECL can generate LLVM directly, it is a simplification to user, less tools to chain.
> But Lisp to LLVM required efforts to implement and will also take mainenance efforts.
> Christian, have you compared these options, or you were just guided by interest
> to learn/try your own Lisp -> LLVM implementation?
> Best regards,
> - Anton

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20130316/2e1289a4/attachment.html>

More information about the ecl-devel mailing list