(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