Save core image
Thu May 14 14:56:16 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Save core image
diff -rN -u old-doc/introduction.xml new-doc/introduction.xml
--- old-doc/introduction.xml 2014-10-30 06:55:22.000000000 +0100
+++ new-doc/introduction.xml 2014-10-30 06:55:22.000000000 +0100
@@ -21,16 +21,20 @@
integrate more conversions between Lisp and C++ (<code>QList</code> etc.).
</para>
-<section><title>Limitation</title>
+<section><title>Limitations</title>
<itemizedlist>
<listitem><para>Bad multithreaded performance
due to a lock for the global hash-tables.</para></listitem>
<listitem><para>Limited conversions. E.g. <code>QList&lt;T&gt;</code> is missing.
</para></listitem>
- <listitem><para>10 seconds startup time (for <package>qt.examples</package>) on a
+ <listitem><para>10 seconds startup time<footnote>
+ <para>
+ Using an image it is around 1 second.
+ (see <xref linkend="core-image"/>)
+ </para></footnote>
+ (for <package>qt.examples</package>) on a
Pentium M 1.7GHz. (Compilation ~20 seconds)</para></listitem>
<listitem><para>Needs to be recompiled when the Smoke library is updated.</para></listitem>
- <listitem><para>Saving a core image is not supported.</para></listitem>
<listitem><para>Does not recover well from errors
<footnote><para>Thus you often need to restart the Lisp process
during interactive development.</para></footnote>.</para></listitem>
diff -rN -u old-doc/smoke.xml new-doc/smoke.xml
--- old-doc/smoke.xml 2014-10-30 06:55:22.000000000 +0100
+++ new-doc/smoke.xml 2014-10-30 06:55:22.000000000 +0100
@@ -200,5 +200,21 @@
</para>
</caution>
</section>
+<section id="core-image"><title>Saving a Core Image</title>
+<para>
+For near instant startup under SBCL you can save an image with
+<ulink url="http://www.sbcl.org/manual/Saving-a-Core-Image.html"><code>sb-ext:save-lisp-and-die</code></ulink>.
+Saving C++ instances is not supported.
+</para>
+<section><title>Bundle</title>
+<para>
+To create a bundle containing an SBCL image and the required C wrappers libraries you can use
+<methodname>smoke:save-bundle</methodname>.
+The bundle is created using <ulink url="http://megastep.org/makeself/">makeself</ulink>.
+See
+<ulink url="http://tobias.rautenkranz.ch/darcsweb/darcsweb.cgi?r=cl-smoke/qt.examples;a=headblob;f=/make-bundle.sh">make-bundle.sh</ulink> in <package>:qt.examples</package> for an example.
+</para>
+</section>
+</section>
</chapter>