;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 126.52
;;; Reason:
;;;  On the Falcon WITH-STACK-LIST(*) now compile into a simple LET and
;;;  make no attempt to stack cons.
;;; Written 16-Aug-88 12:32:48 by smh at site Gigamos Cambridge
;;; while running on Harpo from band 3
;;; with Experimental System 126.51, ZWEI 125.16, 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; QCP1.LISP#727 at 16-Aug-88 12:32:58
#8R COMPILER#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER")))
  (PATCH-SOURCE-FILE "SYS: SYS; QCP1  "

(DEFUN P1-WITH-STACK-LIST (FORM)
  (ecase *target-computer*
    ;; Arguments have been made that WITRH-STACK-LIST is no longer winning
    ;; and should not be used even on the lambda.  Who knows??  We will not
    ;; implement it fresh on the K, in any case.
    (lambda-interface
     ;; What a winnning compiler!  No fewer than 4 special forms needed to compile
     ;;  with-stack-list(*)
     (P1 `(BLOCK-FOR-WITH-STACK-LIST P1-WITH-STACK-LIST
				     (CHANGE-PDLLVL
				       ,(LENGTH (CDADR FORM))
				       (%PUSH (,(CASE (CAR FORM)
						  (WITH-STACK-LIST '%MAKE-EXPLICIT-STACK-LIST)
						  (WITH-STACK-LIST* '%MAKE-EXPLICIT-STACK-LIST*))
					       ,@(CDADR FORM))))
				     (LET ((,(CAADR FORM) (%POP-FOR-WITH-STACK-LIST)))
				       ,@(CDDR FORM)))))
    (k
     (p1 `(let ((,(caadr form) (,(case (car form)
				   (with-stack-list 'list)
				   (with-stack-list* 'list*))
				,@(cdadr form))))
	    ,@(cddr form))))))

))
