[Cl-smoke] Building cl-smoke on Mac OS X

Elliott Slaughter elliottslaughter at gmail.com
Sun Feb 28 22:27:01 CET 2010


On Sun, Feb 28, 2010 at 1:20 AM, Tobias Rautenkranz
<tobias at rautenkranz.ch>wrote:

> > Actually, I think it is still a pathing issue. It seems that setting
> > cffi:*foreign-library-directory* is not sufficient, but when I copy the
> > dylib files to the current directory it seems to work ok.
> I have no idea what's wrong.
>
> > At any rate, on to the next error. This one's in cl-smoke.qt.core:
> > "file /Users/elliott/Programming/Lisp/asdf/qt.core/src/event.lisp"
> > ;       Symbol "TYPE" not found in the CXX package.
> cl-smoke should have constructed the generic function cxx:type at this
> point.
> (a ffi problem?)
>
> You can see if cl-smoke found the QEvent::type() function, by invoking the
> ABORT restart when the error occurs. Since the qtcore module is already
> loaded
> at this point, you can list the methods with:
> (smoke::fgrep-methods cl-smoke.qt.core::*smoke-module* "type")
> which should give you a list of methods containing the word "type". e.g.:
> public QEvent::Type QEvent::type() const
> [...]
>

I seem to be getting nil...

0] abort
;
; compilation unit aborted
;   caught 2 fatal ERROR conditions
;   caught 4 STYLE-WARNING conditions
;   printed 130 notes
* (smoke::fgrep-methods cl-smoke.qt.core::*smoke-module* "type")

NIL


You can also try tracing the generic-function construction of cl-smoke:
> (require :cl-smoke.smoke)
> (trace smoke::ensure-generic-methods)
> (require :cl-smoke.qt.core)
>  0: (SMOKE::ENSURE-GENERIC-METHODS
>      ((CXX::WRITE-CURRENT-TOKEN . "writeCurrentToken")
>       (CXX::WRITE-START-ELEMENT . "writeStartElement")
>       (CXX::WRITE-START-DOCUMENT . "writeStartDocument")
>        [...]
>       (CXX::TYPE . "type")
>        [...]
>       (CXX::QT-METACALL . "qt_metacall") (CXX::TR-UTF8 . "trUtf8")
>       (CXX::QT-METACAST . "qt_metacast") (CXX::META-OBJECT . "metaObject")
>       (CXX::|| . "")))
>  0: SMOKE::ENSURE-GENERIC-METHODS returned NIL
>

On the second require it tries to compile event.lisp again and fails to do
so.

I doubt that the problem is there, but can you check that smoke picked up
> the
> QEvent::type() method by using the kdebindings smokeapi tool:
> kdebindings-build/smoke/smokeapi$ ./smokeapi -m type QEvent
> QEvent::Type QEvent::type() const


$ ./smokeapi -m type QEvent
Error: class 'QEvent' not found
Abort trap

Thanks (for the nth time) for your help.

-- 
Elliott Slaughter

"Don't worry about what anybody else is going to do. The best way to predict
the future is to invent it." - Alan Kay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tobias.rautenkranz.ch/pipermail/cl-smoke_tobias.rautenkranz.ch/attachments/20100228/c07cecf7/attachment-0002.html>


More information about the Cl-smoke mailing list