[cl-cairo2-devel] issues with cl-cairo2 from asdf-install

Tamas K Papp tpapp at Princeton.EDU
Sat May 3 15:43:13 UTC 2008


On Tue, Apr 29, 2008 at 05:57:41PM +0200, Peter Hildebrandt wrote:

Hi Peter,

Sorry, I didn't have time to investigate this until now.

> I just tried to pull in a current version of cl-cairo2 via
> asdf-install, and I ran into the following:
> 
> There is no class named CL-CAIRO2::MY-DOUBLE-TYPE.
> 
> (in cl-cairo2-swig)
> 
> For me, the failing define-foreign-type expands into:
> 
> (PROGN
>  (CFFI::DEFINE-TYPE-SPEC-PARSER MY-DOUBLE-TYPE NIL
>                                 (MAKE-INSTANCE 'CFFI::FOREIGN-TYPEDEF :NAME
>                                                'MY-DOUBLE-TYPE :ACTUAL-TYPE
>                                                (CFFI::PARSE-TYPE
>                                                 (PROGN
>                                                  NIL
>                                                  (:ACTUAL-TYPE :DOUBLE)
>                                                  (:SIMPLE-PARSER MY-DOUBLE)))))
>  'MY-DOUBLE-TYPE)
> 
> Note that parse-type is a function, thus (:actual-type ...) will be
> interpreted as a function call.
> 
> This could be due a cffi mismatch:  I have cffi 0.9.2 (the latest
> release).  Do you use the one from darcs?

There has been a change in CFFI, AFAIK cl-cairo2 uses the new
interface.  My cffi version is 20080217-1, which does not appear to be
in Ubuntu, so you should do a manual install from the repository.
BTW, my version is from the latest (unstable) Debian package, so maybe
it would help to nudge the Ubuntu maintainers to package the latest version.

> Also, all three library names don't work in Ubuntu 8.04.  I added the
> alternatives:
> 
> cairo.lisp:
> (load-foreign-library '(:or "libcairo" "libcairo.so.2"))
> 
> gtk-context.lisp:
> (define-foreign-library :gdk
>   (cffi-features:unix (:or "libgdk-x11-2.0.so" "libgdk-x11-2.0.so.0"))
>   (cffi-features:windows "libgdk-win32-2.0-0.dll")
>   (cffi-features:darwin "libgdk-win32-2.0-0.dylib"))
> 
> xlib.lisp:
> (load-foreign-library '(:or "libX11.so" "libX11.so.6"))

Please try the new version of CFFI with the original code, and tell me
if the error persists.

Tamas



More information about the Cl-cairo2-devel mailing list