[Ecls-list] Porting CL to new platforms: what can be reused?

Anton Vodonosov avodonosov at yandex.ru
Wed Apr 17 19:55:41 UTC 2013

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.


I often think about porting Common Lisp to new platforms. Especially I am interested
in CL implementation able to compile to Javascript compiler which can work in browser.

In theory CL core consists of 25 special operators + build-in data types. Everything else
is a library. So when porting to a new platform, theoretically, all we need to reimplement
is a compiler understanding 25 operators + some build-in functions representing datatypes
(make-array, aref, cons, etc) and some basic reader, allowing to read the source code of the library.

How close this theoretical view to practice? We now have several open-source CL implementations.
If one wants to create a Javascript port, what else he must be prepared to solve?

How convenient basis the ECL codebase would be for such a port?

Best regards,
- Anton

More information about the ecl-devel mailing list