Lisp 为什么这会让我进入SBCL的LDB?

Lisp 为什么这会让我进入SBCL的LDB?,lisp,common-lisp,sbcl,slime,Lisp,Common Lisp,Sbcl,Slime,此代码将我从SLIME中放入SBCL中的LDB,但不是术语: (declaim (optimize debug)) ;; inhibit tail-call optimization (defun stackoverflow () ;; infinite recursion (stackoverflow)) (unwind-protect (stackoverflow) (stackoverflow)) ;; called during handler for the first

此代码将我从SLIME中放入SBCL中的LDB,但不是术语:

(declaim (optimize debug)) ;; inhibit tail-call optimization
(defun stackoverflow () ;; infinite recursion
  (stackoverflow))
(unwind-protect
    (stackoverflow)
  (stackoverflow)) ;; called during handler for the first stack overflow

为什么这会使SLIME的SBCL崩溃而不是终端崩溃?

请注意,有效的ANSI Common Lisp实现可以忽略除特殊声明之外的任何声明。我猜SLIME REPL在这里的行为稍有不同,因为它与sbcl toplevel不同-它添加了一些东西,比如重用以前的结果