[cffi-devel] Uninterned callback name in CCL
Liam Healy
lnp at healy.washington.dc.us
Sat Jan 24 21:29:46 UTC 2009
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
More information about the cffi-devel
mailing list