;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 124.122
;;; Reason:
;;;  For CL defstructs of (:type vector) that generate the so-called type
;;;  PHONY-VECTOR structure, the type predicate was expanding into something
;;;  that blew up calling ZEROP with two arguments.  Simple fix to the
;;;  DEFSUBST.  -Keith
;;; Written 29-Jun-88 19:24:11 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Breaking Glass from band 1
;;; with Experimental System 124.121, Experimental Local-File 74.3, Experimental File-Server 23.1, Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, Tiger 28.0, microcode 1761, SDU Boot Tape 3.14, SDU ROM 103, Beta 3 plus patches.



; From modified file DJ: L.SYS2; STRUCT.LISP#337 at 29-Jun-88 19:24:12
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; STRUCT  "

(DEFSTRUCT-DEFINE-TYPE :PHONY-NAMED-VECTOR
  (:CONS-KEYWORDS :MAKE-ARRAY :SUBTYPE)
  (:OVERHEAD 1)
  (:DEFSTRUCT-KEYWORDS :MAKE-ARRAY :SUBTYPE)
  (:DEFSTRUCT (DESCRIPTION)
    (DEFSTRUCT-HACK-ARRAY-SUPERTYPE DESCRIPTION))
  (:CONS (ARG DESCRIPTION ETC) :ALIST
    ETC
    (SIMPLER-VECTOR-CONS-FOR-DEFSTRUCT
      ARG DESCRIPTION #'(LAMBDA (V) `(SETF (AREF ,V 0) ',(DEFSTRUCT-DESCRIPTION-NAME)))))
  (:REF (N DESCRIPTION ARG)
    `(,(SELECT-AREF-FORM DESCRIPTION) ,ARG ,(+ N 1)))
  (:PREDICATE (DESCRIPTION NAME)
    `(DEFSUBST ,NAME (X)
       (AND (VECTORP X) (NOT (ZEROP (ARRAY-LENGTH X)))
	    (EQ (AREF X 0) ',(DEFSTRUCT-DESCRIPTION-NAME))))))

))
