;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 126.82 ;;; Reason: ;;; COMPILER:WARN's first return value is not predictable (comes from complex ;;; warning recording activity). Give it a second value I can use to recognize ;;; when compiler style checkers have issued a warning as their last act (all that ;;; I can find do so). Note that (from now on) style checkers should respect this ;;; convention that, when a style violation is detected, the last thing done before ;;; exit is to call COMPILER:WARN appropriately. ;;; Written 15-Sep-88 01:47:19 by keith (Keith Corbett) at site Gigamos Cambridge ;;; while running on Breaking Glass from band 3 ;;; with Experimental System 126.81, Experimental ZWEI 126.10, Experimental ZMail 74.1, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Unix-Interface 14.0, Experimental Tape 25.1, Experimental Lambda-Diag 18.0, microcode 1762, SDU Boot Tape 3.14, SDU ROM 103, Lambda/Falcon Development System. ; From modified file DJ: L.SYS; QCFILE.LISP#379 at 15-Sep-88 01:47:30 #8R COMPILER#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER"))) (PATCH-SOURCE-FILE "SYS: SYS; QCFILE  " (DEFUN COMPILER:WARN (TYPE SEVERITY FORMAT-STRING &REST ARGS) "Record and print a compiler warning. TYPE describes the particular kind of problem, such as FUNCTION-NOT-VALID. SEVERITY is a symbol in the keyword package giving a broader classification; see the source for a list of possible severities. FORMAT-STRING and ARGS are used to print the warning. / Severities include /(though are not limited to/): / :IMPLAUSIBLE - something that is not intrinsically wrong but is probably due to a mistake of some sort. :IMPOSSIBLE - something that cannot have a meaning. :MISSING-DECLARATION - free variable not declared special, usually. :PROBABLE-ERROR - something that is an error unless you have changed something else. :OBSOLETE - something that you shouldn't use any more. :VERY-OBSOLETE - similar to :OBSOLETE, only more so. :NOT-PORTABLE - code that may not be portable between LISP implementations. :ERROR - there was an error in reading or macro expansion. :FATAL - there was an error that prevents further compilation." (declare (zwei:indentation (2 1))) (values (APPLY #'SI:RECORD-AND-PRINT-WARNING TYPE SEVERITY NIL FORMAT-STRING ;;;>>>Don't need to worry about temp areas with Lambda GC. ;; (LET ((DEFAULT-CONS-AREA BACKGROUND-CONS-AREA)) ;; ;; Copy temp area data only; note that ARGS lives in PDL-AREA. ;; ;; on error for nonexistent package refname. ;; (MAPCAR (LAMBDA (ARG) (SI:COPY-OBJECT-TREE ARG T 12.)) ARGS)) ;;;Other systems don't put &rest args on stack, but args might get bashed ;;;during RECORD-WARNING's list-munging. So, 'tho I don't know if this is needed: ;;; -Keith (copy-tree args)) 'warn)) ))