X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftoplevel.lisp;h=67bb513489670b49580e93563d86f59fafbca28a;hb=dbfe7e6c8b06e1b0b1ba35d9894fae13e6305602;hp=c05f092caaea76363b182508a61d0d89d31597fe;hpb=02c9007b4ca5753406f60019f4fe5e5f8392541a;p=sbcl.git diff --git a/src/code/toplevel.lisp b/src/code/toplevel.lisp index c05f092..67bb513 100644 --- a/src/code/toplevel.lisp +++ b/src/code/toplevel.lisp @@ -46,7 +46,7 @@ ;;; by QUIT) is caught and any final processing and return codes are ;;; handled appropriately. (defmacro handling-end-of-the-world (&body body) - (let ((caught (gensym "CAUGHT"))) + (with-unique-names (caught) `(let ((,caught (catch '%end-of-the-world (/show0 "inside CATCH '%END-OF-THE-WORLD") ,@body))) @@ -173,7 +173,8 @@ (let* ((csp (sap-int (sb!c::control-stack-pointer-sap))) (initial-offset (logand csp (1- bytes-per-scrub-unit))) (end-of-stack - (- sb!vm::*control-stack-end* sb!c:*backend-page-size*))) + (- (sb!vm:fixnumize sb!vm:*control-stack-end*) + sb!c:*backend-page-size*))) (labels ((scrub (ptr offset count) (declare (type system-area-pointer ptr) @@ -205,7 +206,8 @@ #!+stack-grows-downward-not-upward (let* ((csp (sap-int (sb!c::control-stack-pointer-sap))) - (end-of-stack (+ sb!vm::*control-stack-start* sb!c:*backend-page-size*)) + (end-of-stack (+ (sb!vm:fixnumize sb!vm:*control-stack-start*) + sb!c:*backend-page-size*)) (initial-offset (logand csp (1- bytes-per-scrub-unit)))) (labels ((scrub (ptr offset count) @@ -521,7 +523,7 @@ ;; have unwound enough stack by the time we get here that this ;; is now possible (sb!kernel::protect-control-stack-guard-page 1) - (repl noprint) + (funcall *repl-fun* noprint) (critically-unreachable "after REPL"))))))) ;;; Our default REPL prompt is the minimal traditional one. @@ -550,8 +552,11 @@ (defvar *repl-prompt-fun* #'repl-prompt-fun "a function of one argument STREAM for the toplevel REPL to call: Prompt the user for input.") +(defvar *repl-fun* #'repl-fun + "a function of one argument NOPRINT that provides the REPL for the system. + Assumes that *standard-input* and *standard-output* are setup.") -(defun repl (noprint) +(defun repl-fun (noprint) (/show0 "entering REPL") (loop ;; (See comment preceding the definition of SCRUB-CONTROL-STACK.)