- Add -m32, -mx32
- Support parallel runs by dynamic temp names (still pretty hacky)
- Add more compilers and compiler versions
- Add more dialects
- Add more optimization levels
There are some matrix test failures with older compilers, especially
clang/llvm-gcc with -m32 (same double union failure as in FreeBSD 10
clang 3.3 -m32).
Also remove mostly unused old debug code.
Debug code doesn't have access to 'heap' so it cannot decode pointers.
Cause an #error for now if both debug prints and pointer compression
are enabled at the same time.
Remove duk_debug_hobject.c from make and dist. It was out of date and
not used in practice anymore.
- Avoid warning for unreferenced variables
- Fix incorrect (non-existent) macro name (DUK_NEVER_HERE)
- Fix built-in missing prototype
- Fix C++ static variable issue
- Avoid pc2line lookup when not enabled
- Change combine_src.py order to match C++ static var requirements
- Use volatile in cause segfault to avoid clang warning
Reimplement matrix testing to support proper combination structure like
Select, Combine, Subset, etc. Avoid enumerating the matrix explicitly,
and change testing to use random sampling of the (very large) matrix space.
Improve the testing matrix to include a lot more option combinations. The
set is still not complete and output is not yet warning free with all options
so '-Werror' is not yet enabled in the matrix.
Add convenience Makefile targets like 'matrix10', 'matrix100', etc so that
small matrix tests can be easily run while developing.
Move a few handpicked files from the alphabetical file list to the top of
the list to ensure that static data definitions appear before their first
use in a single file build.
This is necessary because there are no forward declarations for static data
symbols anymore (which was causing C++ issues). See GH-63.
RELEASES.rst is only updated in master branch to make it easier to make
and merge fixes to multiple branches. Including it in the dist package
would mean that it would need to be updated in maintenance branches too
or it would be out-of-date in patch releases.
So, drop release notes from the dist package, and just link to it in the
dist README.
Technically this should probably not be necessary: Duktape module loader
is a fully own implementation based on the CommonJS module loading
specification. The specification is not shipped with the distributable,
just the master repo. But it's perhaps best to mention it in the README
still.