;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 121.43 ;;; Reason: ;;; Fix bug in (PROCLAIM '(DECLARATION FOO)) ;;; Written 5-Mar-87 13:50:34 by jrm (Joe Marshall) at site LMI Cambridge ;;; while running on Lambda Four A from band 2 ;;; with Experimental System 121.42, Experimental Lambda-Diag 15.0, Experimental ZMail 70.2, Experimental KERMIT 32.0, Experimental Unix-Interface 10.0, Experimental Local-File 72.0, Experimental FILE-Server 21.0, Experimental Tape 13.0, microcode 1742, SDU Boot Tape 3.14, SDU ROM 102, 121.35. ; From modified file DJ: L.SYS; EVAL.LISP#175 at 5-Mar-87 13:50:41 #10R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; EVAL  " (defun proclaim (&rest declarations &aux d) "Make DECLARATIONS be in effect globally. Only SPECIAL declarations make sense to do this way, and they are better made using DEFVAR or DEFPARAMETER." (dolist (decl declarations) (if (or (atom decl) (not (atom (setq d (car decl))))) (ferror "~S is an invalid declaration" decl) (case d (special (dolist (x (cdr decl)) ;; Gag me with type check!! ; ;; getf of symbol-plist is for the symbolp check inherent in symbol-plist ; (setf (getf (symbol-plist x) 'special) t)) (check-type x symbol) (proclaim-special x))) (unspecial (dolist (x (cdr decl)) (check-type x symbol) (proclaim-unspecial x))) (inline ) (notinline ) (declaration (dolist (x (cdr decl)) (pushnew `(,x ignore) *interpreter-declaration-type-alist* :test #'eq :key #'car))) (t (cond ((get d 'debug-info)) ((assq d *interpreter-declaration-type-alist*)) (t (cerror "Ignore it" "~S is an unknown declaration" decl))) ;; else do nothing... )))) nil) ))