;;; -*- 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 v)))
	 (SETQ X (CDDR X))
	 (GO L)))

))
