interactive development
Thu Jun 4 23:20:49 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* interactive development
hunk ./introduction.xml 17
-<section><title>Status</title>
-<para>
-GUI creation should work and API will probably remain compatible.
-The next goal is to reorganize the argument conversion / overload resolution and to
-integrate more conversions between Lisp and C++ (<code>QList</code> etc.).
-</para>
-
hunk ./introduction.xml 19
- <listitem><para>Limited conversions. E.g. <code>QList&lt;T&gt;</code> is missing.
- </para></listitem>
+ <listitem><para>Ownership transfer to / from C++ of non QObject objects is seldom known to cl-smoke.
+ E.g.: cl-smoke might delete an instance even though it is still needed by C++.
+ (One that is known is <ulink url="http://doc.qtsoftware.com/4.5-snapshot/qundostack.html#push">QUndoStack::push()</ulink>.)
+ </para></listitem>
+ <listitem><para>Limited conversions to and from C++. You will get an NO-APPLICABLE-CXX-METHOD error
+ when a Lisp to C++ conversion is missing and a pointer will be returned when there is no C++ to Lisp
+ conversion.
+ </para></listitem>
hunk ./introduction.xml 35
- <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>
+ <listitem><para>Could be faster</para></listitem>
hunk ./introduction.xml 39
-</section>
hunk ./introduction.xml 105
-for r in smoke qt qt.test qt.tests qt.examples qt.uitools qt.webkit kde kde.tests kde.examples; do
+for r in smoke qt qt.test qt.tests qt.examples qt.uitools qt.webkit kde kde.tests kde.examples repl; do
hunk ./introduction.xml 145
- Some examples get the paths for files to load from their Mudballs system (ui and i18n) and thus will not work.
+ Some examples get the paths for the files to load from their Mudballs system (ui and i18n) and thus will not work.
hunk ./kde.xml 18
-An the running the function of the example; e.g.:
+And then running the function of the example; e.g.:
hunk ./qt.xml 50
+<section><title>Interactive Development</title>
+<para>
+The <package>:cl-smoke.repl</package> allows you to start a <classname>qt:application</classname> event loop in the background for
+interactive development in SLIME.
+To start the event loop use <methodname>cl-smoke.repl:start-event-loop-in-background</methodname> (or [_$_]
+<methodname>cl-smoke.repl:start-event-loop-in-repl</methodname>).
+<footnote>
+<para>
+Currently <code>START-EVENT-LOOP-IN-BACKGROUND</code> is recommended.
+</para>
+</footnote>
+As long as you do not kill the thread or unwind over a foreign function, you should be fine.
+</para>
+</section>
hunk ./qt.xml 83
-to a <classname>qt:qslot</classname> at least one must have its arguments types specified.
+to a <classname>qt:qslot</classname> at least one must have its arguments types specified. Type specifier <code>T</code>
+allows to pass a Lisp object as is from a Lisp signal to a Lisp slot.
hunk ./qt.xml 150
-in the <filename class="directory">src</filename> directory of <package>:qt.examples</package> how to do this.
+in the <filename class="directory">src/</filename> directory of <package>:qt.examples</package> on how to do this.
hunk ./smoke.xml 13
+<informalexample>
hunk ./smoke.xml 17
+</informalexample>
hunk ./smoke.xml 51
-C++ methods are generic functions in the <code>:cxx</code> package.
+C++ methods are generic functions in the <package>:cxx</package> package.
hunk ./smoke.xml 121
+<caution><para>
+The arguments of the method might have dynamic extend; i.e.: they are only valid in the body of the method.
+</para></caution>
hunk ./smoke.xml 127
-You will most likely encounter this problem when an error is signaled in a virtual method you have overwritten
+You will most likely encounter this problem when an error is signaled in a virtual method you have overwritten.
hunk ./smoke.xml 204
-C++ classes are automatically deleted when their lisp object gets garbage collected;
+C++ classes are automatically deleted when their Lisp object gets garbage collected;
hunk ./smoke.xml 207
-reference is kept to prevent its garbage collection until the parent is deleted.
+reference is kept to prevent the garbage collection removing it until the parent is deleted.
hunk ./smoke.xml 222
+<caution>
+<para>
+ Ownership transfer for non QObject instances is mostly unimplemented.
+</para>
+</caution>