![](https://secure.gravatar.com/avatar/9ed6ab1d1019fe41799ee83440518e36.jpg?s=120&d=mm&r=g)
"Ricardo Boccato" <boccato@gmail.com> writes:
I am using clisp but the same error ocurred with allegro 7 (trial).
Basically, issuing the command:
(asdf:oos 'asdf:load-op :clsql-oracle)
yields this at the debugger:
APPLY: too few arguments given to #<compiled-function #:|150 152 (cffi:define-foreign-type uffi-char (base-type) ...)-10-1-1|> [Condition of type system::simple-program-error]
Thanks, I've pushed a fix for this to the Darcs repository. The problem was that the CFFI::UNPARSE generic function wasn't specialized for the parameterized UFFI-CHAR type, leading the MAKE-LOAD-FORM method on CFFI type instances to dump the UFFI-CHAR type without its parameter. This leads to an error when the resulting FASL file is loaded...
I found out that making the following changes to the code seems to solve the problem...
computador:~/lib/cffi$ darcs diff diff -rN old-cffi/uffi-compat/uffi-compat.lisp new-cffi/uffi-compat/uffi-compat.lisp 112,113c112,113 < (:char '(uffi-char :char)) < (:unsigned-char '(uffi-char :unsigned-char)) ---
(:char :char) (:unsigned-char :unsigned-char)
This will cause problems because the UFFI :char types are defined to convert between C chars and Lisp CHARACTERs, which the CFFI :char and :unsigned-char types do not do. I don't think anyone has ever tried Oracle with CLISP and UFFI-COMPAT before---with this patch it works for me now, very cool! Thanks, James