W.r.t. UFFI/CLISP: please go to the clisp patches section, you'll find =
my UFFI wrapper macros. I just updated it to reflect my current file. =
Please report problems to me (CC) and clisp-list (or clisp-devel, which =
I occasionaly read).
Basically, the single one problem is the difference in semantics of =
(C-ptr xyz): CLISP says
"(FFI:C-PTR c-type) This type is equivalent to what C calls c-type *: =
a pointer to a single item of the given c-type."
All other implementations and UFFI allow arbitrary array access of a (* =
foo), like pointer arithmetic in C.
Witness Bernard's lapack code: declare (* double-float) and (deref ptr =
array-index) it in cmucl. For some situations, I believe UFFI has means =
to work around that (e.g. with-cast-pointer), after all, I got cl-sql =
to work with clisp with my code, but ideally, a cast should not be =
needed for a thing declared as an array -- (:array foo) as opposed to =
(* foo) in UFFI syntax.