[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug with HANDLER-CASE



CLtLII p896 says:
the typespec can also be the symbol :no-error in the last clause.
With MCL2.0b1, I get the following (which cannot spread atoms on stack!):

(macroexpand
 '(handler-case (foo)
    (simple-error (condition) condition)
    (error (condition) condition)
    (:no-error (x) x)))
=>
(block #:g144
  (multiple-value-call
   #'(lambda (x) x)
   (block #:g145
     (return-from #:g144
       (handler-case (return-from #:g145 (foo))
         @ ((simple-error (condition) condition)
	    (error (condition) condition)))))))

Obviously, in the code of HANDLER-BIND "@," should be fixed into ",@".

Could you please e-mail the complete interpreted code of HANDLER-BIND so that
I can add it to my lisp ?
Thanks in advance						[jack]
PS: BTW, (/ 1 0) produces a condition of type "simple-error" instead of
    "division-by-zero" (as mentionned in CLtLII p922)
    and it seems that the condition type hierarchy (p917) is slighlty :-)
    simplified in the implementation MCL2.0b1
    Are you gonna fix it ?