;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 127.1 ;;; Reason: ;;; COMPILER:MAKE-OBSOLETE now takes a third argument, a string which is ;;; used to say what kind of obsolete thing the first argument is. Most ;;; importantly, it doesn't figure out at load-time what kind of form its ;;; object is. That would be nice, but it blows out the cold load (I ;;; think). Besides, the new method lets you say for yourself what kind of ;;; obsolete thing this is. ;;; Written 26-Oct-88 23:59:45 by keith at site Gigamos Cambridge ;;; while running on Djinn from band 1 ;;; with Experimental ZWEI 126.27, Experimental ZMail 74.13, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Lambda-Diag 18.0, Experimental Unix-Interface 15.0, Experimental Tape 26.4, Experimental System 127.0, Microcode 1762, SDU Boot Tape 3.14, SDU ROM 102, 10/25. ; From modified file DJ: L.SYS; QRAND.LISP#514 at 27-Oct-88 00:14:21 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QRAND  " (DEFMACRO MAKE-OBSOLETE (FORM-NAME REASON &optional (thing "form")) "Mark FORM-NAME as an obsolete THING, 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)) `(eval-when (eval load compile) (PUTPROP ',FORM-NAME 'COMPILER:OBSOLETE 'COMPILER:STYLE-CHECKER) (PUTPROP ',FORM-NAME ,(format nil "is an obsolete ~A; ~A" (or thing "form") ;This won't work because a) form may not be defined yet and b) it may change. ; (cond ; (thing) ; ((special-form-p form-name) "special-form") ; ((macro-function form-name) "macro") ; ((symbol-function form-name) "function") ; (t "form")) reason) 'COMPILER:OBSOLETE))) ))