[webkit-dev] WebKit branch to support multiple VMs (e.g., Dart)

Filip Pizlo fpizlo at apple.com
Mon Dec 5 23:36:09 PST 2011

It's not quite true that multiple languages are exposed to the web. One Turing-complete language is exposed, and any Turing-complete language can be compiled to any other Turing-complete language. The fact that some developers compile their favorite languages to JS doesn't mean that we should support all of them natively. 

Supporting multiple VMs is a big infrastructural challenge, both in terms of initial bring-up and in terms of long-term maintenance. You'll need to make sure that the different GCs can coordinate, which will induce overhead. Otherwise you will either not have an story of object reclamation, or you'll have memory leaks. It's just sufficient if one program, in one language, can reference a window containing code written in a different language. Doing this right is hard. See either Wegiel and Krintz OOPSLA'10 or Pizlo, Hosking, and Vitek LCTES'07 for studies of prior attempts to have interoperability between independent GCs. Both seem to indicate >5% throughput regression. Are you claiming that a 5% throughput regression is worth it to support a new language, that is not an open standard, and currently has nonexistent adoption?


On 2011-12-05, at 10:43 PM, Vijay Menon <vsm at google.com> wrote:

> On Mon, Dec 5, 2011 at 7:28 PM, Oliver Hunt <oliver at apple.com> wrote:
>> The issue here isn't "can we make multiple vms live in webkit" it's "can we
>> expose multiple languages to the web", to the former i say obviously as we
>> already do, to the latter I say that we don't want to.
> People are already using multiple languages on the web.  E.g.,
> https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS.
> Native runtime support is a natural next step.
> WebKit does support multiple VMs, but it does not support them
> concurrently at runtime.  That is essentially what we want to enable.
> Cheers,
> Vijay
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

More information about the webkit-dev mailing list