![](https://secure.gravatar.com/avatar/d41a1ae8ef63e95a9816f4fbbb9223a3.jpg?s=120&d=mm&r=g)
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