Am 26.04.14 18:25 schrieb "Stas Boukarev" unter stassats@gmail.com:
Ivan Shvedunov ivan4th@gmail.com writes:
Unfortunately it seems to be a problem with Mac OS X, see comments for https://bugreports.qt-project.org/browse/QTBUG-7393 Seems like the only fix is to run QApplication from the main thread which doesn't seem to be possible with threaded SBCL. Not sure whether there are other workarounds :(
It is possible with threaded SBCL, the initial REPL thread is the main thread.
So ...
After having spent the better part of this day getting CommonQt to tun on OS X there's a couple of points to note:
Do not follow any other info than that on CommonQt's Homepage. It will cause you trouble, especially if you are on OS X. ;-)
The other point is related to the thread challenge I encountered. And yes, multi-threaded SBCL is able to run CommonQt on OS X if
1. You change file repl-integration.lisp line 106 from "initial thread" to "main thread" and recompile and reload the qt package.
2. You don't use Slime to interact with your REPL.
The second is a real PITA. So I tried digging up a solution. The qt-repp package seemed the right thing to use. Nope:
(ql:quickload :qt-repl) (qt-repl:start-gui-thread)
Lisp output: WARNING: QApplication was not created in the main() thread.
Using qt-repl:eval-in-gui-thread (with the mods described above) then tries to execute the evaluation in the guy thread. But no, this doesn't work:
Lisp output: QCoreApplication::exec: The event loop is already running
Slime repl output:
CL-USER> (qt-repl:eval-in-gui-thread (qt-conv:main)) -1
and that's where I am stuck now. Further digging or suggestions are in order ;-)
Thanks to Stas and Ivan for the support so far!
Regards Frank
commonqt-devel@common-lisp.net