On Fri, May 30, 2008 at 10:55 PM, Luís Oliveira <[EMAIL PROTECTED]> wrote: > On Fri, May 30, 2008 at 8:08 PM, Hans Hübner <[EMAIL PROTECTED]> wrote: >> On Fri, May 30, 2008 at 7:27 PM, Luís Oliveira <[EMAIL PROTECTED]> wrote: >>> Thanks to the optimization mentioned above (a compiler macro for >>> foreign-alloc), foreign-string-alloc calls PARSE-TYPE only at >>> compile-time. > > Actually, PARSE-TYPE is only called when FOREIGN-STRING-ALLOC itself > is compiled. No type parsing occurs when FOREIGN-STRING-ALLOC is > called, either at compile-time or runtime. Assuming the FOREIGN-ALLOC > compiler macro kicks in, of course.
It seemingly does not: CFFI> (trace parse-type) NIL CFFI> (foreign-string-alloc "foo") 0> Calling (PARSE-TYPE :CHAR) <0 PARSE-TYPE returned #<FOREIGN-BUILT-IN-TYPE :CHAR> 0> Calling (PARSE-TYPE :UINT8) <0 PARSE-TYPE returned #<FOREIGN-TYPEDEF :UINT8> 0> Calling (PARSE-TYPE :UINT8) <0 PARSE-TYPE returned #<FOREIGN-TYPEDEF :UINT8> 0> Calling (PARSE-TYPE :UINT8) <0 PARSE-TYPE returned #<FOREIGN-TYPEDEF :UINT8> 0> Calling (PARSE-TYPE :CHAR) <0 PARSE-TYPE returned #<FOREIGN-BUILT-IN-TYPE :CHAR> #<A Foreign Pointer #x2AAAB963F6D0> 4 CFFI> (lisp-implementation-version) "Version 1.2-r9471M (LinuxX8664)" So, if I understand what you write, this basically means that the FOREIGN-ALLOC compiler macro does not work. I will try to isolate this and ask the Clozure folks for help. Thanks! Hans _______________________________________________ cffi-devel mailing list cffi-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel