[cffi-devel] Uninterned callback name in CCL
CFFI will not permit uninterned symbols as callback names for CCL, due to this definition in cffi-openmcl.lisp: (defun intern-callback (name) (intern (format nil "~A::~A" (package-name (symbol-package name)) (symbol-name name)) '#:cffi-callbacks)) where (package-name NIL) signals an error, but CCL doesn't have this restriction. The CCL manual http://ccl.clozure.com/ccl-documentation.html#m_defcallback says merely "name---A symbol which can be made into a special variable" and I have experimentally confirmed that an uninterned symbol is acceptable to CCL: (let ((foo (make-symbol "FOO")) (arg (make-symbol "ARG"))) `(PROGN (CCL:DEFCALLBACK ,foo (:DOUBLE-FLOAT ,arg :ADDRESS PARAMS :DOUBLE-FLOAT) (LET ((,arg ,arg) (PARAMS PARAMS)) (DECLARE (IGNORE PARAMS)) (BLOCK FOO (ONE-SINE ,arg)))) (SETF (GETHASH 'FOO CFFI-SYS::*CALLBACKS*) (SYMBOL-VALUE ',foo)))) Can this be changed so that uninterned symbols are acceptable, as they are for SBCL? Thanks, Liam
On Sat, Jan 24, 2009 at 9:29 PM, Liam Healy <lnp@healy.washington.dc.us> wrote:
Can this be changed so that uninterned symbols are acceptable, as they are for SBCL?
Should be fixed now. Thanks! -- Luís Oliveira http://student.dei.uc.pt/~lmoliv/
participants (2)
-
Liam Healy
-
Luís Oliveira