Hi Dimtry,
Thanks for the bug report. I can't figure it out, contacted the CFFI folks about this. In the meantime, can you tell me what the following does on your version:
(require :cffi)
(cffi:defctype my-double :double)
(defmethod cffi:translate-to-foreign (value (type (eql 'my-double))) (coerce value 'double-float))
(cffi:translate-to-foreign 10 'my-double) ; => 10d0
(cffi:convert-to-foreign 10 'my-double) ; => 10
(please start a clean lisp, no previous packages loaded).
Also, you can pass doubles (like 200d0 100d0) to make these functions work until I figure out a fix. The type translation is just a convenience.
HTH,
Tamas
On Mon, Apr 21, 2008 at 01:59:43AM +0400, Dmitry Pavlov wrote:
Hello,
I have a problem compiling the cl-cairo2 manual:
The 'make' command, executed from the 'tutorial' directory, says the following:
Error during processing of --eval option "(progn (load "example.lisp") (quit))": The value 200 is not of type DOUBLE-FLOAT.
The error is raised from the first call to cl-cairo at example.lisp:
(create-ps-surface "example.ps" 200 100)
It seems that 200 is not converted to my-double datatype before it is passed to the foreign function. translate-to-foreign method for my-double doesn't get called.
I tried to fix the problem by hacking cl-cairo2-swig.lisp, but without success.
I have SBCL 1.0.15 on Debian-unstable on amd64. cl-cffi version number is 0.9.2 (Debian package cl-cffi_20080217-1) cl-cairo2-latest.tar.gz I downloaded today from common-lisp.net.
With regards, Dmitry _______________________________________________ cl-cairo2-devel mailing list cl-cairo2-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cl-cairo2-devel