*compile-verbose* and *compile-print* now also affect behavior of COMPILE.

This commit is contained in:
jgarcia 2006-10-11 12:27:20 +00:00
parent 50930b2f3f
commit 3be09c41b2
4 changed files with 26 additions and 13 deletions

View file

@ -20,7 +20,7 @@
|----------------------------------------------------------------------------|#
(defpackage :sb-rt
(:nicknames :rt)
(:nicknames :rt :regression-test)
(:use #:cl)
(:export #:*do-tests-when-defined* #:*test* #:continue-testing
#:deftest #:do-test #:do-tests #:get-test #:pending-tests
@ -162,15 +162,17 @@
(flet ((%do
()
(if *compile-tests*
(let ((*compile-verbose* nil)
(*compile-print* nil))
(multiple-value-list
(funcall (compile
nil
`(lambda ()
(declare
(optimize ,@*optimization-settings*))
,(form entry))))))
(multiple-value-list
(funcall (compile
nil
`(lambda ()
(declare
(optimize ,@*optimization-settings*))
,(form entry)))))
(multiple-value-list
(eval (form entry))))))
(eval (form entry))))))
(if *catch-errors*
(handler-bind
((style-warning #'muffle-warning)
@ -196,7 +198,11 @@
(vals entry))
(format s "Actual value~P: ~
~{~S~^~%~15t~}.~%"
(length r) r)))))
(length r) r)
(let ((x (first r)))
(when (typep x 'condition)
(format s "~&Condition: ~A" x)))
))))
(when (not (pend entry)) *test*))
(defun continue-testing ()

View file

@ -86,6 +86,10 @@ ECL 1.0:
- When iterating over a hash table we now check that the argument is really a
hash table.
- *COMPILE-VERBOSE* and *COMPILE-PRINT* now also have effect when compiling
isolated lambda forms using COMPILE. Additionally, these variables are
defined even without the compiler loaded.
;;; Local Variables: ***
;;; mode:text ***
;;; fill-column:79 ***

View file

@ -59,8 +59,8 @@ cl_symbols[] = {
{"*BREAK-ON-SIGNALS*", CL_SPECIAL, NULL, -1, Cnil},
{"*COMPILE-FILE-PATHNAME*", CL_SPECIAL, NULL, -1, Cnil},
{"*COMPILE-FILE-TRUENAME*", CL_SPECIAL, NULL, -1, Cnil},
{"*COMPILE-PRINT*", CL_SPECIAL, NULL, -1, OBJNULL},
{"*COMPILE-VERBOSE*", CL_SPECIAL, NULL, -1, OBJNULL},
{"*COMPILE-PRINT*", CL_SPECIAL, NULL, -1, Ct},
{"*COMPILE-VERBOSE*", CL_SPECIAL, NULL, -1, Ct},
{"*DEBUG-IO*", CL_SPECIAL, NULL, -1, OBJNULL},
{"*DEBUGGER-HOOK*", CL_SPECIAL, NULL, -1, Cnil},
{"*DEFAULT-PATHNAME-DEFAULTS*", CL_SPECIAL, NULL, -1, OBJNULL},

View file

@ -404,7 +404,8 @@ static cl_object VV[VM];
(*compile-file-pathname* nil)
(*compile-file-truename* nil)
(*compile-verbose* verbose)
(*suppress-compiler-notes* (not verbose))
(*suppress-compiler-notes* (or *suppress-compiler-notes* (not verbose)))
(*suppress-compiler-warnings* (or *suppress-compiler-warnings* (not verbose)))
#+PDE sys:*source-pathname*)
(declare (notinline compiler-cc))
@ -557,6 +558,8 @@ Cannot compile ~a."
#+dlopen
(defun compile (name &optional (def nil supplied-p)
&aux form data-pathname
(*suppress-compiler-warnings* (or *suppress-compiler-warnings* (not *compile-verbose*)))
(*suppress-compiler-notes* (or *suppress-compiler-notes* (not *compile-verbose*)))
(*compiler-in-use* *compiler-in-use*)
(*standard-output* *standard-output*)
(*error-output* *error-output*)