5 ms·
But... why?? Edit: > This paper presents DOPPIO, a JavaScript-based runtime system that makes it possible to run unaltered applications written in generalpurp
by the_duke 9y ago
But... why??
Edit:
> This paper presents DOPPIO, a JavaScript-based runtime system
that makes it possible to run unaltered applications written in generalpurpose
languages directly inside the browser.
Someone should really have told them about webassembly...
- wgjordan 9y agoThis paper was first published in June 09–11 2014 (first commit Feb 11 2014), Webassembly was first announced on June 17 2015.
- jryan49 9y agoThe paper was released at least a year before WebAssembly was even announced...
- shakna 9y ago... and a year after WASM's predecessor was announced.
- jryan49 9y agoDirectly from asm.js FAQ (http://asmjs.org/faq.html http://asmjs.org/faq.html): Q. Can asm.js serve as a VM for managed languages, like the JVM or CLR? A. Right now, asm.js has no direct access to garbage-collected data; an asm.js program can only interact indirectly with external data via numeric handles. In future versions we intend to introduce garbage collection and structured data based on the ES6 structured binary data API, which will make asm.js an even better target for managed languages.
- shakna 9y agoJust pointing out that the work on what would become WASM was already heavily underway by that point.
- dukoid 9y agoWebassembly doesn't have GC (yet)
- lihaoyi 9y agoThe first commit to Doppio was 13 Feb 2012 One year before asm.js appeared, in Mar 2013 Three years before WebAssembly appeared, in June 2015 Five years later, In 2017, WebAssembly still doesn't have a GC and cannot run the Java/Scala/Groovy programs that Doppio was able to run in 2012
- raddan 9y agoDoppio's lineage goes back even further than 2012. A "JVM in JS" was given in Emery Berger's 691ST course in the fall of 2011. My notes show that I submitted my "finished" JVM on October 26, 2011. I say "finished" because it became obvious rather quickly that a lot of things would be difficult if not impossible in JS (like threading and synchronization) and so we negotiated with Emery to come up with a subset of Java that we could reasonably implement for a class project. IIRC, there were 6-8 VMs written that semester. Doppio proper (the repository you refer to) started during the spring meeting of 691. Those guys went above and beyond the minimal spec we implemented, and they tackled a lot of stuff that we thought was impossible. Thus the research paper. IIRC, we also had to write a decentralized chat program in JS that semester. That was also "fun". Yes, I created a HN account just to post this.
- cscurmudgeon 9y agoThank you. This is great work from both an engineering and scientific perspective.