Issue by brson
Wednesday Apr 18, 2012 at 20:44 GMT
For earlier discussion, see rust-lang/rust#2235
This issue was labelled with: A-an-interesting-project, A-build, A-runtime, E-hard, I-wishlist in the Rust repository
Looks kinda-working with a bit of hackery - http://www.reddit.com/r/rust/comments/2ylzkx/a_game_written_with_piston_running_on_the_web_via/
@antonkulaga it should perform much better in a browser that supports asm.js - tests show asm.js is within about a factor of 2 of native performance.
it's not working any more: AerialX/cargo-build#2
@t128 The next step is basically rust-lang/rust#26505
Also why make a transpiler, instead of getting it to work with emscripten?
@bennyn The previous PR has been closed in favor of rust-lang/rust#28355
To give a summary (hopefully I don't say anything wrong):
After these two PRs we probably need to tweak the lists of build targets, then compiling a program with #![no_std] should probably work.
Then the stdlib probably needs some tweaks, although in don't know at which degree.
Just wanted to give a notice here: with WebAssembly being implemented as a pure LLVM backend in the future, compiling from Rust to WebAssembly should prove ridiculously easy, and as WebAssembly has JS polyfills, running it in browsers will be easy too.
@tomaka I have other inbound PRs that address all of those issues. Plus this PR: rust-lang/rust#27937 . Also don't forget about the work I still have to do in pnacl-llvm.
This branch by @brson is a work in progress that adds support for emscripten to rustc.
I tried it and it works great for the moment (I managed to run glium's teapot example with WebGL with some changes in the stdlib and in glutin and glium), although @brson said that things weren't getting compiled properly in release mode (I didn't try release mode).
Hope I'm not adding too much noise; could anyone tell me the current status of this issue?
I don't know enough to implement it myself, but have been eagerly following all PRs hoping I might one day find a set of commands that lets me compile a Rust program, with or without stdlib, to JS :)
What's currently still needed to bring emscripten support into the nightly builds? I'm having a hard time getting an overview of what the current blocking issues are for this.
Other than that, most of the critical bugs have been fixed already and the rest of the fixes are in rust-lang/rust#31623.