;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 124.113
;;; Reason:
;;;  Problems with calls to DEFF in the cold load file QFCTNS.  Many, but
;;;  not all, DEFF calls referred to the load-time function binding of the
;;;  true function argument.
;;;  
;;;  Example: (DEFF SAMEPNAMEP #'STRING=)
;;;  
;;;  Some of them were severe bugs, in that the actual functions were not
;;;  defined at the time of the cold load of QFCTNS.  (That is, the
;;;  troublesome calls were forward references.) This means you get a bogus
;;;  error FUNCALLing them. Even the "working" references were buggy,
;;;  because redefining the actual function would not affect the synonym.
;;;  
;;;  Solution: change all DEFF calls in QFCTNS to use (QUOTE symbol), not
;;;  (FUNCTION symbol).  We will have to investigate other system files for
;;;  this problem.
;;;  
;;;  Also, updated DEFF's documentation to warn against using a function as
;;;  the argument rather than a symbol.
;;; Written 28-Jun-88 09:21:24 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Breaking Glass from band 2
;;; with Experimental System 124.111, Experimental Local-File 74.3, Experimental File-Server 23.1, Experimental 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.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:29
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

;;Hand-munged to affect doc-string only

(setf (documentation 'deff 'function)
      "Define FUNCTION-SPEC with its definition being the value of DEFINITION.
/(DEFF FOO '(LAMBDA (X) X)) is a useless but correct example;
the compiler would not compile the LAMBDA.
/(DEFF FOO 'BAR) makes FOO a synonym for BAR.
/(DEFF FOO #'BAR) /"works/" but you probably don't want to do this -
BAR *must* already be defined, and redefinitions of BAR will not affect FOO.")

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:37
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF COPY-LIST 'COPYLIST)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:37
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF COPY-ALIST 'COPYALIST)

;;; (SUBST NIL NIL ...) is such an ugly language idiom...

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:38
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFUN COPYTREE (TREE &OPTIONAL (DEFAULT-CONS-AREA DEFAULT-CONS-AREA))
  "Copy list structure to all levels, creating a maximally cdr-coded structure."
  (IF (ATOM TREE)
      TREE
    (LET ((NEWTREE (COPY-LIST TREE)))
      (DO ((L NEWTREE (CDR L)))
	  ((ATOM L))
	(SETF (CAR L) (COPYTREE (CAR L))))
      NEWTREE)))

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:39
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF COPY-TREE 'COPYTREE)

;;; Copy an object, and the objects it points to, and ...

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:39
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(deff zl:union 'union-eq)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:40
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(deff zl:nunion 'nunion-eq)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:41
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(deff zl:intersection 'intersection-eq)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:42
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(deff zl:nintersection 'nintersection-eq)

;; Copied from LAD: RELEASE-3.SYS; QFCTNS.LISP#825 on 27-Mar-87 15:57:23

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:43
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF MAP 'MAPL)

;; Copied from LAD: RELEASE-3.SYS; QFCTNS.LISP#825 on 27-Mar-87 15:57:28

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:44
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF > 'GREATERP)

;(DEFUN LESSP (&REST NUMBERS)
;  "Return T if the arguments are in strictly increasing numerical order."
;  (DO ((A NIL C)
;       (B NUMBERS (CDR B))
;       (C))
;      ((NULL B) T)
;    (SETQ C (CAR B))
;    (OR (NULL A) (< A C) (RETURN NIL))))

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:45
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF < 'LESSP)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:46
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF  '<=)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:47
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF  '>=)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:47
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF  '//=)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:48
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF +  'PLUS)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:49
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF +$ 'PLUS)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:49
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF -$ '-)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:50
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF *  'TIMES)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:50
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF *$ 'TIMES)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:51
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF //$ '//)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:52
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF GCD '\\)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:53
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF ADD1 '1+)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:54
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF SUB1 '1-)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:55
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF 1+$  '1+)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:55
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF 1-$  '1-)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:56
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF REMAINDER '\)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:57
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF ^$   '^)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:57
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF EXPT '^)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:42:59
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "


(DEFF SAMEPNAMEP 'STRING=)

))

; From modified file DJ: L.SYS; QFCTNS.LISP#848 at 28-Jun-88 09:43:00
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QFCTNS  "

(DEFF COPY-SYMBOL 'COPYSYMBOL)

))

