* Fix config option version (introduced in 1.5.0)
* Minor wording changes
* Add config example for compliance options
* Add a 'compliance' config option category for future use
DUK_F_UCLIBC checks for __UCLIBC__ which comes from #include files rather
than being built into the compiler, so it must be placed after platform
includes instead of being automatically inserted to top of file.
* Add DUK_USE_CPP_EXCEPTIONS (DUK_OPT_CPP_EXCEPTIONS) which causes Duktape
to use C++ try/catch instead of longjmp/setjmp for internal long control
transfers. When try/catch is used scope-based resource management
(SBRM, a special case of RAII) works as expected, e.g. C++ automatic
destructors in Duktape/C functions will be executed.
* Add <exception> header to shared headers when compiling in C++ mode.
The header is needed to provide std::exception.
* Add a sanity check: if DUK_USE_CPP_EXCEPTIONS is enabled and not
compiling with a C++ compiler, fail the compile with an explicit #error.
DUK_USE_DEBUGGER_THROW_NOTIFY default is "true". If the option "requires"
DUK_USE_DEBUGGER_SUPPORT (which defaults to "false") the option configuraiton
would be inconsistent and rejected by default.
Remove the "required" metadata for debugger options: the options don't really
require debugger support. Instead, if debugger support is disabled, the
debugger config options are just ignored without causing a build error.
* Generate all duk_config.h headers using a single modular approach.
* Remove previous autodetect-header command and replace it with the
modular header.
- Add DUK_USE_STRHASH_SKIP_SHIFT option for the "fast" skipping hash.
- Add DUK_USE_STRHASH_DENSE option (default false) to revert back to
the Duktape 1.3.0 string hash algorithm.
The new Date provider snippet location is after duk_custom.h and other
overrides, so that e.g. user custom header can define
DUK_USE_DATE_NOW_GETTIMEOFDAY even if the platform detection does not.
Otherwise there are build errors with e.g. gcc -std=c89. Because the inline
macros are now in duk_config.h, the user can fix these manually anyway if
necessary.
- Disable JSON.stringify() fastpath by default
- Rework to use DUK_USE_ALIGN_BY config option
- Replace previous DUK_USE_ALIGN_4 and DUK_USE_ALIGN_8 with a cleaner
DUK_USE_ALIGN_BY config option (allowed values 1, 4, 8)
- Add fastpath tag in anticipation of automatic fastpath suggestions
or warnings
- Emit defaults for options not covered by manual header snippets
- Add forced option support for autodetect header
- Add __OVERRIDE_DEFINES__ section to autodetect header
- Add fixup header line option
- Add -D/--define and -U/--undefine options (more familiar to users)
- Add option for emitting (non-standard) #warning directives
- Fix comment stripping to keep 'redefine'
- Minor fixes and cleanups
- Rename commands to shorter names (e.g. generate-autodetect-header
to autodetect-header)
- Rename options to shorter names (e.g. --force-option-file to
--option-file)