;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 130.12 ;;; Reason: ;;; The :SOURCE-PATHNAME operation on a generic pathname will no longer ;;; return completely unreasonable answers such as FDEF. As it is impossible ;;; to make the pathname system work correctly, this is implemented by a simple ;;; *KNOWN-NON-SOURCE-FILE-TYPES* list of unacceptable results, for which :LISP ;;; is unconditionally substituted. ;;; Written 23-Nov-88 12:01:23 by smh at site Gigamos Cambridge ;;; while running on Harpo from band 1 ;;; with Experimental System 130.11, Experimental ZWEI 128.8, Experimental ZMail 75.0, Experimental Local-File 77.0, Experimental File-Server 26.0, Experimental Unix-Interface 16.0, Experimental Tape 27.0, Experimental Lambda-Diag 19.0, Microcode 1762, SDU Boot Tape 3.14, SDU ROM 102, 11/18 Falcon System Loaded. ; From modified file DJ: L.IO.FILE; PATHNM.LISP#577 at 23-Nov-88 12:01:54 #8R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: IO; FILE; PATHNM  " (defvar *known-non-source-file-types* '(:QFASL :FBIN :FDEF :UNSPECIFIED :PRESS :WIDTHS :KST :IMPRESS :DVI :FASL :MCR :QBIN :EXE :BIN) "A list of canonical types which should never be considered source file types, no matter how confused the pathname system becomes. These types are always replaced by :LISP inside GENERIC-PATHNAME-SOURCE-PATHNAME.") )) ; From modified file DJ: L.IO.FILE; PATHNM.LISP#577 at 23-Nov-88 12:03:34 #8R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: IO; FILE; PATHNM  " (DEFUN GENERIC-PATHNAME-SOURCE-PATHNAME (PATHNAME) "Given the generic pathname PATHNAME, return a pathname for the source file. We use the actual source file name as recorded, if possible." (LET ((QFASL-SOURCE (SEND PATHNAME :GET :QFASL-SOURCE-FILE-UNIQUE-ID)) (LOADED-FILE (CAADAR (SEND PATHNAME :GET :FILE-ID-PACKAGE-ALIST)))) (MULTIPLE-VALUE-BIND (CTYPE OTYPE) (COND (QFASL-SOURCE (IF (CONSP QFASL-SOURCE) ;dont bomb if list frobs somehow ;left from cold load. (SETQ QFASL-SOURCE (PATHNAME-FROM-COLD-LOAD-PATHLIST QFASL-SOURCE))) (SEND QFASL-SOURCE :CANONICAL-TYPE)) ((AND LOADED-FILE (NOT (EQUAL (SEND LOADED-FILE :TYPE) "QFASL"))) (SEND LOADED-FILE :CANONICAL-TYPE)) (T (SEND (SEND PATHNAME :HOST) :GENERIC-SOURCE-TYPE (SEND PATHNAME :CANONICAL-TYPE)))) (SEND PATHNAME :NEW-PATHNAME :VERSION :NEWEST ;; The replacement of :UNSPECIFIC by :LISP ;; is for files that were last compiled on ITS or FC. ;; $$$ Replaced by a list of unacceptable answers to keep developers ;; from going mad. The pathname system should be diked out with rusty ;; pinking shears. <23-Nov-88 smh> :CANONICAL-TYPE (IF (memq CTYPE *known-non-source-file-types*) :LISP CTYPE) :ORIGINAL-TYPE OTYPE)))) ))