[Openmcl-devel] (symbol-function function-name) no error signaled
some.frank at gmail.com
Tue Jan 11 14:38:09 CST 2011
Well I'm kinda new to LISP but I corrected the code example and put the
SAFETY in place.
(defparameter *store* nil)
(defun (setf store) (newval)
(setf *store* newval))
(defun foo ()
(declare (optimize safety))
(symbol-function '(setf store)))
(foo) ; No error signaled!
There's still no error signaled so I assume this is a bug; If you guys
agree I will report this.
> On Jan 11, 2011, at 14:54, Frank wrote:
>> Just stumbled over this while I was reading the HS. Shouldn't
>> symbol-function signal an error if it's argument doesn't evaluate to
>> a symbol?
>> (defparameter *store* nil)
>> (defun (setf store) (newval)
>> (setf *store* newval))
>> (symbol-function '(setf store)) ; Shouldn't this signal an error?
> symbol-function "Should signal an error of type type-error if symbol
> is not a symbol."
> 1.4.2 Error Terminology:
>> An error should be signaled
>> This means that an error is signaled in safe code, and an error
>> might be signaled in unsafe code. Conforming code may rely on the
>> fact that the error is signaled in safe code. Every implementation
>> is required to detect the error at least in safe code. When the
>> error is not signaled, the ``consequences are undefined'' (see
>> below). For example, ``+ should signal an error oftype type-error if
>> any argument is not of type number.''
> To have safe code, you must have declared (optimize safety) at the
> call site. If OpenMCL does not then signal an error then there is a bug.
More information about the Openmcl-devel