Re: Idle musings on doing E over again

Kevin Reid <kpreid-M/[email protected]> Thu, 11 Oct 2012 07:33:54 -0700
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
On Oct 11, 2012, at 2:45, Ben Laurie wrote:

> On 28 September 2012 15:41, Kevin Reid <kpreid-M/[email protected]> wrote:
>> I was trying to get to sleep last night, and was struck by the thought of: If we were designing E from scratch (with the same goals), what would I actually do differently?
> 
> I'm afraid I lost track of the conversation here, but the one thing
> I'd say is: don't build on top of the JVM.

What do you see as the disadvantages of doing so?

As noted in my original message, I see the best option as building on top of JavaScript. This is, yes, yet another high-level VM. However, it is one which is extremely widely available; I see it as the best chance to make a difference.

I would like to know whether your criticism of the JVM applies here as well.

> On top of LLVM would be
> pretty neat (you might then want some kind of E-on-E interpreter for
> interactive, if you really care about interactive, not sure it matters
> that much, TBH - maybe you can even compile/link small programs fast
> enough to not need it).

Based on the example set by Steel Bank Common Lisp, I would hope that we can have a sufficiently fast compiler to compile interactive execution. (For that matter, E-on-CL did, though I never exercised the interactive functionality very much.)

In the case of a high-level target, the best path seems to me to be a bootstrap interpreter written in the target, and a compiler to the target written in E. An interpreter for current E written in E is nearly trivial.

In the case of something like LLVM, I'm not sure what I'd choose for a bootstrap. I don't care for fully self-hosting systems that require bootstrap binaries and constrain system changes to incremental ones.

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>