Emscripten: An LLVM-to-JavaScript Compiler
Switch branches/tags
Clone or download
sbc100 Cleaner handling of clusure compiler errors (#7313)
Previously you would see an emscripten internal backtrace
if closure compiler failed.

Sadly we have a lot of existing warnings so we don't display
the process stderr unless we the subprcess returns non-zero.

I guess we should try to address the closure warnings, at least
the ones in emscripten proper.
Latest commit 5e33efb Oct 20, 2018
Permalink
Failed to load latest commit information.
.circleci Remove EMSCRIPTEN_ROOT from config file (#7254) Oct 17, 2018
cmake/Modules Remove ERROR_ON_UNDEFINED_SYMBOLS=1 from tests and other places since… Oct 15, 2018
docs add docs for upgrading bundled libs [ci skip] (#7286) Oct 18, 2018
media remove extraneous eps since we have svg Mar 6, 2014
site webidl binder: define properties with JS accessors (#7298) Oct 18, 2018
src Report missing EXPORTED_FUNCTIONS by default (#7311) Oct 19, 2018
system Merge pull request #7265 from juj/update_main_thread_em_asm_docs Oct 12, 2018
tests Cleaner handling of clusure compiler errors (#7313) Oct 20, 2018
third_party Add copyright headers to locally authored files (#7116) Sep 14, 2018
tools Cleaner handling of clusure compiler errors (#7313) Oct 20, 2018
.clang-format Add .clang-format file (copied from binaryen) (#7164) Sep 21, 2018
.flake8 Cleanup scons support and remove config file parsing (#7249) Oct 10, 2018
.gitattributes Add more minified JS file to the .gitattributes (#7201) Sep 28, 2018
.gitignore Add new option for file_packager.py to store metadata externally. May 8, 2015
.style.yapf Add .style.yapf for the YAPF python formatter (#6782) Jun 30, 2018
.travis.yml Split the `other` test suite on travis (#7221) Oct 6, 2018
AUTHORS webidl binder: define properties with JS accessors (#7298) Oct 18, 2018
CONTRIBUTING.md fix contributing link Sep 25, 2014
ChangeLog.md Consistent use of .md for markdown files (#7300) Oct 18, 2018
Dockerfile Remove EMSCRIPTEN_ROOT from config file (#7254) Oct 17, 2018
LICENSE mention third_party in LICENSE Apr 13, 2016
README.md Update travis and circleci badge links to point incoming branch (#7032) Aug 22, 2018
em++ fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
em++.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
em++.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
em-config Replace uses of `eval` (#6069) (#6436) Apr 30, 2018
em-config.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emar fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emar.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emar.py Move setjmp/longjmp helper functions and globals to compiler_rt_wasm … ( Oct 2, 2018
embuilder.py Implement EMCC_FORCE_STDLIBS using --whole-archive (#7274) Oct 15, 2018
emcc Always run via subprocess in python-selector. (#6795) Jul 11, 2018
emcc.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emcc.py Support input from the global Module object in MODULARIZE_INSTANCE (#… Oct 18, 2018
emcmake fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emcmake.bat Redirect emcmake calls to emconfigure. Feb 14, 2014
emcmake.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
emconfigure fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emconfigure.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emconfigure.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
emlink.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
emmake fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emmake.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emmake.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
emranlib Make emranlib, system/bin/sdl-config and system/bin/sdl2-config execu… Jan 11, 2016
emranlib.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emrun Fix emrun after recent python_selector change (#6844) Jul 12, 2018
emrun.bat Added emrun utility that allows running .html files in a browser like… Dec 13, 2013
emrun.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
emscons Cleanup scons support and remove config file parsing (#7249) Oct 10, 2018
emscons.py Cleanup scons support and remove config file parsing (#7249) Oct 10, 2018
emscripten-version.txt 1.38.13 Oct 10, 2018
emscripten.py Report missing EXPORTED_FUNCTIONS by default (#7311) Oct 19, 2018
package.json update package.json Mar 3, 2014

README.md

emscripten logo

Build Status CircleCI

Emscripten is an LLVM-to-JavaScript compiler. It takes LLVM bitcode - which can be generated from C/C++, using llvm-gcc (DragonEgg) or clang, or any other language that can be converted into LLVM - and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run).

Links to demos, tutorial, FAQ, etc: https://github.com/kripken/emscripten/wiki

Main project page: http://emscripten.org

License

Emscripten is available under 2 licenses, the MIT license and the University of Illinois/NCSA Open Source License.

Both are permissive open source licenses, with little if any practical difference between them.

The reason for offering both is that (1) the MIT license is well-known, while (2) the University of Illinois/NCSA Open Source License allows Emscripten's code to be integrated upstream into LLVM, which uses that license, should the opportunity arise.

See LICENSE for the full content of the licenses.