Changelog

sderossi edited this page Feb 14, 2019 · 4 revisions

Cheerp 2.0 - Feb 18th, 2019

    * Introduce CFGStackifier (successor to Relooper)
    * Support commonjs modules with -cheerp-make-module
    * Support static methods in [[cheerp::jsexport]] classes
    * Support inlining of simple functions across the genericjs/asmjs/wasm boundary
    * Improved sourcemaps support
    * Improved support for __asm__ syntax
    * Reduced output size (both wasm and js)
    * Faster memcpy/memset/memmove in linear memory mode
    * Various performance improvements
    * Various robustness improvements

Cheerp 2.0-RC2 - Apr 23rd, 2018

* Much improved interoperability between WebAssembly and JavaScript code
* Much improved compile time errors when using interoperability features
* Support variable length stack arrays in WebAssembly and JavaScript mode
* Optimize WebAssembly code generation to reduce code size
* Support virtual bases in WebAssembly and JavaScript mode
* Support runtime bounds checking in WebAssembly and JavaScript mode
* Introduce Identical Code Folding to remove duplicated code in WebAssembly and Asmj.js mode

Cheerp 2.0-RC1 - Nov 11th, 2017:

* Add a WebAssembly backend that produces binary and textual wasm
* Add flag -cheerp-asmjs-mem-file to output a file holding asm.js module initialized memory
* Add flag -cheerp-wasm-loader to output a file that initialises the WebAssembly file
* Add flag -cheerp-linear-heap-size that sets heap size in megabytes for asmjs and wasm
* Add flag -cheerp-no-math-fround that disables the usage of Math.fround()
* Add `[[cheerp::asmjs]]` attribute for setting globals in the asmjs section manually
* Add `[[cheerp::genericjs]]` attribute for setting globals in the generic section
* Enabling asmjs mode will define `__ASMJS__` in the preprocessor
* Enabling wasm mode will define `__WASM__` in the preprocessor
* Overhaul of priority system to remove useless parenthesis and type coercions

Cheerp 1.3 - Feb 7th, 2017:

* Improve support for unions
* Make it possible to define globals in the client namespace
* Improve support for variadic arguments
* Improvements to PreExecuter
* Improvements to JavaScript minimizer
* Declare all variables at the beginning of the functions
* Add -cheerp-reserved-names option to skip specific names in the minimizer
* Improve support for [[cheerp::jsexport]]
* Make it possible to use [[cheerp::jsexport]] on free functions beside classes
* Improve precision of float constants
* Merge small integers fields together
* Improve promotion of pointer to value arguments
* Initial support for PreExecusing main/webMain
* Introduce debug command line flags -cheerp-bounds-check and -cheerp-defined-members-check
* Enable 64-bit enums
* Enable dynamic_cast of references	
* Improve compilation speed
* Various optimizations

Cheerp 1.2.1 - Feb 10th, 2016

* Fixed encoding of literal strings in JS
* Minor fixes

Cheerp 1.2 - Jan 25th, 2016

* Based on updated LLVM/clang
* Support covariant return types
* Add support for 64-bit integers
* Support RTTI and dynamic_cast
* Improved compiler diagnostic messages
* Reduced code size
* Reduced code startup time
* Improved performance of generated code
* Support JavaScript module pattern
* Improved SourceMaps

Cheerp 1.1 - Jun 15th, 2015

* Greatly improved performance for the generated code

Cheerp 1.0 - May 28th, 2014

* Initial stable release
* Greatly improved clientlib.h header
* Generated Doxygen documentation for Web APIs
* Several fixes to robustness and performance
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.