This document describes changes between tagged Emscripten SDK versions.
Note that in the compiler, version numbering is used as the mechanism to invalidate internal compiler caches,
so version numbers do not necessarily reflect the amount of changes between versions.
To browse or download snapshots of old tagged versions, visit https://github.com/kripken/emscripten/releases .
Not all changes are documented here. In particular, new features, user-oriented fixes, options, command-line parameters, usage changes, deprecations, significant internal modifications and optimizations etc. generally deserve a mention. To examine the full set of changes between versions, visit the link to full changeset diff at the end of each section.
Current trunk code
------------------
- To see a list of commits in the active development branch 'incoming', which have not yet been packaged in a release, see
https://github.com/kripken/emscripten/compare/1.12.3...incoming
v1.12.3: 2/27/2014
------------------
- Fixed alcOpenDevice on Safari.
- Improved the warning message on missing symbols to not show false positives (#2154).
- Improved EmscriptenFullscreenChangeEvent HTML5 API structure to return information about HTML element and screen sizes for convenience.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.12.2...1.12.3
v1.12.2: 2/25/2014
------------------
- Added better warning message if Emscripten, LLVM and Clang versions don't match.
- Introduced the asmjs-unknown-emscripten target triple that allows specializing LLVM codegen for Emscripten purposes.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.12.1...1.12.2
v1.12.1: 2/25/2014
------------------
- TURNED ON FASTCOMP BY DEFAULT. This means that you will need to migrate to fastcomp-clang build. Either use an Emscripten SDK distribution, or to build manually, see https://github.com/kripken/emscripten/wiki/LLVM-Backend for info.
- Migrate to requiring Clang 3.3 instead of Clang 3.2. The fastcomp-clang repository by Emscripten is based on Clang 3.3.
- Deprecated old Emscripten libgc implementation.
- asm.js will now be always enabled, even in -O0 builds in fastcomp.
- Remove support for -s RUNTIME_TYPE_INFO, which is unsupported in fastcomp.
- Added a new "powered by Emscripten" logo.
- Updated default shell.html graphical layout.
- Added new macro EM_ASM_, which allows sending values to JS without returning anything.
- Deprecated the jcache compiler option. It should not be needed anymore.
- Added support for fetching callstack column information in Firefox 30 in emscripten_get_callstack.
- Fix issues with missing exceptions-related symbols in fastcomp.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.12.0...1.12.1
v1.12.0: 2/22/2014
------------------
- Improved the runtime abort error message when calling an invalid function pointer if compiled with -s ASSERTIONS=1 and 2. This allows the developer to better deduce errors with bad function pointers or function pointers casted and invoked via a wrong signature.
- Added a new api function emscripten_set_main_loop_arg, which allows passing a userData pointer that will be carried via the function call, useful for object-oriented encapsulation purposes (#2114).
- Fixed CMake MinSizeRel configuration type to actually optimize for minimal size with -Os.
- Added support for GLES2 VAO extension OES_vertex_array_object for browsers that support it.
- Fix issues with emscripten/html5.f when compiled with the SAFE_HEAP option.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.11.1...1.12.0
v1.11.1: 2/19/2014
------------------
- Improved eglSwapBuffers to be spec-conformant.
- Fixed an issue with asm.js validation and va_args (#2120).
- Fixed asm.js validation issues found with fuzzing.
- Added new link-time compiler flag -s RETAIN_COMPILER_SETTINGS=1, which enables a runtime API for querying which Emscripten settings were used to compile the file.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.11.0...1.11.1
v1.11.0: 2/14/2014
------------------
- Implemented some new SDL library functions.
- Renamed standard file descriptors to have handles 0, 1 and 2 rather than 1, 2 and 3 to coincide with unix numbering.
- Improved embind support with smart pointers and mixins.
- Improved the registerization -O3 optimization pass around switch-case constructs.
- Upper-case files with suffix .C are now also recognized (#2109).
- Fixed an issue with glGetTexParameter (#2112).
- Improved exceptions support in fastcomp.
- Added new linker option -s NO_EXIT_RUNTIME=1, which can be used to set a default value for the Module["noExitRuntime"] parameter at compile-time.
- Improved SDL audio buffer queueing when the sample rate matches the native web audio graph sample rate.
- Added an optimization that removes redundant Math.frounds in -O3.
- Improved the default shell.html file.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.10.4...1.11.0
v1.10.4: 2/10/2014
------------------
- Added support for legacy GL emulation in fastcomp.
- Deprecated the --split-js compiler option. This is not supported in fastcomp.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.10.3...1.10.4
v1.10.3: 2/9/2014
------------------
- Work on supporting GL/EGL GetProcAddress.
- Fixed issues with shared lib linking support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.10.2...1.10.3
v1.10.2: 2/7/2014
------------------
- Added basic FS unmount support.
- Improved screen orientation lock API to return a success code.
- Added PRECISE_F32 support to fastcomp.
- Fixed issues in fastcomp related to special floating point literal serialization.
- Improved SDL audio buffer queueing.
- Added new link-time option -s WARN_UNALIGNED=1 to fastcomp to report compiler warnings about generated unaligned memory accesses, which can hurt performance.
- Optimized libc strcmp and memcmp with the implementations from musl libc.
- Optimized libc memcpy and memset to back to native code for large buffer sizes.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.10.1...1.10.2
v1.10.1: 1/31/2014
------------------
- Improve srand() and rand() to be seedable and use a Linear Congruential Generator (LCG) for the rng generation for performance.
- Improved OpenAL library support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.10.0...1.10.1
v1.10.0: 1/29/2014
------------------
- Improved C++ exception handling.
- Improved OpenAL library support.
- Fixed an issue where loading side modules could try to allocate from sealed heap (#2060).
- Fixed safe heap issues (2068).
- Added new EM_ASM variants that return a value but do not receive any inputs (#2070).
- Add support for simultaneously using setjmp and C++ exceptions in fastcomp.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.9.5...1.10.0
v1.9.5: 1/25/2014
------------------
- Added a spinner logo to default html shell.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.9.4...1.9.5
v1.9.4: 1/24/2014
------------------
- Add support for Ninja and Eclipse+Ninja builds with Emscripten+CMake.
- Fixed regressions with GL emulation.
- Added support for #if !X in .js library preprocessor.
- Make the syntax EM_ASM("code"); not silently fail. Note that the proper form is EM_ASM(code); without double-quotes.
- Optimize generated code size by minifying loop labels as well.
- Revised the -O3 optimization level to mean "safe, but very slow optimizations on top of -O2", instead of the old meaning "unsafe optimizations". Using -O3 will now only do safe optimizations, but can be very slow compared to -O2.
- Implemented a new registerization optimization pass that does extra variable elimination in -O3 and later to reduce the number of local variables in functions.
- Implemented a new emscripten/html5.h interface that exposes common HTML5 APIs directly to C code without having to handwrite JS wrappers.
- Improved error messages reported on user-written .js libraries containing syntax errors (#2033).
- Fixed glBufferData() function call signature with null data pointer.
- Added new option Module['filePackagePrefixURL'] that allows customizing the URL where the VFS package is loaded from.
- Implemented glGetTexEnviv and glGetTexEnvfv in GL emulation mode.
- Optimized the size of large memory initializer sections.
- Fixed issues with the safe heap compilation option.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.9.3...1.9.4
v1.9.3: 1/17/2014
------------------
- re-merge split blocks in multiples
- Full list of changes: https://github.com/kripken/emscripten/compare/1.9.2...1.9.3
v1.9.2: 1/16/2014
------------------
- Full list of changes: https://github.com/kripken/emscripten/compare/1.9.1...1.9.2
v1.9.1: 1/16/2014
------------------
- Optimize desktop GL fixed function pipeline emulation texture load instruction counts when GL_COMBINE is used.
- fix Math_floor coercion in unrecommended codegen modes
- Full list of changes: https://github.com/kripken/emscripten/compare/1.9.0...1.9.1
v1.9.0: 1/16/2014
------------------
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.14...1.9.0
v1.8.14: 1/15/2014
------------------
- add musl fputws and fix vswprintf.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.13...1.8.14
v1.8.13: 1/15/2014
------------------
- remove musl use of fwritex
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.12...1.8.13
v1.8.12: 1/15/2014
------------------
- Added new GLEW 1.10.0 emulation support.
- Fixed an issue where the runtime could start more than once when run in a browser (#1992)
- Fix a regression in wprintf.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.11...1.8.12
v1.8.11: 1/15/2014
------------------
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.10...1.8.11
v1.8.10: 1/14/2014
------------------
- Update libc implementation from musl libc.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.9...1.8.10
v1.8.9: 1/14/2014
------------------
- add fputwc, which enables wprintf.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.8...1.8.9
v1.8.8: 1/14/2014
------------------
- Update to latest libcxx and libcxxabi libraries.
- Fix handling of floating point negative zero (#1898)
- Fixed a memory leak in relooper in previous release.
- Fixed an issue in previous release with VBO handling in GL optimizations.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.7...1.8.8
v1.8.7: 1/13/2014
------------------
- Added support to numpad keycodes in glut support library.
- Fix SIMD support with fastcomp.
- Fixed a compiler error 'ran out of names' that could occur with too many minified symbol names.
- Work around webkit imul bug https://bugs.webkit.org/show_bug.cgi?id=126345 (#1991)
- Optimized desktop GL fixed function pipeline emulation path for better performance.
- Added support for exceptions when building with fastcomp.
- Fix and issue where the run() function could be called multiple times at startup (#1992)
- Removed a relooper limitation with fixed buffer size.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.6...1.8.7
v1.8.6: 1/8/2014
------------------
- Added support for the libuuid library, see http://linux.die.net/man/3/libuuid.
- Fixed .js file preprocessor to preprocess recursively (#1984).
- Fixed a compiler codegen issue related to overflow arithmetic (#1975)
- Added new link-time optimization flag -s AGGRESSIVE_VARIABLE_ELIMINATION=1 that enables the aggressiveVariableElimination js optimizer pass, which tries to remove temporary variables in generated JS code at the expense of code size.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.5...1.8.6
v1.8.5: 1/7/2014
------------------
- Fixed compiler issues when used with LLVM 3.4.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.4...1.8.5
v1.8.4: 1/6/2014
------------------
- Added support to Return and Backspace keys to glut
- Fixed compiler issues when used with LLVM 3.4.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.3...1.8.4
v1.8.3: 1/5/2014
------------------
- Improved SDL and page scroll pos handling support for IE10 and IE11.
- Optimized SDL_UnlockSurface performance.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.2...1.8.3
v1.8.2: 1/4/2014
------------------
- Fixed glGetFramebufferAttachmentParameteriv and an issue with glGetXXX when the returned value was null.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.1...1.8.2
v1.8.1: 1/3/2014
------------------
- Added support for WebGL hardware instancing extension.
- Improved fastcomp native LLVM backend support.
- Added support for #include filename.js to JS libraries.
- Deprecated --compression emcc command line parameter that manually compressed output JS files, due to performance issues. Instead, it is best to rely on the web server to serve compressed JS files.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.8.0...1.8.1
v1.8.0: 12/28/2013
------------------
- Fix two issues with function outliner and relooper.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.9...1.8.0
v1.7.9: 12/27/2013
------------------
- Added new command line parameter --em-config that allows specifying a custom location for the .emscripten configuration file.
- Reintroduced relaxed asm.js heap sizes, which no longer need to be power of 2, but a multiple of 16MB is sufficient.
- Added emrun command line tool that allows launching .html pages from command line on desktop and Android as if they were native applications. See https://groups.google.com/forum/#!topic/emscripten-discuss/t2juu3q1H8E . Adds --emrun compiler link flag.
- Began initial work on the "fastcomp" compiler toolchain, a rewrite of the previous JS LLVM AST parsing and codegen via a native LLVM backend.
- Added --exclude-file command line flag to emcc and a matching --exclude command line flag to file packager, which allows specifying files and directories that should be excluded while packaging a VFS data blob.
- Improved GLES2 and EGL support libraries to be more spec-conformant.
- Optimized legacy GL emulation code path. Added new GL_FFP_ONLY optimization path to fixed function pipeline emulation.
- Added new core functions emscripten_log() and emscripten_get_callstack() that allow printing out log messages with demangled and source-mapped callstack information.
- Improved BSD Sockets support. Implemented getprotobyname() for BSD Sockets library.
- Fixed issues with simd support.
- Various bugfixes: #1573, #1846, #1886, #1908, #1918, #1930, #1931, #1942, #1948, ..
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.8...1.7.9
v1.7.8: 11/19/2013
------------------
- Fixed an issue with -MMD compilation parameter.
- Added EM_ASM_INT() and EM_ASM_DOUBLE() macros. For more information, read https://groups.google.com/forum/#!topic/emscripten-discuss/BFGTJPCgO6Y .
- Fixed --split parameter to also work on Windows.
- Fixed issues with BSD sockets accept() call.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.7...1.7.8
v1.7.7: 11/16/2013
------------------
- Improve SDL audio buffer queue timing support.
- Improved default precision of clock_gettime even when not using CLOCK_REALTIME.
- Optimize and fix issues with LLVM IR processing.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.6...1.7.7
v1.7.6: 11/15/2013
------------------
- Added regex implementation from musl libc.
- The command line parameter -s DEAD_FUNCTIONS=[] can now be used to explicitly kill functions coming from built-in library_xx.js.
- Improved EGL support and GLES2 spec conformance.
- Reverted -s TOTAL_MEMORY=x to require pow2 values, instead of the relaxed 'multiples of 16MB'. This is because the relaxed rule is released only in Firefox 26 which which is currently in Beta and ships on the week of December 10th (currently in Beta). As of writing, current stable Firefox 25 does not yet support these.
- Adjusted the default linker behavior to warn about all missing symbols, instead of silently ignoring them. Use -s WARN_ON_UNDEFINED_SYMBOLS=0 to suppress these warnings if necessary.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.5...1.7.6
v1.7.5: 11/13/2013
------------------
- Fix issues with the built-in C++ function name demangler.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.4...1.7.5
v1.7.4: 11/12/2013
------------------
- Fixed issues with BSD sockets code and SDL joystick implementation.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.3...1.7.4
v1.7.3: 11/12/2013
------------------
- Added support for generating single-precision floating point instructions.
- For more information, read https://blog.mozilla.org/javascript/2013/11/07/efficient-float32-arithmetic-in-javascript/
- Made GLES2 support library more spec-conformant by throwing fewer exceptions on errors. Be sure to build with -s GL_ASSERTIONS=1, remember to use glGetError() and check the browser console to best detect WebGL rendering errors.
- Converted return value of emscripten_get_now() from float to double, to not lose precision in the function call.
- Added support for joysticks in SDL via the Gamepad API
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.2...1.7.3
v1.7.2: 11/9/2013
------------------
- The compiler now always generates a .js file that contains the generated source code even when compiling to a .html file.
- Read https://groups.google.com/forum/#!topic/emscripten-discuss/EuHMwqdSsEs
- Implemented depth+stencil buffer choosing behavior in GLUT, SDL and GLFW.
- Fixed memory leaks generated by glGetString and eglGetString.
- Greatly optimized startup times when virtual filesystems with a large amount of files in them.
- Added some support for SIMD generated by LLVM.
- Fixed some mappings with SDL keyboard codes.
- Added a new command line parameter --no-heap-copy to compiler and file packager that can be used to optimize VFS memory usage at startup.
- Updated libcxx to revision 194185, 2013-11-07.
- Improvements to various library support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.1...1.7.2
v1.7.1: 10/24/2013
------------------
- Remove old call to Runtime.warn in file packager code
- Fix bug with parsing of empty types.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.7.0...1.7.1
v1.7.0: 10/23/2013
------------------
- Adds mouse wheel events support in GLUT library.
- Adds support for a new link parameter -s CASE_INSENSITIVE_VFS=1 to enable Emscripten virtual filesystem to search files ignoring case.
- *Numerous* optimizations in both compilation and runtime stages.
- Remove unnecessary whitespace, compact postSets function, and other optimizations in compilation output to save on generated file size.
- Fixes float parsing from negative zero.
- Removes the -s EMIT_GENERATED_FUNCTIONS link parameter as unneeded.
- Fixes an issue where updating subranges of GL uniform arrays was not possible.
- asm.js heap size (-s TOTAL_MEMORY=x) no longer needs to be a power of 2. As a relaxed rule, choosing any multiple of 16MB is now possible.
- O1 optimization no longer runs the 'simplifyExpressions' optimization pass. This is to improve build iteration times when using -O1. Use -O2 to run that pass.
- EM_ASM() can now be used even when compiling to asm.js.
- All currently specified non-debugging-related WebGL 1 extensions are now enabled by default on startup, no need to ctx.getExtension() manually to enable them.
- Improve readability of uncaught JavaScript exceptions that are thrown all the way up to the web console by printing out the stack trace of where the throw occurred.
- Fix an issue when renaming a directory to a subdirectory.
- Several compiler stability fixes.
- Adds a JavaScript implementation of cxa_demangle function for demangling call stack traces at runtime for easier debugging.
- GL context MSAA antialising is now DISABLED by default, to make the GL behavior consistent with desktop usage.
- Added support to SDL, GLUT and GLFW libraries to specify MSAA on/off at startup.
- Implemented glColor4ubv in GL emulation mode.
- Fix an issue with LLVM keyword __attribute__ ((__constructor__)) (#1155).
- Fix an issue with va_args and -s UNALIGNED_MEMORY=1 (#1705).
- Add initial support code for LLVM SIMD constructs and a JavaScript SIMD polyfill implementation from https://github.com/johnmccutchan/ecmascript_simd/ .
- Fixed support for node.js native filesystem API NODEFS on Windows.
- Optimize application startup times of Emscripten-compiled programs by enabling the virtual filesystem XHR and asm.js compilation to proceed in parallel when opening a page.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.6.4...1.7.0
v1.6.4: 9/30/2013
------------------
- Implements a new preprocessor tool for preparsing C struct definitions (#1554), useful for Emscripten support library implementors.
- Fix parsing issue with sscanf (#1668).
- Improved the responsiveness of compiler print output on Windows.
- Improved compilation times at link stage.
- Added support for new "NODEFS" filesystem that directly accesses files on the native filesystem. Only usable with node.js when compiling to JS.
- Added support for new IDBFS filesystem for accessing files in IndexedDB storage (#1601.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.6.3...1.6.4
v1.6.3: 9/26/2013
------------------
- Emscripten CMake toolchain now generates archive files with .a suffix when project target type is static library, instead of generatic .bc files (#1648).
- Adds iconv library from the musl project to implement wide functions in C library (#1670).
- Full list of changes: https://github.com/kripken/emscripten/compare/1.6.2...1.6.3
v1.6.2: 9/25/2013
------------------
- Added support for dprintf() function (#1250).
- Fixes several compiler stability issues (#1637, #1166, #1661, #1651 and more).
- Enables support for WEBGL_depth_texture.
- Adds support for new link flag -s GL_ASSERTIONS=1 which can be used to add extra validation layer to the Emscripten GL library to catch code issues.
- Adds support to Web Audio API in SDL audio backend so that SDL audio now works in Chrome and new Opera as well.
- Fixes an alpha blending issue with SDL_SetAlpha.
- Implemented locale-related code in C library.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.6.1...1.6.2
v1.6.1: 9/22/2013
------------------
- Several optimizations to compiler link stage.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.6.0...1.6.1
v1.6.0: 9/21/2013
------------------
- Enable support for %[] pattern in scanf.
- Added dependency tracking support to linked .js files in CMake toolchain.
- The hex prefix 0x is now properly handled in sscanf (#1632).
- Simplify internal compiler operations by removing the internal framework.js.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.9...1.6.0
v1.5.9: 9/15/2013
------------------
- Add support for SDL_Delay in web workers.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.8...1.5.9
v1.5.8: 9/14/2013
------------------
- Add support for the GCC -E compiler flag.
- Update Emscripten libc headers to musl-0.9.13.
- Added new utility function emscripten_async_load_script() to asynchronously load a new .js script URL.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.7...1.5.8
v1.5.7: 8/30/2013
------------------
- The script tag in default shell.html is now marked 'async', which enables loading the JS script code asynchronously in Firefox without making the main thread unresponsive.
- Implemented new utility function emscripten_get_canvas_size() which returns the current Module <canvas> element size in pixels.
- Optimize code size in compiled side modules.
- Optimize startup memory usage by avoiding unnecessary copying of VFS data at startup.
- Add support for SDL_WM_ToggleFullScreen().
- Add support for emscripten_get_now() when running in SpiderMonkey shell.
- Added new environment variable EM_BUILD_VERBOSE=0,1,2,3 to set an extra compiler output verbosity level for debugging.
- Added better support for dlopen() to simulate dynamic library loading in JavaScript.
- Improved support for BSD sockets and networking.
- Added new SOCKFS filesystem, which reads files via a network connection.
- Avoid issues with long command line limitations in CMake toolchain by using response files.
- Fix issues with client-side vertex data rendering in GL emulation mode.
- Improved precision of clock_gettime().
- Improve function outlining support.
- Added support for using NMake generator with CMake toolchain.
- Improved support for flexible arrays in structs (#1602).
- Added ability to marshal UTF16 and UTF32 strings between C++ <-> JS code.
- Added a new commandline tool validate_asms.py to help automating asm.js validation testing.
- Improved stability with inline asm() syntax.
- Updated libc headers to new version.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.6...1.5.7
v1.5.6: 8/17/2013
------------------
- Improved BSD sockets support.
- Added touch events support to GLUT library.
- Added new --js-opts=0/1 command line option to control whether JS optimizer is run or not.
- Improved OpenAL support.
- Added new command line tool tools/find_bigvars.py which can be used on a output file to detect large functions and needs for outlining.
- Merged link flags -s FORCE_GL_EMULATION and -s DISABLE_GL_EMULATION to a single opt-in flag -s LEGACY_GL_EMULATION=0/1 to control whether GL emulation is active.
- Improved SDL input support.
- Several stability-related compiler fixes.
- Fixed source mapping generation support on Windows.
- Added back the EMSCRIPTEN_KEEPALIVE attribute qualifier to help prevent inlining and to retain symbols in output without dead code elimination occurring.
- Fix issues when marshalling UTF8 strings between C<->JS.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.5...1.5.6
v1.5.5: 8/9/2013
------------------
- Update libcxx to revision 187959, 2013-08-08.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.4...1.5.5
v1.5.4: 8/9/2013
------------------
- Fixed multiple issues with C stdlib support.
- Fix audio buffer queueing issues with OpenAL.
- Improved BSD sockets support.
- Added a new compile+link time command line option -Wno-warn-absolute-paths to hide the emscripten compiler warning when absolute paths are passed into the compiler.
- Added new link flag -s STB_IMAGE=0/1 and integrate it to SDL image loading to enable synchronous image loading support with SDL.
- Several improvements on function outlining support.
- Fix issues with GLES2 interop support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.3...1.5.4
v1.5.3: 6/28/2013
------------------
- Added new optimization level --llvm-lto 3 to run even more aggressive LTO optimizations.
- Improve optimizations for libc and other libraries.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.2...1.5.3
v1.5.2: 6/27/2013
------------------
- Added support for generating source maps along the built application when -g is specified. This lets the browser show original .cpp sources when debugging.
- GLUT and SDL improvements.
- Added new link option -g<level> where level=0-4, which allows controlling various levels of debuggability added to the output.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.1...1.5.2
v1.5.1: 6/22/2013
------------------
- File packager now skips all directories and files starting with '.', and hidden files on Windows.
- Fix issues with strnlen, memmove, LDBL_ constants, va_args, float.h, and others.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.5.0...1.5.1
v1.5.0: 6/17/2013
------------------
- Several compiler optimizations.
- Improve SDL key events support.
- Increase debug logging when specifying emcc -v.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.9...1.5.0
v1.4.9: 6/8/2013
------------------
- Several compiler optimizations.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.8...1.4.9
v1.4.8: 6/6/2013
------------------
- Add support for webrtc-based sockets.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.7...1.4.8
v1.4.7: 6/2/2013
------------------
- Remove more unneeded break and continue statements in relooper.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.6...1.4.7
v1.4.6: 6/2/2013
------------------
- Improve relooper code.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.5...1.4.6
v1.4.5: 6/1/2013
------------------
- Improve relooper code.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.4...1.4.5
v1.4.4: 6/1/2013
------------------
- Add support for symlinks in source files.
- Fix various issues with SDL.
- Added -s FORCE_ALIGNED_MEMORY=0/1 link time flag to control whether all loads and stores are assumed to be aligned.
- Fix file packager to work with closure.
- Major improvements to embind support, and optimizations.
- Improve GL emulation.
- Optimize VFS usage.
- Allow emscripten to compile .m and .mm files.
- Added new syntax --preload-file src@dst to file packager command line to allow placing source files to custom destinations in the FS.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.3...1.4.4
v1.4.3: 5/8/2013
------------------
- Fix issue with strcat.
- Major embind improvements.
- Switch to le32-unknown-nacl LLVM target triple as default build option instead of the old i386-pc-linux-gnu target triple.
- Improve compiler logging behavior.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.2...1.4.3
v1.4.2: 5/3/2013
------------------
- Fix issues with le32-unknown-nacl LLVM target triple.
- Add some GLEW support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.4.1...1.4.2
v1.4.1: 4/28/2013
------------------
- Implement support for le32-unknown-nacl LLVM target triple.
- Added new cmdline option -s ERROR_ON_UNDEFINED_SYMBOLS=0/1 to give compile-time error on undefined symbols at link time. Default off.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.8...1.4.1
v1.3.8: 4/29/2013
------------------
- Improved 64-bit integer ops codegen.
- Added Indexed DB support to vfs.
- Improve warning message on dangerous function pointer casts when compiling in asm.js mode.
- Added --use-preload-cache command line option to emcc, to be used with the file packager.
- Fixes to libcextra.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.7...1.3.8
v1.3.7: 4/24/2013
------------------
- Merge IMVU implementation of embind to emscripten trunk. Embind allows high-level C++ <-> JS types interop.
- Enable asm.js compilation in -O1 and higher by default. Fix issues when compiling to asm.js.
- Improve libc support with Emscripten with the musl libc headers.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.6...1.3.7
v1.3.6: 4/2/2013
------------------
- Fix hang issue with strtof.
- Update libcxx to upstream r178253 from March 29, 2013.
- Fix issues with GL emulation.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.5...1.3.6
v1.3.5: 3/25/2013
------------------
- Get exceptions working as they did before.
- Remove symbol removing hack.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.4...1.3.5
v1.3.4: 3/24/2013
------------------
- Update to new libcxx and libcxxabi versions from upstream.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.3...1.3.4
v1.3.3: 3/23/2013
------------------
- Remove unneeded check from relooper.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.2...1.3.3
v1.3.2: 3/22/2013
------------------
- Fix issues with fgets.
- Add support for non-fullscreen pointer lock.
- Improve OpenAL support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.1...1.3.2
v1.3.1: 3/19/2013
------------------
- Improve SDL audio and mixer support.
- Add GLES2 emulation features when -s FULL_ES2=1 is specified.
- Add support for OpenAL.
- Add new -s OPENAL_DEBUG=0/1 link command line option.
- Fixed an issue with mouse coordinate being offset with canvas.
- Removed -s UTF_STRING_SUPPORT=0 parameter, this is now always on.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.3.0...1.3.1
v1.3.0: 3/11/2013
------------------
- Improve GLES2 emulation with -s FULL_ES2=1.
- Deprecated -s USE_TYPED_ARRAYS=1 and -s QUANTUM_SIZE=1.
- Implement a minifier infrastructure when compiling for asm.js.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.9...1.3.0
v1.2.9: 3/7/2013
------------------
- Improved canvas behavior when transitioning between fullscreen.
- Added support for getopt().
- Fixed several libc issues.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.8...1.2.9
v1.2.8: 3/6/2013
------------------
- Remove unnecessary recursion in relooper RemoveUnneededFlows.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.7...1.2.8
v1.2.7: 3/6/2013
------------------
- Added SDL_Mixer support.
- Implemented stubs for several Unix and threading-related functions.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.6...1.2.7
v1.2.6: 3/5/2013
------------------
- Relooper updates.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.5...1.2.6
v1.2.5: 3/5/2013
------------------
- Greatly improve GL emulation support.
- Handle %c in sscanf.
- Improve compilation times by optimizing parallel execution in the linker.
- Improve several compiler stability issues detected from fuzzing tests.
- Implemented emscripten_jcache_printf.
- Allow running emscripten.py outside emcc itself.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.4...1.2.5
v1.2.4: 2/2/2013
------------------
- Work on adding support for asm.js compilation.
- Improve EGL support.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.3...1.2.4
v1.2.3: 1/9/2013
------------------
- Work on adding support for asm.js compilation.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.2...1.2.3
v1.2.2: 1/8/2013
------------------
- Work on adding support for asm.js compilation.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.1...1.2.2
v1.2.1: 1/8/2013
------------------
- Improvements to GLUT, SDL and BSD sockets headers.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.2.0...1.2.1
v1.2.0: 1/1/2013
------------------
- Work on adding support for asm.js compilation.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.1.0...1.2.0
v1.1.0: 12/12/2012
------------------
- Fix several issues with Windows support.
- Added a standalone toolchain for CMake.
- Added emscripten_run_script_string().
- Optimize compilation times via threading.
- Update to requiring Clang 3.2. Older versions may no longer work.
- Several improvements to emscripten library support headers.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.0.1a...1.1.0
v1.0.1a: 11/11/2012
------------------
- Add relooper code to repository.
- Full list of changes: https://github.com/kripken/emscripten/compare/1.0.1...1.0.1a
v1.0.1: 11/11/2012
------------------
- First commit that introduced versioning to the Emscripten compiler.