;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 126.12 ;;; Reason: ;;; Moved *TARGET-FEATURES* to SI package. ;;; Made #+(TARGET ...) ignore *TARGET-FEATURES* if null. ;;; Written 4-Aug-88 12:39:54 by smh at site Gigamos Cambridge ;;; while running on Harpo from band 2 ;;; with ZWEI 125.10, ZMail 73.0, Local-File 75.2, File-Server 24.1, Unix-Interface 13.0, Tape 24.2, Lambda-Diag 17.0, Experimental System 126.11, microcode 1761, SDU Boot Tape 3.12, SDU ROM 102, 125+make-system system. ; From modified file DJ: L.IO; READ.LISP#468 at 4-Aug-88 12:39:58 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: IO; READ  " (DEFUN XR-FEATURE-PRESENT (FEATURE &optional (feature-list *features*)) (COND ((SYMBOLP FEATURE) ;; recent common-lisp flamage claims that this should be memq, not member :test #'string= ;; Personally, I can't think of a more poorly-designed advertised feature in the ;; clisp manual than *features* and *modules* (MEMQ FEATURE feature-list)) ((NUMBERP FEATURE) (MEMBER-EQL FEATURE feature-list)) ((ATOM FEATURE) (READ-ERROR "Unknown form ~S in #+ or #- feature list." FEATURE)) ((EQ (CAR FEATURE) :NOT) (NOT (XR-FEATURE-PRESENT (CADR FEATURE) feature-list))) ((EQ (CAR FEATURE) :AND) (loop for f in (cdr feature) always (XR-FEATURE-PRESENT f feature-list))) ((EQ (CAR FEATURE) :OR) (loop for f in (cdr feature) thereis (XR-FEATURE-PRESENT f feature-list))) ((eq (car feature) :PACKAGE-ROOT-NAME) ;extension, 7/18/87, RG. (string-equal (si:package-root-name *previous-package*) (cadr feature))) ((eq (car feature) :target) ;cross compilation extension - 3aug88 smh (xr-feature-present (cadr feature) (or *target-features* *features*))) ((eq (car feature) :local) ;cross compilation extension - 3aug88 smh (xr-feature-present (cadr feature) *features*)) (T (READ-ERROR "Unknown form ~S in #+ or #- feature list." FEATURE)))) )) ; From modified file DJ: L.SYS; QMISC.LISP#734 at 4-Aug-88 12:40:24 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QMISC  " (defvar *target-features* 'nil ;4aug88 smh "An alternate *FEATURES* list which for purposes of cross compilation may be bound or otherwise hacked instead of *FEATURES*. #+(TARGET FOO) looks for FOO on *TARGET-FEATURES* instead of *FEATURES*. If NIL, *FEATURES* is used anyway.") ))