;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 123.279 ;;; Reason: ;;; GO from inside a LET that did special bindings, to a higher level, ;;; wasn't always doing an UNBIND. GO itself was fine, this only happened ;;; when COND thought it could optimize this branch. Fix SIMPLEGOP to ;;; not claim this case is simple. ;;; Written 12-May-88 21:39:05 by RWK (Robert W. Kerns) at site Gigamos Cambridge ;;; while running on Claude Debussy from band 3 ;;; with Experimental System 123.267, Experimental Local-File 73.5, Experimental FILE-Server 22.5, Experimental Unix-Interface 11.0, Experimental Tape 18.2, Experimental KERMIT 34.3, Experimental ZMail 71.2, Experimental Lambda-Diag 15.0, microcode 1756, SDU Boot Tape 3.14, SDU ROM 102, LOADED Landscape GC'd. ; From file DJ: L.SYS; QCP2.LISP#316 at 12-May-88 21:39:08 #8R COMPILER#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER"))) (PATCH-SOURCE-FILE "SYS: SYS; QCP2  " (defun unbinds-needed-p (tag) (let ((gotag (find tag *gotag-environment* :key #'gotag-prog-tag))) (when gotag (let ((progdesc (gotag-progdesc gotag))) (loop for desc in *progdesc-environment* thereis (not (zerop (progdesc-nbinds desc))) until (eq progdesc desc)))))) )) ; From file DJ: L.SYS; QCP2.LISP#316 at 12-May-88 21:41:13 #8R COMPILER#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER"))) (PATCH-SOURCE-FILE "SYS: SYS; QCP2  " (DEFUN SIMPLEGOP (FORM) (AND (EQ (CAR-SAFE FORM) 'GO) (not (unbinds-needed-p (second form))) (= PDLLVL (GPDLLVL (second FORM))))) ))