From 9c07ecd8527018bc5239f599eefdf557acd24e9f Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Wed, 20 Aug 2008 20:53:55 +0000 Subject: [PATCH] Improved compiler handler example and processed the undefined-variable as warning --- src/CHANGELOG | 15 +++++++++------ src/cmp/cmputil.lsp | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/CHANGELOG b/src/CHANGELOG index 8c3130f9e..0c59253b3 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -11,15 +11,18 @@ ECL 0.9l-p1: recommended procedure is to use HANDLER-BIND and _NOT_ to transfer control out of the handler, but to defer to the default ones. (use-package :c) - (let ((messages nil)) + (let ((warnings nil)) (with-compilation-unit () (handler-bind ((compiler-error #'(lambda (c) - (push c messages) + (push c warnings) (abort))) - (compiler-message #'(lambda (c) (push c messages)))) - (compile-file "foo.lsp"))) - (format t "~&;;; Printing messages") - (loop for m in (nreverse messages) + (compiler-message #'(lambda (c) + (push c warnings) + (muffle-warning)))) + (let ((*compile-verbose* nil)) + (compile-file "foo.lsp")))) + (format t "~&;;; Printing compiler messages") + (loop for m in (nreverse warnings) for i from 0 do (format t "~&~@<;;; ~@;Message #~D~%~A~:>" i m))) diff --git a/src/cmp/cmputil.lsp b/src/cmp/cmputil.lsp index 7ad4af7f8..ad671e4d1 100644 --- a/src/cmp/cmputil.lsp +++ b/src/cmp/cmputil.lsp @@ -180,7 +180,7 @@ (format t "~&;;; Emitting code for ~s.~%" name)))) (defun undefined-variable (sym) - (signal 'compiler-undefined-variable :name sym)) + (do-cmpwarn 'compiler-undefined-variable :name sym)) (defun baboon (&aux (*print-case* :upcase)) (signal 'compiler-internal-error