(FILECREATED "24-Jan-86 15:50:14" {ERIS}<LISPCORE>LIBRARY>CMLMVS.;4 3246   

      changes to:  (MACROS MULTIPLE-VALUE-SETQ)

      previous date: "23-Jan-86 22:56:41" {ERIS}<LISPCORE>LIBRARY>CMLMVS.;3)


(* Copyright (c) 1985, 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT CMLMVSCOMS)

(RPAQQ CMLMVSCOMS [(MACROS MULTIPLE-VALUE-BIND MULTIPLE-VALUE-LIST MULTIPLE-VALUE-SETQ)
                   (VARS CLMV::MV-ACCEPTOR MULTIPLE-VALUES-LIMIT)
                   (FNS MULTIPLE-VALUE-CALL MULTIPLE-VALUE-PROG1 VALUES VALUES-LIST)
                   (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
                          (ADDVARS (NLAMA MULTIPLE-VALUE-PROG1 MULTIPLE-VALUE-CALL)
                                 (NLAML)
                                 (LAMA VALUES])
(DECLARE: EVAL@COMPILE 
[DEFMACRO MULTIPLE-VALUE-BIND (VARS VALUES-FORM &REST FORMS)
       (BQUOTE (APPLY [FUNCTION (LAMBDA (\, VARS)
                                       (\., FORMS]
                      (MULTIPLE-VALUE-LIST (\, VALUES-FORM]
[DEFMACRO MULTIPLE-VALUE-LIST (FORM)
       (BQUOTE (LET ((CLMV::MV-ACCEPTOR T)
                     CLMV::RESULT)
                    (DECLARE (SPECVARS CLMV::MV-ACCEPTOR))
                    (SETQ CLMV::RESULT (\, FORM))
                    (CL:IF (CONSP CLMV::MV-ACCEPTOR)
                           CLMV::MV-ACCEPTOR
                           (CONS CLMV::RESULT NIL]
[DEFMACRO MULTIPLE-VALUE-SETQ (VARIABLES FORM)
       (LET ((VALUES-VAR (GENSYM)))
            (BQUOTE (LET ((, VALUES-VAR (MULTIPLE-VALUE-LIST , FORM)))
                         ,@
                         (FOR X IN VARIABLES AS I FROM 1 COLLECT
                              (BQUOTE (SETQ , X (CAR (NTH , VALUES-VAR , I]
)

(RPAQQ CLMV::MV-ACCEPTOR NIL)

(RPAQQ MULTIPLE-VALUES-LIMIT 65535)
(DEFINEQ

(MULTIPLE-VALUE-CALL
  [NLAMBDA A                                                 (* raf "18-Nov-85 15:45")
    (CL:DO* [(FUNCTION (EVAL (CAR A)))
	     (FORMS (CDR A)
		    (CDR FORMS))
	     (RESULTS (MULTIPLE-VALUE-LIST (EVAL (CAR FORMS)))
			(APPEND RESULTS (MULTIPLE-VALUE-LIST (EVAL (CAR FORMS]
	    ((NULL (CDR FORMS))
	     (CL:APPLY FUNCTION RESULTS])

(MULTIPLE-VALUE-PROG1
  [NLAMBDA A                                                 (* raf "18-Nov-85 15:47")
    (CL:DO ([RESULTS (MULTIPLE-VALUE-LIST (EVAL (CAR A]
	    (FORMS (CDR A)
		   (CDR FORMS)))
	   ((NULL (CDR FORMS))
	    (VALUES-LIST RESULTS))
	   (EVAL (CAR FORMS])

(VALUES
  (CL:LAMBDA (&REST VALUES)                                  (* raf "18-Nov-85 11:56")
    (CL:IF (EQ T CLMV::MV-ACCEPTOR)
	   (SETQ CLMV::MV-ACCEPTOR VALUES)
	   (CAR VALUES))))

(VALUES-LIST
  (CL:LAMBDA (VALUES)                                      (* raf "18-Nov-85 15:17")
    (CL:IF (EQ T CLMV::MV-ACCEPTOR)
	   (SETQ CLMV::MV-ACCEPTOR VALUES)
	   (CAR VALUES))))
)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA MULTIPLE-VALUE-PROG1 MULTIPLE-VALUE-CALL)

(ADDTOVAR NLAML )

(ADDTOVAR LAMA VALUES)
)
(PUTPROPS CMLMVS COPYRIGHT ("Xerox Corporation" 1985 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1811 2998 (MULTIPLE-VALUE-CALL 1821 . 2245) (MULTIPLE-VALUE-PROG1 2247 . 2573) (VALUES 
2575 . 2781) (VALUES-LIST 2783 . 2996)))))
STOP