[Vm-dev] WebAssembly

Eliot Miranda eliot.miranda at gmail.com
Thu Dec 8 06:08:17 UTC 2016


Hi Ben,

    Craig Latta had already used the SqueakJS glue to allow Cog to run in a browser.  See Snowglobe (I wish it were called SnowGlobe).  This allows full performance and as good a browser integration as obtained with SqueakJS.

_,,,^..^,,,_ (phone)

> On Dec 7, 2016, at 8:05 PM, Ben Coman <btc at openinworld.com> wrote:
> 
> 
> I've just bumped into WebAssembly and am curious what opportunities
> (or not) it might offer us.
> * https://medium.com/javascript-scene/what-is-webassembly-the-dawn-of-a-new-era-61256ec5a8f6#.60dghpaek
> 
> One approach could be to just compile our currently generated C code
> to WevAssembly via LLVM. Ronie's recent effort to produce a
> non-display minimal VM should help proof of concept here.
> * http://webassembly.org/docs/c-and-c++/
> * https://hacks.mozilla.org/2015/12/compiling-to-webassembly-its-happening/
> * http://cultureofdevelopment.com/blog/build-your-first-thing-with-web-assembly/
> 
> An obvious downside would be having a VM running on a VM.  But
> WebAssembly doesn't do garbage collection so at least it wouldn't
> double up on that.  Possibly there would be some double-up/conflict on
> JIT-ing, but there seems like there will be a facility for adding JIT
> and optimisation libraries, so possibly past investment in Cog is not
> lost.  Also perhaps(??) while WebAssembly is in its formative stage
> right now some primitives can be added to facilitate how Cog operates.
> * http://webassembly.org/docs/future-features/#platform-independent-just-in-time-jit-compilation
> * http://webassembly.org/docs/jit-library/
> 
> Another approach may be to start with SqueakJS, and work out how the
> Cog JIT could be plugged into WebAssembly as a library that SqueakJS
> (and others?) could use.  If its architecturally possible this might
> broaden the exposure of Cog(??). What would WebAssembly require to
> facilitate using Cog?
> 
> Of course all plates are full, but now seems the ideal time time to
> get involved.
> WebAssembly browser preview seeking community feedback concluding Q1 2017.
> https://www.infoq.com/news/2016/11/webassembly-browser-preview
> http://webassembly.org/roadmap/
> https://github.com/WebAssembly/design
> 
> Chrome nightly builds available to test it
> http://thenextweb.com/dd/2016/03/15/webassembly-lands-chrome-canary-offering-glimpse-future-web/
> 
> It would be amazing to run Cog in a web browser, and thus facilitate
> all our favourite Smalltalk dialects.
> 
> Side thought: Craig's work to incrementally download a running image
> could be useful to reducing web page startup time.
> 
> cheers -ben


More information about the Vm-dev mailing list