;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 126.60 ;;; Reason: ;;; The PATCH-VERSION structure now stores and prints the universal time ;;; at which the patch was started. The change is upward compatible. ;;; The intention is to aid correlating a patch with file changes and ;;; unexpected lossages. ;;; Written 22-Aug-88 13:48:28 by smh (Steve Haflich) at site Gigamos Cambridge ;;; while running on Harpo from band 3 ;;; with Experimental System 126.59, ZWEI 125.19, ZMail 73.2, Local-File 75.2, File-Server 24.1, Unix-Interface 13.0, Tape 24.2, Lambda-Diag 17.0, microcode 1762, SDU Boot Tape 3.12, SDU ROM 102, kold 4aug88. ; From modified file DJ: L.SYS2; PATCH.LISP#187 at 22-Aug-88 13:49:04 #10R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; PATCH  " (DEFSTRUCT (PATCH-VERSION (:TYPE LIST) (:CONC-NAME VERSION-) (:ALTERANT NIL) (:CALLABLE-CONSTRUCTORS NIL)) (NUMBER NIL :DOCUMENTATION "Minor number of the patch") (EXPLANATION NIL :DOCUMENTATION "String explaining the contents of the patch") (AUTHOR USER-ID :DOCUMENTATION "Who dun it") (UNRELEASED NIL :DOCUMENTATION "T means that this patch is not released, and will not normally be loaded by LOAD-PATCHES unless explicitly requested.") (time-stamp (get-universal-time) :documentation "The universal-time when this patch was started") ) ;;; List of systems that are legal to patch, i.e. list of PATCH-SYSTEM's )) ; From modified file DJ: L.SYS2; PATCH.LISP#187 at 22-Aug-88 13:49:07 #10R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; PATCH  " (DEFUN PRINT-PATCH (MAJOR-VERSION-NUMBER PATCH-VERSION-DESC) (FORMAT T "~&~D.~D ~8T~A~@[ (~\\time\\)~]:~:[~; (unreleased)~]~&~10T~~A~~%" MAJOR-VERSION-NUMBER (VERSION-NUMBER PATCH-VERSION-DESC) (VERSION-AUTHOR PATCH-VERSION-DESC) (VERSION-time-stamp PATCH-VERSION-DESC) (VERSION-UNRELEASED PATCH-VERSION-DESC) (VERSION-EXPLANATION PATCH-VERSION-DESC))) )) ; From modified file DJ: L.SYS2; PATCH.LISP#187 at 22-Aug-88 13:49:07 #10R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; PATCH  " (DEFUN INCREMENT-PATCH-SYSTEM-MAJOR-VERSION (NAME STATUS &AUX VERSION PATCH-MAJOR) "Increment the major version of the patchable system NAME, and set status to STATUS. This modifies the patch directory files of the system." (SETQ VERSION (GET-PATCH-SYSTEM-MAJOR-VERSION NAME T)) (WHEN (NULL VERSION) (FORMAT T "~&No master directory for system ~A, creating one." NAME) (SETQ VERSION 0)) (INCF VERSION) (SETQ PATCH-MAJOR (MAKE-PATCH-MAJOR :NAME NAME :VERSION VERSION)) (WITH-OPEN-FILE (FILE (PATCH-SYSTEM-PATHNAME NAME :SYSTEM-DIRECTORY) :DIRECTION :OUTPUT) (FORMAT FILE ";;; -*- Mode:LISP; Package:USER; Base:10; Readtable:Common-Lisp; Patch-File:T -*-~%") (LET ((*PRINT-BASE* 10.) (*PACKAGE* PKG-USER-PACKAGE) (*READTABLE* INITIAL-COMMON-LISP-READTABLE)) (WRITE-RESPONSIBILITY-COMMENT FILE) (PRINT PATCH-MAJOR FILE))) (LET ((FIRST-VERS (MAKE-PATCH-VERSION :NUMBER 0 :EXPLANATION (FORMAT NIL "~A Loaded" NAME)))) (WRITE-PATCH-DIRECTORY PATCH-MAJOR (MAKE-PATCH-DIR :STATUS STATUS :VERSION-LIST (NCONS FIRST-VERS)) T)) VERSION) (DEFUN RESERVE-PATCH (PATCH-SYSTEM &OPTIONAL (WARNING-STREAM *STANDARD-OUTPUT*)) "Allocate a minor system number for patchable system PATCH. Mark it in the directory with a NIL. PATCH should be an object of type PATCH-SYSTEM. Returns the allocated minor version number." (IF (MEMQ PATCH-SYSTEM FROZEN-PATCH-SYSTEMS-LIST) (cerror "Do it anyway. ** Be sure you know what you're doing! **" "System ~S is frozen and should not be patched." (PATCH-NAME PATCH-SYSTEM))) (LET* ((PATCH-DIR (READ-PATCH-DIRECTORY PATCH-SYSTEM)) (PATCHES (PATCH-DIR-VERSION-LIST PATCH-DIR)) (LAST-PATCH (LAST PATCHES)) (NEW-VERSION (1+ (VERSION-NUMBER (FIRST LAST-PATCH))))) (DOLIST (P PATCHES) (WHEN (VERSION-EXPLANATION P) (UNLESS (ASSQ (VERSION-NUMBER P) (PATCH-VERSION-LIST PATCH-SYSTEM)) (FORMAT WARNING-STREAM "~&Note: Patch ~D.~D is not loaded yet." (PATCH-VERSION PATCH-SYSTEM) (VERSION-NUMBER P)) (RETURN)))) ;Only mention the first one. (DOLIST (P PATCHES) (OR (VERSION-EXPLANATION P) (RETURN (FORMAT WARNING-STREAM "~&Note: Patch ~D.~D is not finished yet." (PATCH-VERSION PATCH-SYSTEM) (VERSION-NUMBER P))))) (SETF (CDR LAST-PATCH) (NCONS (MAKE-PATCH-VERSION :NUMBER NEW-VERSION :EXPLANATION NIL))) (WRITE-PATCH-DIRECTORY PATCH-SYSTEM PATCH-DIR) NEW-VERSION)) ))