;;; -*- Mode:Lisp; Readtable:T; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 121.11 ;;; Reason: ;;; Make ALTERNATE-MACRO-DEFINITION for MULTIPLE-VALUE-SETQ ;;; Written 23-Jan-87 15:02:07 by jrm (Joe Marshall) at site LMI Cambridge ;;; while running on Laurie Anderson from band 2 ;;; with Experimental System 121.10, Experimental Lambda-Diag 15.0, Experimental ZMail 70.1, Experimental KERMIT 32.0, Experimental Unix-Interface 10.0, Experimental Local-File 72.0, Experimental FILE-Server 21.0, Experimental Tape 13.0, Experimental IMicro 19.0, microcode 1729, SDU Boot Tape 3.14, SDU ROM 102. ; From modified file DJ: L.SYS2; CLMAC.LISP#9 at 23-Jan-87 15:02:11 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; CLMAC  " (defmacro (multiple-value-setq alternate-macro-definition) (vars form) (labels ((pair-up (vars bindings setqs) (if (null vars) `(MULTIPLE-VALUE-CALL #'(LAMBDA ,(cons '&OPTIONAL (reverse bindings)) ,@(reverse setqs) ,(first (reverse bindings))) ,form) (let ((temp (gensym))) (pair-up (rest vars) (cons temp bindings) (cons `(SETQ ,(first vars) ,temp) setqs)))))) (pair-up vars nil nil))) ))