KDE is split up in kde.ui and kde.core.
Annotate for file /introduction.xml
2009-04-05 tobias 1 <?xml version="1.0"?>
17:58:25 ' 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
' 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
' 4 <chapter id="introduction">
' 5 <title>Introduction</title>
' 6 <para>
' 7 CL-Smoke provides CLOS bindings for the Qt and KDE libraries.
' 8 </para>
' 9 <section><title>Related</title>
' 10 <itemizedlist>
' 11 <listitem><para><ulink url="http://common-lisp.net/project/commonqt/">
' 12 CommonQt</ulink> (No CLOS, no startup overhead)</para></listitem>
' 13 <listitem><para><ulink url="http://sourceforge.net/projects/lisp-cffi-qt4">
' 14 Lisp-CFFI-Qt4</ulink> (dead)</para></listitem>
' 15 </itemizedlist>
' 16 </section>
2009-07-06 tobias 17 <section id="limitations"><title>Limitations</title>
2009-04-05 tobias 18 <itemizedlist>
2009-06-04 tobias 19 <listitem><para>Ownership transfer to / from C++ of non QObject objects is seldom known to cl-smoke.
21:20:49 ' 20 E.g.: cl-smoke might delete an instance even though it is still needed by C++.
' 21 (One that is known is <ulink url="http://doc.qtsoftware.com/4.5-snapshot/qundostack.html#push">QUndoStack::push()</ulink>.)
' 22 </para></listitem>
' 23 <listitem><para>Limited conversions to and from C++. You will get an NO-APPLICABLE-CXX-METHOD error
' 24 when a Lisp to C++ conversion is missing and a pointer will be returned when there is no C++ to Lisp
' 25 conversion.
' 26 </para></listitem>
2010-01-10 tobias 27 <listitem><para>6 seconds startup time<footnote>
2009-05-14 tobias 28 <para>
2009-07-22 tobias 29 Using a core image it is around 1 second.
2009-05-14 tobias 30 (see <xref linkend="core-image"/>)
12:56:16 ' 31 </para></footnote>
' 32 (for <package>qt.examples</package>) on a
2010-01-10 tobias 33 Pentium M 1.7GHz. </para></listitem>
2009-04-05 tobias 34 <listitem><para>Needs to be recompiled when the Smoke library is updated.</para></listitem>
2009-06-04 tobias 35 <listitem><para>Could be faster</para></listitem>
2009-04-05 tobias 36 </itemizedlist>
2009-06-21 tobias 37 <section><title>Performance</title>
09:29:52 ' 38 <para>
' 39 Method calling is near 3000 times slower than native C++. The overhead is mainly in the overload
' 40 resolution and to/from foreign object translation. Some measurements by
' 41 <code><ulink url="http://tobias.rautenkranz.ch/darcsweb/darcsweb.cgi?r=cl-smoke/benchmark;a=summary">:cl-smoke.benchmark</ulink></code>
' 42 are in
' 43 <filename><ulink url="../benchmark.pdf">benchmark.pdf</ulink></filename>.
' 44 </para>
' 45 </section>
2009-04-05 tobias 46 </section>
2009-07-06 tobias 47 <section id="installation"><title>Installation</title>
2009-04-05 tobias 48 <section><title>Dependencies</title>
17:58:25 ' 49 <itemizedlist>
' 50 <listitem><para><ulink
' 51 url="http://techbase.kde.org/Development/Languages/Smoke">Smoke2</ulink>
2010-01-10 tobias 52 bindings from svn.
2009-08-27 tobias 53 <footnote><para>
11:47:08 ' 54 The new smokegenerator is needed (developed by Arno Rehn for the GSOC 09).
' 55 </para></footnote>
' 56 </para></listitem>
2009-04-05 tobias 57 <listitem><para><ulink url="http://qtsoftware.com">Qt</ulink>
17:58:25 ' 58 (development package)</para></listitem>
' 59 <listitem><para>
' 60 <ulink url="http://cmake.org">CMake</ulink> 2.6
' 61 </para></listitem>
' 62 <listitem><para>a C++ compiler (GCC)</para></listitem>
' 63 </itemizedlist>
' 64 <para>
2009-06-03 tobias 65 <itemizedlist>
22:31:34 ' 66 <listitem><para><ulink url="http://common-lisp.net/project/alexandria/">alexandria</ulink></para></listitem>
' 67 <listitem><para><ulink url="http://common-lisp.net/project/bordeaux-threads/">bordeaux-threads</ulink></para></listitem>
' 68 <listitem><para><ulink url="http://common-lisp.net/project/cffi/">cffi</ulink></para></listitem>
' 69 <listitem><para><ulink url="http://common-lisp.net/project/closer/closer-mop.html">closer-mop</ulink></para></listitem>
' 70 <listitem><para><ulink url="http://www.cliki.net/trivial-garbage">trivial-garbage</ulink></para></listitem>
' 71 </itemizedlist>
' 72 </para>
2009-04-05 tobias 73 </section>
17:58:25 ' 74
' 75 <section><title>Supported Platforms</title>
2009-05-12 tobias 76 <section><title>Working</title>
17:03:22 ' 77 <itemizedlist>
' 78 <listitem><para>
' 79 <ulink url="http://www.sbcl.org">SBCL</ulink> on Linux x86 (and x86_64)
' 80 </para></listitem>
' 81 <listitem> <para>
2009-07-02 tobias 82 <ulink url="http://trac.clozure.com/openmcl">Clozure CL</ulink> on Linux x86.
2009-05-12 tobias 83 </para></listitem>
17:03:22 ' 84 </itemizedlist>
' 85 </section>
' 86 <section><title>Not Working</title>
' 87 <itemizedlist>
' 88 <listitem><para>
2009-04-09 tobias 89 <ulink url="http://www.cons.org/cmucl/">CMUCL</ulink>
2009-05-12 tobias 90 </para></listitem>
17:03:22 ' 91 <listitem><para>
' 92 <ulink url="http://clisp.cons.org/">CLISP</ulink>
' 93 </para></listitem>
' 94 </itemizedlist>
' 95 </section>
2009-04-05 tobias 96 </section>
17:58:25 ' 97 <section><title>Installation</title>
' 98 <para>
' 99 You need to checkout the darcs repositories:
' 100 <programlisting>
' 101 cd <userinput>SOME_DIR</userinput>
2010-01-10 tobias 102 for r in smoke qt.core qt.gui qt.network qt.test qt.tests qt.examples qt.uitools qt.webkit qt.phonon; do
2009-04-05 tobias 103 darcs get "http://tobias.rautenkranz.ch/lisp/cl-smoke/$r"
17:58:25 ' 104 done
' 105 </programlisting>
2010-04-03 tobias 106 <note>
19:12:53 ' 107 <para>
' 108 There are also the following repositories: qt.svg qt.dbus kde.core kde.ui kde.tests kde.examples
' 109 </para>
' 110 </note>
2009-06-03 tobias 111 </para>
22:31:34 ' 112 <para>
2010-01-10 tobias 113 Build and install the <package>:smoke</package> and <package>:qt.core</package> C wrapper libraries with:
2009-06-03 tobias 114 <informalexample>
2009-07-02 tobias 115 <programlisting>cmake ./ &amp;&amp; make &amp;&amp; sudo make install</programlisting>
2009-06-03 tobias 116 </informalexample>
22:31:34 ' 117 in the <filename>smoke/</filename> and <filename>qt/</filename> directories.
' 118 </para>
2009-12-13 tobias 119 <para>
13:22:09 ' 120 When you have symlinked the <filename>.asd</filename> system files, you
2010-01-10 tobias 121 should be able to load the systems. The system name has a
08:57:54 ' 122 <code>:cl-smoke.</code> prefix. e.g.:
' 123 <informalexample>
' 124 <programlisting language="lisp">(asdf:oos 'asdf:load-op :cl-smoke.qt.examples) </programlisting>
' 125 </informalexample>
2009-12-13 tobias 126 </para>
2009-04-05 tobias 127 </section>
17:58:25 ' 128 </section>
' 129 </chapter>