On Sat, Jul 13, 2013 at 11:57 AM, Jonathan S. Shapiro <[email protected]>wrote:

> What other language virtual machines am I failing to consider?
>

I think CLR is a better fit for your goals, but another semi-related option
is V8+typed-arrays+typescript.

In some ways, V8+typed-arrays+typescript could (if you squint a bit) seem
very much like Java+boxed-value-types -- depending on the level of JIT
optimization for wrappers around the typed-arrays. I say this because both
Java and Javascript-prototypes use lazy method binding (aka everything is
virtual), and JIT to optimize away some of that dispatch cost at runtime.
This is in contrast to CLR, which supports non-virtual
type-overloaded-functional-methods -- and as a result has more efficient
(and potentially more rigid) ahead-of-time compilation.

---

On a related note, some things you said long ago about GC and bitc have
been swirling around in my head, and I recently have been trending towards
a different conclusion than I had previously. I'm still a big proponent of
adopting true pauseless GC solutions (like Azul-Zing), however, I think we
have under-exploited possibilities to *dramatically* reduce pressure on the
GC heap. Both by favoring "allocation-less" standard libraries, and by
creating a more comfortable pattern for C-esq
refcounted-struct-array-elements, with typesafe-handles (instead of
pointers) between them. Between these two strategies, actual GC-traced
pointers might be kept to a reasonable level while still achieving
typesafety. I hope that very terse description makes some sense.

I'm not going to say any more now because I don't want to derail the intent
of your thread. Happy to discuss more on-or-off list.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to