;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 126.75
;;; Reason:
;;;  Teach COMPILER:MAKE-OBSOLETE to tell the difference between special forms,
;;;  macros, functions, and random (undefined) "constructions".
;;; Written 9-Sep-88 23:38:07 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Breaking Glass from band 3
;;; with Experimental System 126.73, Experimental ZWEI 126.9, 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; QRAND.LISP#509 at 9-Sep-88 23:38:08
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QRAND  "

(DEFMACRO MAKE-OBSOLETE (FUNCTION REASON)
  "Mark FUNCTION as obsolete, with string REASON as the reason.
REASON should be a clause starting with a non-capitalized word.
Uses of FUNCTION will draw warnings from the compiler."
  (declare (zwei:indentation 1 2))
  `(PROGN (PUTPROP ',FUNCTION 'COMPILER:OBSOLETE 'COMPILER:STYLE-CHECKER)
	  (PUTPROP ',FUNCTION (string-append
				"is an obsolete ~A; ~A"
				(cond ((special-form-p ',function) "special form")
				      ((macro-function ',function) "macro")
				      ((fboundp ',function) "function")
				      (t "construction"))
				,reason)
		   'COMPILER:OBSOLETE)))

))
