<html><head><meta http-equiv="Content-Type" content="text/html charset=koi8-r"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Anton,<div><br></div><div>The compiler I'm writing uses the LLVM API to generate LLVM-IR directly which is just-in-time compiled to executable code.</div><div>Using (setq XXX (COMPILE nil (lambda (x) (* 3 x)))) returns a compiled function that can be evaluated directly using (FUNCALL XXX 4) --> 12.</div><div>There are no intermediate compilers that need to be run to generate executable code.</div><div><br></div><div>I am guided by my own interest to learn/try my own Common Lisp --> LLVM implementation.</div><div><br></div><div><br></div><div>Best,</div><div><br></div><div>.Chris.</div><div><br></div><div><br><div><div>On Mar 16, 2013, at 9:39 AM, Anton Vodonosov <<a href="mailto:avodonosov@yandex.ru">avodonosov@yandex.ru</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>05.03.2013, 01:25, "Juan Jose Garcia-Ripoll" <<a href="mailto:juanjose.garciaripoll@gmail.com">juanjose.garciaripoll@gmail.com</a>>:</div><blockquote type="cite"><div dir="ltr">On Mon, Mar 4, 2013 at 5:30 PM, Christian Schafmeister <span dir="ltr"><<a href="mailto:chris.schaf@verizon.net" target="_blank">chris.schaf@verizon.net</a>></span> wrote:<br><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:#cccccc;border-left-style:solid;padding-left:1ex;">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.</blockquote><div> </div><div>Sounds like a lot of work.</div><div> </div><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:#cccccc;border-left-style:solid;padding-left:1ex;">It hosts all of the ECL Common Lisp code in the ecl/src/lsp and ecl/src/clos directories of the ECL source tree.<br> I do not use any part of the ECL CL->C compiler or the byte code compiler.<br> I've implemented my own CL interpreter and CL->LLVM-IR->native code compiler.</blockquote><div> </div><div>I do not understand why you reimplemented the interpreter, but the LLVM thingy looks interesting.</div></div></div></blockquote><div> </div><div>As ECL can compiles List to C, a C compiler generating LLVM code may be used</div><div><span style="color:#333333;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:22px;">(</span><span style="color:#333333;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:22px;">llvm-gcc or clang)</span>.</div><div> </div><div>Juan Jose, Christian, how can you compare Lisp -> C -> LLVM with Lisp -> LLVM</div><div>solution to ECL?</div><div> </div><div>My understantind (pure theoretical, I haven't tried any of that):</div><div>if ECL can generate LLVM directly, it is a simplification to user, less tools to chain.</div><div>But Lisp to LLVM required efforts to implement and will also take mainenance efforts.</div><div>Christian, have you compared these options, or you were just guided by interest</div><div>to learn/try your own Lisp -> LLVM implementation?</div><div> </div><div>Best regards,</div><div>- Anton</div><blockquote type="cite"><div dir="ltr"> </div></blockquote></blockquote></div><br></div></body></html>