Thu Jun 4 00:31:34 CEST 2009 Tobias Rautenkranz * ASDF & dispatch callback restarts diff -rN -u old-doc/introduction.xml new-doc/introduction.xml --- old-doc/introduction.xml 2014-10-30 07:12:34.000000000 +0100 +++ new-doc/introduction.xml 2014-10-30 07:12:34.000000000 +0100 @@ -55,9 +55,19 @@ a C++ compiler (GCC) -On the Lisp side you need mudballs +On the Lisp side you need Mudballs and sysdef.cmake. + +If you prefer to use ASDF instead of Mudballs, you need these systems: + +alexandria +bordeaux-threads +cffi +closer-mop +trivial-garbage + +
Supported Platforms @@ -90,6 +100,9 @@
Installation + For loading the systems you can use Mudballs or ASDF. But first get the sources: + + You need to checkout the darcs repositories: cd SOME_DIR @@ -97,6 +110,9 @@ darcs get "http://tobias.rautenkranz.ch/lisp/cl-smoke/$r" done + +
Mudballs + Then add the directory SOME_DIR to the mudballs search paths by adding (push (wildcard-searcher "SOME_DIR/*/*.mbd") @@ -109,6 +125,30 @@ Loading the packages with mb:load compiles the C wrapper libraries as needed. +
+ +
ASDF + + The .asd files are + generated + from the mudballs files. + Get the .asd files and + place them in the corresponding source directories. Then symlink the .asd files in a ASDF search path. + You can for examples run: ln -s SOME_DIR/*/*.asd ASDF_PATH + + + Now build and install the :smoke and :qt C wrapper libraries with: + + + cmake ./ && make && sudo make install + + + in the smoke/ and qt/ directories. + + + Some examples get the paths for files to load from their Mudballs system (ui and i18n) and thus will not work. + +
diff -rN -u old-doc/qt.xml new-doc/qt.xml --- old-doc/qt.xml 2014-10-30 07:12:34.000000000 +0100 +++ new-doc/qt.xml 2014-10-30 07:12:34.000000000 +0100 @@ -42,6 +42,11 @@ + +Subclasses of qt:paint-device (e.g. qt:widget) can only be used when +a qt:application instance exists. When there are, for example, qt:widget instances +at the end of qt:with-app, they are deleted by the qt:application destructor. +
Signal-Slot diff -rN -u old-doc/smoke.xml new-doc/smoke.xml --- old-doc/smoke.xml 2014-10-30 07:12:34.000000000 +0100 +++ new-doc/smoke.xml 2014-10-30 07:12:34.000000000 +0100 @@ -116,6 +116,18 @@ Make sure you have the right number of arguments when adding a method; otherwise it will not be called. +
Condition + +Unwinding of the C++ stack is not supported. This means that you must not invoke a restart that skips any foreign function. +You will most likely encounter this problem when an error is signaled in a virtual method you have overwritten + + +For example an event handler that is called from the C++ library. + +. For this case restarts are provide that allow to return a value for the failed method, +call the default C++ implementation instead (something like #'call-next-method) or retry. + +
Operators