master: (setf readtable-base-char-preference): assert-not-standard-readtable
stassats via Sbcl-commits <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via e071985c6e399cf01b75c096c9b8d73f15188053 (commit)
from e1f589db879b6862b635b15b45c79cc6466996a7 (commit)
- Log -----------------------------------------------------------------
commit e071985c6e399cf01b75c096c9b8d73f15188053
Author: Stas Boukarev <[email protected]>
Date: Thu Apr 16 02:47:46 2026 +0300
(setf readtable-base-char-preference): assert-not-standard-readtable
---
make-target-2-load.lisp | 8 +++++---
src/code/reader.lisp | 1 +
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/make-target-2-load.lisp b/make-target-2-load.lisp
index c9f0d562b..36c4de3dc 100644
--- a/make-target-2-load.lisp
+++ b/make-target-2-load.lisp
@@ -363,8 +363,9 @@ Please check that all strings which were not recognizable to the compiler
(setq sb-c::*policy* (copy-structure sb-c::**baseline-policy**))
;;; Adjust READTABLE-BASE-CHAR-PREFERENCE back to the advertised default.
-(dolist (rt (list sb-impl::*standard-readtable* *debug-readtable*))
- (setf (readtable-base-char-preference rt) :symbols))
+(handler-bind ((sb-int:standard-readtable-modified-error #'continue))
+ (dolist (rt (list sb-impl::*standard-readtable* *debug-readtable*))
+ (setf (readtable-base-char-preference rt) :symbols)))
;;; Change the internal constructor's default too.
(let ((dsd sb-kernel::(find 'sb-impl::%readtable-string-preference
(dd-slots (find-defstruct-description 'readtable))
@@ -545,4 +546,5 @@ Please check that all strings which were not recognizable to the compiler
#+(and x86-64 (not sb-devel)) (sb-ext:fold-identical-code :aggressive t :preserve-docstrings t)
;; See comments in 'readtable.lisp'
-(setf (readtable-base-char-preference *readtable*) :symbols)
+(handler-bind ((sb-int:standard-readtable-modified-error #'continue))
+ (setf (readtable-base-char-preference *readtable*) :symbols))
diff --git a/src/code/reader.lisp b/src/code/reader.lisp
index 68619b7e8..ce5840ed9 100644
--- a/src/code/reader.lisp
+++ b/src/code/reader.lisp
@@ -278,6 +278,7 @@ be interned (returned, respectively) as required. The default is :SYMBOLS."
(defun (setf readtable-base-char-preference) (new-value readtable)
(declare (type (member :symbols :strings :both nil) new-value))
"Sets the READTABLE-BASE-CHAR-PREFERENCE of the given READTABLE."
+ (assert-not-standard-readtable readtable '(setf readtable-base-char-preference))
(setf (%readtable-symbol-preference readtable)
(if (member new-value '(:symbols :both)) 'base-char 'character)
(%readtable-string-preference readtable)
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL