diff --git a/src/code/pprint.lisp b/src/code/pprint.lisp index f624be4a181c193c1fadca0ea9725d58ca10ecd9..77f660e623e4cc1d69ee011a41be75ba16769172 100644 --- a/src/code/pprint.lisp +++ b/src/code/pprint.lisp @@ -2076,7 +2076,9 @@ When annotations are present, invoke them at the right positions." (c:sc-case pprint-sc-case) (c:define-assembly-routine pprint-define-assembly) (c:deftransform pprint-defun) - (c:defoptimizer pprint-defun))) + (c:defoptimizer pprint-defun) + (ext:with-float-traps-masked pprint-with-like) + (ext:with-float-traps-enabled pprint-with-like))) (defun pprint-init () (setf *initial-pprint-dispatch* (make-pprint-dispatch-table)) diff --git a/tests/pprint.lisp b/tests/pprint.lisp new file mode 100644 index 0000000000000000000000000000000000000000..dd87307a4abd5a248f5232b277c173b970c3ebc7 --- /dev/null +++ b/tests/pprint.lisp @@ -0,0 +1,28 @@ +;; Tests for pprinter + +(defpackage :pprint-tests + (:use :cl :lisp-unit)) + +(in-package "PPRINT-TESTS") + +(define-test pprint.with-float-traps-masked + (:tag :issues) + (assert-equal +" +(WITH-FLOAT-TRAPS-MASKED (:UNDERFLOW) + (PRINT \"Hello\"))" + (with-output-to-string (s) + (pprint '(ext:with-float-traps-masked (:underflow) + (print "Hello")) + s)))) + +(define-test pprint.with-float-traps-enabled + (:tag :issues) + (assert-equal +" +(WITH-FLOAT-TRAPS-ENABLED (:UNDERFLOW) + (PRINT \"Hello\"))" + (with-output-to-string (s) + (pprint '(ext:with-float-traps-enabled (:underflow) + (print "Hello")) + s))))