Commit a40b94e4 by Robert Goldman

Merge branch 'deferred-warnings-read-eval' into 'master'

Deferred warnings read eval

See merge request !73
parents 1b0a0fd9 9ede3291
......@@ -823,3 +823,14 @@ operations on a given component, you MAY want to override or wrap around
the `component-if-feature` method for that component instead of defining
all those `perform`, `output-files` and `input-files` methods.
## Other
Do not side-effect the current `*readtable*`,
which is never guaranteed to be writable, and
may not be what is current when you need the modification.
If you need modifications to the readtable, use `named-readtables`,
`reader-interception`, or some other adequate mechanism.
To bind the readtable, use `named-readtables:in-readtable` or `cl-syntax:in-syntax`
in each file that needs a non-standard readtable, and/or use an `:around-compile` hook
to automatically bind it around every file in a module or system.
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment