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/>