From: Joerg-Cyril Hoehle
Subject: PCL compiler warnings (even at run-time) with GINA2.3 and CMUCL17e
Date:
Message-ID: <303h3v$59q@hermes.uni-konstanz.de>
Hi,
when compiling (and even at run-time) we get lots of warnings about
PCL::.ARGS-TAIL and a few warnings about PCL::.ARG0 being unused. I
wonder if this is a hint for some bugs or a typical effect of
macro-expansion.
However, as the messages at run-time are garbling the lisp output
display, I wonder if there's a way to get rid of them. That means
really avoiding them by appropriate declares or at least not let
Python (the CMU compiler) tell us about them.
Examples:
;; Loading #p"/tmp_mnt/pro/wis/src/GINA2.3/gina/views.sparcf".
Compiling LAMBDA (#:G1819 #:G1820):
In: LAMBDA (#:G1819 #:G1820)
#'(LAMBDA
(PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. PCL::.ARG0. PCL::.ARG1.
PCL::.ARG2. ...)
(DECLARE (IGNORE PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL.))
(ERROR #:G1819 #:G1820))
Warning: Variable PCL::.ARG0. defined but never used.
* (clock::make-clock-application)
#<Application Clock on localhost>
*
In: LAMBDA (PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. CLOCK::DOC)
(PCL::FAST-LEXICAL-METHOD-FUNCTIONS
((CLOCK::DOC &AUX CLOCK::NOW) PCL::.NEXT-METHOD-CALL. (CLOCK::DOC) NIL
:CALL-NEXT-METHOD-P ...)
(DECLARE (PCL::CLASS CLOCK::DOC CLOCK::CLOCK-DOCUMENT))
(PCL::PV-BINDING (# # #:|pv-table|) ..))
--> PCL::BIND-FAST-LEXICAL-METHOD-MACROS MACROLET
--> PCL::BIND-LEXICAL-METHOD-FUNCTIONS LET PCL::BIND-ARGS
==>
(LET* ((PCL::.ARGS-TAIL. NIL) CLOCK::NOW)
(DECLARE (PCL::CLASS CLOCK::DOC CLOCK::CLOCK-DOCUMENT))
(PCL::PV-BINDING (# # #:|pv-table|)
(PROGN CLOCK::DOC)
(BLOCK CLOCK::TICK #)))
Warning: Variable PCL::.ARGS-TAIL. defined but never used.
Thanks for your help,
Joerg Hoehle.
······@inf-wiss.uni-konstanz.de
Information Science
University of Constance
Germany
From: Rob MacLachlan
Subject: Re: PCL compiler warnings (even at run-time) with GINA2.3 and CMUCL17e
Date:
Message-ID: <CsxvHr.4vx.3@cs.cmu.edu>
Compiler error output (in this case from COMPILE) is sent to the Common Lisp
*ERROR-OUTPUT* stream, so you can gag it by binding *ERROR-OUTPUT* to
(MAKE-BROADCAST-STREAM). This won't break the debugger, since it uses
*DEBUG-IO* (though you may lose the initial error message.)
Rob