1.0.23.48: REPL recovers from *READ-SUPPRESS* T with a warning
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 17 Dec 2008 17:34:17 +0000 (17:34 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 17 Dec 2008 17:34:17 +0000 (17:34 +0000)
 * Reported by Daniel Herring.

NEWS
src/code/toplevel.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 2318661..5574f03 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -30,6 +30,8 @@
   * bug fix: #430; nested structure constructors can stack allocate.
   * bug fix: on some 64-bit platforms dynamic space size was truncated
     to #xffff0000 bytes. (reported by Benjamin Lambert)
+  * bug fix: setting *READ-SUPPRESS* to T no longer renders the default
+    REPL unusable. (reported by Daniel Herring)
 
 changes in sbcl-1.0.23 relative to 1.0.22:
   * enhancement: when disassembling method functions, disassembly
index 16243a2..bc46818 100644 (file)
@@ -637,6 +637,11 @@ that provides the REPL for the system. Assumes that *STANDARD-INPUT* and
 ;;; handle the Unix-style EOF-is-end-of-process convention.
 (defun repl-read-form-fun (in out)
   (declare (type stream in out) (ignore out))
+  ;; KLUDGE: *READ-SUPPRESS* makes the REPL useless, and cannot be
+  ;; recovered from -- flip it here.
+  (when *read-suppress*
+    (warn "Setting *READ-SUPPRESS* to NIL to restore toplevel usability.")
+    (setf *read-suppress* nil))
   (let* ((eof-marker (cons nil nil))
          (form (read in nil eof-marker)))
     (if (eq form eof-marker)
index 51ac16d..75df510 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.23.47"
+"1.0.23.48"