epsilon-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [epsilon-devel] epsilon in javascript in the browser


From: amz3
Subject: Re: [epsilon-devel] epsilon in javascript in the browser
Date: Mon, 30 Dec 2013 07:22:07 +0100
User-agent: Roundcube Webmail/0.9.5

(Sorry for the duplicate email, I'm not fully familiar with my new email software)

On 2013-12-30 03:15, Luca Saiu wrote:
On 2013-12-29 at 23:51, address@hidden wrote:

I am working on a epsilon implementation in JavaScript. The purpose of
this project are manyfolds:

amz3 and I already exchanged a couple messages about this in private.

I'm no fan of the web, but this is a nice,

ambitious project,

Why is that? It looks pretty simple actually.

if particularly if you care about performance. As I told you in private,
I'll be very interested in comparing performances.

I don't really care about performances actually. I fail to understand why performances will be interesting since asm.js is known to be slower than native [1][2]. Nonetheless I will consider it.

I'm honored that you consider epsilon worthy of this.

Hey you don't have to. I am thankful in the first place for the existence of epsilon, without it I would surely be implementing yet-another-scheme-from-scratch which would be not particularly useful for anyone. At least with epsilon, I have some rails to follow and something to learn from some one more experienced. Thank you.

My understanding is that epsilon is lowering the barrier of entry for creating languages, I'm not sure it's is very much needed, but at least it will burn the late hours of some hackers around the world. And I'm pretty confident good things will happen for epsilon and you. At the very least it's the state of the art of language creation, as such it's worth considering.

I have just one comment, which however I think is crucially important:
epsilon's design can make your work *much* easier than your current
design.  You'd have to implement epsilon0 primitives, an epsilon0
interpreter (compiling to Javascript on the fly if you want), and that
would be it: epsilon1 is implemented in epsilon0, so you won't have to
redo the difficult part.  You can just run by loading an unexeced image
into your new environment.  Load it with Javascript, epsilon0, or
whatever is convenient to you; it's quite easy: I've implemented this
both in epsilon0 and in C (just for speed).  Look at unexec.e.

This will become easier as soon as I complete the bootstrap process and
remove the dependency from Guile.  For example, I still use Scheme's
load procedure to load a file, and there's no good epsilon1
Read-Eval-Print Loop.  However all of this is trivial, compared to a
re-implementation of epsilon1.

I don't understand. Which file do you want me to unexec? I was planning to implement epsilon0 only. I'm not sure where the implementation of epsilon1 is.

The current implementation does the following:

- parse some sexpr into a list of tokens.
- convert the tokens to list a atoms or lists
- an atom can be a JavaScript number or a string
- there is stack of contexts where are defined procedures et al.
- some e0 primitives are defined, but not enough to do anything useful.

... that is all... it's not much...


[1] http://techcrunch.com/2013/12/21/mozillas-asm-js-gets-another-step-closer-to-native-performance/
[2] http://kripken.github.io/mloc_emscripten_talk/sloop.html



reply via email to

[Prev in Thread] Current Thread [Next in Thread]