;;; -*- Mode:Lisp; Readtable:T; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 121.40
;;; Reason:
;;;  Fix (:PROPERTY DO*-NAMED SI::ALTERNATE-MACRO-DEFINITION) to not
;;;  use old form of PROG*.
;;; Written 4-Mar-87 10:11:59 by jrm (Joe Marshall) at site LMI Cambridge
;;; while running on Lambda Four A from band 2
;;; with Experimental System 121.39, Experimental Lambda-Diag 15.0, Experimental ZMail 70.2, Experimental KERMIT 32.0, Experimental Unix-Interface 10.0, Experimental Local-File 72.0, Experimental FILE-Server 21.0, Experimental Tape 13.0, microcode 1742, SDU Boot Tape 3.14, SDU ROM 102, 121.35.



; From modified file DJ: L.SYS2; CLMAC.LISP#10 at 4-Mar-87 10:12:19
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; CLMAC  "

(defmacro (do*-named alternate-macro-definition) (name vars (test . result) &body body)
  (let ((tag (gensym)))
    `(BLOCK ,name
       (PROG*
	    ,(mapcar #'(lambda (x) (if (atom x) x
				     (list (car x) (cadr x))))
		     vars)
	,tag
	   (WHEN ,test (RETURN-FROM ,name ,@result))
	   (PROGN . ,body)
	   (SETQ . ,(loop for x in vars
			  when (and (not (atom x)) (cddr x))
			  collect (car x) and collect (caddr x)))
	   (GO ,tag)))))

))
