[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error on package redefinition?



	Hi,

Ich benutze f"ur solche F"alle eine tempor"are Bindung von
*error-output* an einen string-stream.

(defparameter *internal-error-output* (make-string-output-stream))
#| can be visited and flushed by calling
(get-output-stream-string *internal-error-output* )
|#
...
 (let ((name (stringify name)))
    `(LET ((*ERROR-OUTPUT* *INTERNAL-ERROR-OUTPUT*))
      (CLOS:DEFMETHOD
          ,(intern (string-upcase (concatenate 'string name "-open"))
                   'markup)
          ,signature ,@declare ,@open ,@body)
      (CLOS:DEFMETHOD
          ,(intern (string-upcase (concatenate 'string name "-close"))
                   'markup)
          ,signature ,@declare ,@close ,@body))))

Hier binde ich f"ur die Definition von Methoden, die mir potentielle
Redefinitions-Warnungen melden, kurzerhand einen internen
string-stream *internal-error-output* und die Fehlerealdungen landen
in diesem Stream. Der Vorteil ist, da"s man die Meldungen sp"ater noch
nachbearbeiten kann (siehe get-output-stream-string).

Dieses ist zumindest ein portables Verfahren und sollte auf allen
CL-Implementationen funktionieren. Falls zu diesem Thema noch andere
Vorschl"age kommen, kannst du mir sie ja mal weiterleiten.

Ciao

--
----------------------------------------------------------------------
Roger Kehr  	kehr@iti.informatik.th-darmstadt.de
----------------------------------------------------------------------