Browse Source

Website changes for C++ exception support

pull/499/head
Sami Vaarala 9 years ago
parent
commit
860af39844
  1. 14
      website/guide/compiling.html

14
website/guide/compiling.html

@ -67,6 +67,13 @@ in your compiler):</p>
is compatible with these and they improve the resulting C code</li>
<li><code>-DDUK_OPT_DLL_BUILD</code>: needed when Duktape is built as a DLL
(the option is needed for both Duktape and application build)</li>
<li>By default Duktape uses <code>setjmp()</code> and <code>longjmp()</code>
(or their variants) for internal long control transfers. If you're
compiling with a C++ compiler you may want to use
<code>DUK_OPT_CPP_EXCEPTIONS</code> which causes Duktape to use C++
exceptions for long control transfers and allows scope-based resource
management (automatic destructors, etc) in Duktape/C functions to work
as expected.</li>
</ul>
<p>If you're using Duktape on a platform where Duktape's automatic feature
@ -262,6 +269,13 @@ application would be binary incompatible (which would be difficult to
diagnose). This is usually not an issue, but to avoid the potential, compile
Duktape and the application with the same compiler.</p>
<p>By default scope-based resource management (sometimes referred to
as RAII) won't work in Duktape/C functions because Duktape uses
<code>longjmp()</code> for internal long control transfers, bypassing
C++ stack unwind mechanisms. You can use <code>DUK_OPT_CPP_EXCEPTIONS</code>
to cause Duktape to use C++ exceptions for internal long control transfers,
which allows scope-based resource management to work in Duktape/C functions.</p>
<h2 id="installing-system-wide">Installing Duktape as a system-wide library</h2>
<p>Duktape can be installed as a system-wide library; see

Loading…
Cancel
Save