From 9ede329118fdee93481b7a9ad134825db19c2895 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <fare@tunes.org> Date: Tue, 23 May 2017 05:28:41 -0400 Subject: [PATCH] Enable read-eval while saving deferred warnings This addresses an issue in sbcl-1.3.17-59-g1069e99c0 whereby some strings used in the warnings are base-string that can't be printed readably without *read-eval* being t. --- uiop/lisp-build.lisp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/uiop/lisp-build.lisp b/uiop/lisp-build.lisp index a4df99eb9..254301cea 100644 --- a/uiop/lisp-build.lisp +++ b/uiop/lisp-build.lisp @@ -497,7 +497,8 @@ possibly in a different process." :element-type *default-stream-element-type* :external-format *utf-8-external-format*) (with-safe-io-syntax () - (write (reify-deferred-warnings) :stream s :pretty t :readably t) + (let ((*read-eval* t)) + (write (reify-deferred-warnings) :stream s :pretty t :readably t)) (terpri s)))) (defun warnings-file-type (&optional implementation-type) @@ -545,7 +546,10 @@ re-intern and raise any warnings that are still meaningful." (reset-deferred-warnings) (dolist (file files) (unreify-deferred-warnings - (handler-case (safe-read-file-form file) + (handler-case + (with-safe-io-syntax () + (let ((*read-eval* t)) + (read-file-form file))) (error (c) ;;(delete-file-if-exists file) ;; deleting forces rebuild but prevents debugging (push c file-errors) -- GitLab