;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 126.19
;;; Reason:
;;;  Variable SI::*LAMBDA-FEATURES*: Add this to describe the Lambda target.
;;;  Variable SI::*FALCON-FEATURES*: Put this in the right file.
;;;  Function SI::PROB-FROCESSOR: Conditionalize this to work on the Falcon.
;;; Reason:
;;;  Variable SI::*LAMBDA-FEATURES*: Add this to describe the Lambda target.
;;;  Variable SI::*FALCON-FEATURES*: Put this in the right file.
;;;  Function SI::PROB-FROCESSOR: Conditionalize this to work on the Falcon.
;;; Written 8-Aug-88 19:05:19 by smh (Steve Haflich) at site Gigamos Cambridge
;;; while running on Harpo from band 3
;;; with Experimental System 126.18, ZWEI 125.12, 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.SYS; QMISC.LISP#736 at 8-Aug-88 19:05:19
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QMISC  "

(defvar *lambda-features* *features*)

))

; From modified file DJ: L.SYS; QMISC.LISP#736 at 8-Aug-88 19:11:37
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QMISC  "

(defvar *falcon-features*
      '(:falcon :gigamos :lexical :commonlisp :loop :defstruct :lispm :mit :lmi
		:common :sort :fasload :string :newio :roman
		:trace :grindef :grind))

))

; From modified file DJ: L.SYS; QMISC.LISP#736 at 8-Aug-88 19:05:32
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QMISC  "

(DEFUN PROB-FROCESSOR ()
  ;; This takes a rest arg just in case there are more than two processor types....
  (FLET ((UPDATE (CORRECT-SYMBOL &REST OTHER-SYMBOLS)
	  (DOLIST (S OTHER-SYMBOLS)
	    (SETQ *FEATURES* (DELQ S *FEATURES*)))
	  (PUSHNEW CORRECT-SYMBOL *FEATURES*)))
    ;; The FALCON case is separated out here, since there is no chance of ever
    ;; running the same worlds on the other machine types.
    #+(TARGET FALCON)
    (when (intersection '(:cadr :lambda :explorer) *features*)
      (setq *features* *falcon-features*))
    #+(TARGET (OR LAMBDA CADR EXPLORER))
    (progn
      ;; This should never happen, but what the hell!
      (when (member ':falcon *features*)
	(setq *features* *lambda-features*))
      (SELECT-PROCESSOR
	(:CADR (UPDATE :CADR :LAMBDA :explorer))
	((:LAMBDA :explorer) (UPDATE :LAMBDA :CADR :explorer))
	(:falcon "FOO")))))

))

