;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 126.106 ;;; Reason: ;;; Add function ASSIGN-VALUES-ALIST. ;;; Written 14-Oct-88 17:16:01 by rg (Richard Greenblatt) at site Gigamos Cambridge ;;; while running on Death from band 3 ;;; with Experimental System 126.97, ZWEI 125.20, 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.13, SDU ROM 102, Kcold 20sept88. ; From file DJ: L.SYS; QMISC.LISP#740 at 14-Oct-88 17:16:02 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; QMISC  " (DEFUN ASSIGN-VALUES-ALIST (INPUT-LIST &OPTIONAL (SHIFT 0)) (PROG () L (COND ((NULL INPUT-LIST) (RETURN nil))) (proclaim `(special ,(caar input-list))) (SET (CAAR INPUT-LIST) (LSH (cadar input-list) SHIFT)) (SETQ INPUT-LIST (CDR INPUT-LIST)) (GO L))) (DEFUN ASSIGN-ALTERNATE-eval (X) ;the val had better evaluate "locally". Example, (byte x y) is OK. (PROG () L (COND ((NULL X) (RETURN NIL))) (proclaim `(special ,(car x))) (let ((v (cadr x))) (SET (CAR X) (eval (CADR X)))) (SETQ X (CDDR X)) (GO L))) ))