[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Small enhancement for (Rainy Day) PCL under Allegro CL
- To: CommonLoops.pa%Xerox.COM%tub.BITNET@MITVMA.MIT.EDU
- Subject: Small enhancement for (Rainy Day) PCL under Allegro CL
- From: Simon Leinen <simon%opal.cs.tu-berlin.de%TUB.BITNET@MITVMA.MIT.EDU>
- Date: Fri, 16 Mar 90 12:39:26 +0100
- Redistributed: COMMONLOOPS.PA
We use the following addition to `env.lisp' on Allegro CL 3.1.4, Sun-3
and Sun-4. I believe it works on other versions of ACL/ExCL, too.
The purpose is that COMPILE-FILE should print out messages while
compiling methods and classes. It defines a wrapper around an
unexported, undocumented internal compiler function, so use on your
own risk.
-------------------- cut here and insert into `env.lisp' --------------------
;;; The compiler will now print progress messages when it is compiling
;;; a method or class definition.
;;;
#+ExCL
(progn
(defvar *old-compile-process-form*)
(defun pcl-process-form (form)
(when (consp form)
(case (first form)
((defmethod)
(format t "; Compiling method ~$~S~^ ~~%" (name-of-defmethod form)))
((defclass)
(format t "; Compiling class ~S~%" (second form)))))
(funcall *old-compile-process-form* form))
(defun name-of-defmethod (defmethod-form)
(multiple-value-bind (name qualifiers lambda-list body)
(parse-defmethod (rest defmethod-form))
(declare (ignore body))
`(,name ,@qualifiers ,(specialized-lambda-list-specializers lambda-list))))
(eval-when (eval load)
(unless (boundp '*old-compile-process-form*)
(setq *old-compile-process-form* (symbol-function
'compiler::compile-process-form))
(setf (symbol-function 'compiler::compile-process-form)
#'pcl-process-form)))
)
--
Simon Leinen.
simon@opal.cs.tu-berlin.de
simon%opal@db0tui6.bitnet
simon@tubopal.UUCP