When applied to a function declaration the __attribute__ ((unused)
declaration indicates a function may be unused so that the compiler
won't warn about it if it actually is. This reduces harmless warnings
when a function is unused due to a specific config option combination.
Apply to all Clang versions and GCC >= 3.1.1; GCC 3.1.1 manual confirms
__attribute__ ((unused)) is supported.
- Disable ES6 Proxy and coroutines by default
- Enable unsafe API call convention to reduce footprint
- Disable source code support for non-BMP source files (not required by ES)
This caused an issue with a few config options when feature option support
(DUK_OPT_xxx) was enabled. For example, DUK_USE_PACKED_TVAL is provided by
platform detection; if neither DUK_OPT_PACKED_TVAL nor DUK_OPT_NO_PACKED_TVAL
was defined, the default clause would #undef DUK_USE_PACKED_TVAL instead of
keeping the platform detected value.
Affected config options:
- DUK_USE_PACKED_TVAL
- DUK_USE_SETJMP
- DUK_USE_UNDERSCORE_SETJMP
* 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.