<div dir="ltr">Hello,<div><br></div><div>If your goal is to have a lisp implementation running in your browser, there's another approach which I think is interesting: Google developed this technology for Chrome/Chromium called "Native client" (<a href="https://code.google.com/p/nativeclient/">https://code.google.com/p/nativeclient/</a>) which allows running native code in Chrome in a sandboxed environment. <br>
<div class="gmail_extra"><br></div><div class="gmail_extra">You can check my experiments with it here: <a href="https://github.com/ageneau/ecl-android">https://github.com/ageneau/ecl-android</a>. It includes a sample ECL REPL web application based on "hterm". Compiling ECL for this toolchain requires very little changes to ECL itself.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra" style>Unfortunately it looks like other browsers won't pick up the technology so this is limited to Chrome/Chromium.</div><div class="gmail_extra"><br></div>
<div class="gmail_extra">Current limitations:</div><div class="gmail_extra">* Single threaded -> This is because NaCL doesn't have sigprocmask</div><div class="gmail_extra">* File system access not implemented<br>* GMP/MPIR uses the fallback C implementation so is probably not very performant<br>
<br>Regards,</div><div class="gmail_extra">Sylvain</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 18, 2013 at 10:10 AM, Juan Jose Garcia-Ripoll <span dir="ltr"><<a href="mailto:juanjose.garciaripoll@gmail.com" target="_blank">juanjose.garciaripoll@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">
<div class="im">On Wed, Apr 17, 2013 at 9:55 PM, Anton Vodonosov <span dir="ltr"><<a href="mailto:avodonosov@yandex.ru" target="_blank">avodonosov@yandex.ru</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>In theory CL core consists of 25 special operators + build-in data types. Everything else<br>

is a library. So when porting to a new platform, theoretically, all we need to reimplement<br>
is a compiler understanding 25 operators + some build-in functions representing datatypes<br>
(make-array, aref, cons, etc) and some basic reader, allowing to read the source code of the library.<br></div></blockquote><div><br></div></div><div>That is indeed the theory. In practice much of the library deals with operating system stuff: memory allocation, files, etc. That forces a low level implementation of several core structures. Moreover, several functions are critical for performance and are also hard-coded to make bootstrapping faster.</div>
<div class="im">

<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>
How close this theoretical view to practice? We now have several open-source CL implementations.<br>
If one wants to create a Javascript port, what else he must be prepared to solve?<br></div></blockquote></div></div><br>ECL is pretty well isolated: the C library works like the lisp API and offers a number of functions that one may start with. Many of those functions could _nowadays_ be ported back to Common Lisp, using the fact that the compiler is more efficient. But there are critical things, such as the filesystem, running processes, or I/O operations, that would be hard to implement from scratch.<br>


<br clear="all"><div>Perhaps Christian could comment, given that he is using the ECL Common Lisp base to implement a LLVM-based Common Lisp implementation</div><div><br></div><div>Juanjo</div><span class=""><font color="#888888"><div>
<br></div>

-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a>
</font></span></div></div>
<br>------------------------------------------------------------------------------<br>
Precog is a next-generation analytics platform capable of advanced<br>
analytics on semi-structured data. The platform includes APIs for building<br>
apps and a phenomenal toolset for data science. Developers can use<br>
our toolset for easy data analysis & visualization. Get a free account!<br>
<a href="http://www2.precog.com/precogplatform/slashdotnewsletter" target="_blank">http://www2.precog.com/precogplatform/slashdotnewsletter</a><br>_______________________________________________<br>
Ecls-list mailing list<br>
<a href="mailto:Ecls-list@lists.sourceforge.net">Ecls-list@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/ecls-list" target="_blank">https://lists.sourceforge.net/lists/listinfo/ecls-list</a><br>
<br></blockquote></div><br></div></div></div>