0.7.9.42:
[sbcl.git] / src / code / toplevel.lisp
index af2f3f1..f4baf40 100644 (file)
                    (type (unsigned-byte 20) count)
                    (values (unsigned-byte 20)))
           (let ((loc (int-sap (- (sap-int ptr) (+ offset sb!vm:n-word-bytes)))))
-            (cond ((<= (sap-int loc) end-of-stack) 0)
+            (cond ((< (sap-int loc) end-of-stack) 0)
                   ((= offset bytes-per-scrub-unit)
                    (look (int-sap (- (sap-int ptr) bytes-per-scrub-unit))
                          0 count))
                    (type (unsigned-byte 20) count)
                    (values (unsigned-byte 20)))
           (let ((loc (int-sap (- (sap-int ptr) offset))))
-            (cond ((<= (sap-int loc) end-of-stack) 0)
+            (cond ((< (sap-int loc) end-of-stack) 0)
                   ((= offset bytes-per-scrub-unit)
                    count)
                   ((zerop (sb!kernel::get-lisp-obj-address (stack-ref loc 0)))
   "Evaluate FORM, returning whatever it returns and adjusting ***, **, *,
    +++, ++, +, ///, //, /, and -."
   (setf - form)
-  (let ((results (multiple-value-list (eval form))))
+  (let ((results
+        (multiple-value-list
+         (eval-in-lexenv form
+                         (make-null-interactive-lexenv)))))
     (setf /// //
          // /
          / results
        ;; get you out to here.
        (with-simple-restart
           (abort
-           "Reduce debugger level (leaving debugger, returning to toplevel).")
+           "~@<Reduce debugger level (leaving debugger, returning to toplevel).~@:>")
         (catch 'toplevel-catcher
           #!-sunos (sb!unix:unix-sigsetmask 0) ; FIXME: What is this for?
           ;; in the event of a control-stack-exhausted-error, we should