(FILECREATED "10-Sep-86 21:10:42" ("compiled on " {ERIS}LIBRARY>CMLMVS.;24) " 9-Sep-86 19:10:24" "COMPILE-FILEd" in "Xerox Lisp 9-Sep-86 ..." dated " 9-Sep-86 19:34:22") (FILECREATED "10-Sep-86 21:10:22" {ERIS}LIBRARY>CMLMVS.;24 5917 changes to: (FUNCTIONS MULTIPLE-VALUE-SETQ) previous date: " 5-Jun-86 00:10:36" {ERIS}LIBRARY>CMLMVS.;23) (RPAQQ CMLMVSCOMS ((* "Interpreter and compiler support for multiple values. See LLMVS for runtime support") (FNS MULTIPLE-VALUE-CALL RETVALUES) (PROP DMACRO MULTIPLE-VALUE-CALL) (FUNCTIONS MULTIPLE-VALUE-BIND MULTIPLE-VALUE-LIST MULTIPLE-VALUE-PROG1 MULTIPLE-VALUE-SETQ) (VARS (NEW-ADVISETEMPLATE (QUOTE ( ADV-PROG (!VALUE !OTHER-VALUES) (MULTIPLE-VALUE-SETQ (!VALUE . !OTHER-VALUES) (ADV-PROG NIL ( ADV-RETURN DEF))) (ADV-RETURN (VALUES-LIST (CONS !VALUE !OTHER-VALUES))))))) (PROP FILETYPE CMLMVS) ( DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA MULTIPLE-VALUE-CALL) ( NLAML) (LAMA))))) MULTIPLE-VALUE-CALL D1 (P 5 X P 1 CNT P 0 FN I 0 FORMS) M@,j0@°dM, Z–KµJ\[¿µéL° [J°ñdýIkØYnñ–hl4 ¿µìIH(104Q \LISPERROR 54Q LAST 26Q \MVLIST) NIL () RETVALUES D1 (P 0 P I 2 FLG I 1 VALUES I 0 POS) =@ kHÑÊðjð•kHÑÈ„kHÑÈ l ÙXjð´ Al ¿hHd B”@ ¿A (72Q VALUES-LIST 65Q RELSTK 57Q \SMASHLINK 50Q \LISPERROR 3 \STACKARGPTR) NIL () (PUTPROPS MULTIPLE-VALUE-CALL DMACRO (DEFMACRO (FN &BODY BODY) (* "optmizer" for special form MULTIPLE-VALUE-CALL - handle special case of "list" and let the rest turn into an APPLY) (COND ((AND ( EQUAL FN (QUOTE (FUNCTION LIST))) (NULL (CDR BODY))) (CONS (QUOTE \MVLIST) BODY)) (T (BQUOTE (CL:APPLY (\, FN) (NCONC (\,@ (for F in BODY collect (BQUOTE (MULTIPLE-VALUE-LIST (\, F)))))))))))) expand-MULTIPLE-VALUE-BIND D1 (L (1 $$MACRO-ENVIRONMENT 0 $$MACRO-FORM)) !@AH¹HZ»J¼gIgKhLNIL (26Q MULTIPLE-VALUE-LIST 22Q DESTRUCTURING-BIND) () (SETF-MACRO-FUNCTION (QUOTE MULTIPLE-VALUE-BIND) (QUOTE expand-MULTIPLE-VALUE-BIND)) expand-MULTIPLE-VALUE-LIST D1 (L (1 $$MACRO-ENVIRONMENT 0 $$MACRO-FORM)) @goHhNIL (10Q MULTIPLE-VALUE-CALL) ( 14Q (FUNCTION LIST)) (SETF-MACRO-FUNCTION (QUOTE MULTIPLE-VALUE-LIST) (QUOTE expand-MULTIPLE-VALUE-LIST)) expand-MULTIPLE-VALUE-PROG1 D1 (L (1 $$MACRO-ENVIRONMENT 0 $$MACRO-FORM)) @!H¹HºgggIhJhNIL (23Q MULTIPLE-VALUE-LIST 20Q PROG1 15Q VALUES-LIST) () (SETF-MACRO-FUNCTION (QUOTE MULTIPLE-VALUE-PROG1) (QUOTE expand-MULTIPLE-VALUE-PROG1)) expand-MULTIPLE-VALUE-SETQ D1 (L (1 $$MACRO-ENVIRONMENT 0 $$MACRO-FORM)) C@1H¹Hº»gKgJhhhggKhgIgJhhhh(16Q GENSYM) (60Q MULTIPLE-VALUE-LIST 54Q DESTRUCTURING-SETQ 45Q CAR 42Q PROG1 26Q MULTIPLE-VALUE-LIST 22Q LET) () (SETF-MACRO-FUNCTION (QUOTE MULTIPLE-VALUE-SETQ) (QUOTE expand-MULTIPLE-VALUE-SETQ)) (RPAQQ NEW-ADVISETEMPLATE (ADV-PROG (!VALUE !OTHER-VALUES) (MULTIPLE-VALUE-SETQ (!VALUE . !OTHER-VALUES) (ADV-PROG NIL (ADV-RETURN DEF))) (ADV-RETURN (VALUES-LIST (CONS !VALUE !OTHER-VALUES))) )) (PUTPROPS CMLMVS FILETYPE COMPILE-FILE) (PUTPROPS CMLMVS COPYRIGHT ("Xerox Corporation" 1985 1986)) STOP