From: <cli...@li...> - 2004-06-03 21:18:01
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/tests backquot.tst,1.13,1.14 ChangeLog,1.175,1.176 (Bruno Haible) 2. clisp/src clos-package.lisp,1.4,1.5 clos-slotdef1.lisp,1.3,1.4 ChangeLog,1.3126,1.3127 (Bruno Haible) 3. clisp/src HISTORY,1.13,1.14 NEWS,1.145,1.146 (Bruno Haible) 4. clisp/src ChangeLog,1.3127,1.3128 (Sam Steingold) 5. clisp/src backquote.lisp,2.16,2.17 ChangeLog,1.3128,1.3129 (Bruno Haible) 6. clisp/src ChangeLog,1.3129,1.3130 (Sam Steingold) 7. clisp/src backquote.lisp,2.17,2.18 (Sam Steingold) 8. clisp/src error.d,1.111,1.112 condition.lisp,1.38,1.39 ChangeLog,1.3130,1.3131 (Sam Steingold) 9. clisp/src condition.lisp,1.39,1.40 ChangeLog,1.3131,1.3132 (Sam Steingold) 10. clisp/src condition.lisp,1.40,1.41 ChangeLog,1.3132,1.3133 (Sam Steingold) 11. clisp/src condition.lisp,1.41,1.42 clos-genfun5.lisp,1.2,1.3 ChangeLog,1.3133,1.3134 (Sam Steingold) --__--__-- Message: 1 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/tests backquot.tst,1.13,1.14 ChangeLog,1.175,1.176 Date: Thu, 03 Jun 2004 10:24:37 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29166/tests Modified Files: backquot.tst ChangeLog Log Message: Better backquote optimizer. Index: backquot.tst =================================================================== RCS file: /cvsroot/clisp/clisp/tests/backquot.tst,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- backquot.tst 27 May 2004 11:26:30 -0000 1.13 +++ backquot.tst 3 Jun 2004 10:24:35 -0000 1.14 @@ -119,6 +119,177 @@ (array-element-type `#A((unsigned-byte 8) (3) (1 2 3))) (unsigned-byte 8) +;; Backquote macroexpansion must cons as few as possible. + +; 1 element +(macroexpand-1 '`(c1)) +'(c1) +(macroexpand-1 '`(,(f1))) +(list (f1)) +(macroexpand-1 '`(,@(f1))) +(f1) +(macroexpand-1 '`(,.(f1))) +(f1) + +; 2 elements +(macroexpand-1 '`(c1 c2)) +'(c1 c2) +(macroexpand-1 '`(,(f1) c2)) +(cons (f1) '(c2)) +(macroexpand-1 '`(,@(f1) c2)) +(append (f1) '(c2)) +(macroexpand-1 '`(,.(f1) c2)) +(nconc (f1) '(c2)) +(macroexpand-1 '`(c1 ,(f2))) +(list 'c1 (f2)) +(macroexpand-1 '`(,(f1) ,(f2))) +(list (f1) (f2)) +(macroexpand-1 '`(,@(f1) ,(f2))) +(append (f1) (list (f2))) +(macroexpand-1 '`(,.(f1) ,(f2))) +(nconc (f1) (list (f2))) +(macroexpand-1 '`(c1 ,@(f2))) +(cons 'c1 (f2)) +(macroexpand-1 '`(,(f1) ,@(f2))) +(cons (f1) (f2)) +(macroexpand-1 '`(,@(f1) ,@(f2))) +(append (f1) (f2)) +(macroexpand-1 '`(,.(f1) ,@(f2))) +(nconc (f1) (f2)) +(macroexpand-1 '`(c1 ,.(f2))) +(cons 'c1 (f2)) +(macroexpand-1 '`(,(f1) ,.(f2))) +(cons (f1) (f2)) +(macroexpand-1 '`(,@(f1) ,.(f2))) +(append (f1) (f2)) +(macroexpand-1 '`(,.(f1) ,.(f2))) +(nconc (f1) (f2)) + +; 3 elements +(macroexpand-1 '`(,@(f1) ,@(f2) ,@(f3))) +(append (f1) (f2) (f3)) +(macroexpand-1 '`(,(f1) ,@(f2) ,.(f3))) +(cons (f1) (append (f2) (f3))) +(macroexpand-1 '`(,.(f1) ,.(f2) ,@(f3))) +(nconc (f1) (f2) (f3)) +(macroexpand-1 '``(,.(f1) ,.(f2) ,.,@(f3))) +`(nconc (f1) (f2) ,@(f3)) + +; Vectors +(macroexpand-1 '`#(a b)) +#(a b) +(macroexpand-1 '`#(,(f1) ,(f2))) +(vector (f1) (f2)) +(macroexpand-1 '`#(,(f1) ,@(f2))) +(multiple-value-call #'vector (values (f1)) (values-list (f2))) +(macroexpand-1 '`#(a ,(f1) ,@(f2) c d)) +(multiple-value-call #'vector 'a (values (f1)) (values-list (f2)) 'c 'd) +(macroexpand-1 '``#(,,@(f1) ,,@(f2))) +`(vector ,@(f1) ,@(f2)) +(macroexpand-1 '``#(,,.(f1) ,,@(f2))) +`(vector ,.(f1) ,@(f2)) +(macroexpand-1 '``#(,.,.(f1) ,.,@(f2) ,@,.(f3) ,@,@(f4))) +`(multiple-value-call #'vector (values-list (nconc ,.(f1))) + (values-list (nconc ,@(f2))) + (values-list (append ,.(f3))) + (values-list (append ,@(f4)))) + +; Some extra simplifications +(macroexpand-1 '`(,@() ,@(f1))) +(f1) +(macroexpand-1 '`(,@(f1) ,@())) +(f1) +(macroexpand-1 '`(,.() ,.(f1))) +(f1) +(macroexpand-1 '`(,.(f1) ,.())) +(f1) + +;; Doubly-nested backquote: Examples taken from CLtL2 appendix 2. + +(let ((q '(r s)) + (r '(3 5)) + (s '(4 6))) + (flet ((r (x) (reduce #'* x))) + (macroexpand-1 ``(,,q)))) +(LIST (R S)) + +(let ((q '(r s)) + (r '(3 5)) + (s '(4 6))) + (flet ((r (x) (reduce #'* x))) + (macroexpand-1 ``(,@,q)))) +(R S) + +(let ((q '(r s)) + (r '(3 5)) + (s '(4 6))) + (flet ((r (x) (reduce #'* x))) + (macroexpand-1 ``(,,@q)))) +(LIST R S) + +(let ((q '(r s)) + (r '(3 5)) + (s '(4 6))) + (flet ((r (x) (reduce #'* x))) + (macroexpand-1 ``(,@,@q)))) +(APPEND R S) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,,p))) +(LIST 'FOO (UNION X Y)) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,,@q))) +(LIST 'FOO (UNION X Y) (LIST 'SQRT 9)) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,',r))) +'(FOO (UNION X Y)) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,',@s))) +'(FOO (UNION X Y)) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,@,p))) +(CONS 'FOO (UNION X Y)) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,@,@q))) +(CONS 'FOO (APPEND (UNION X Y) (LIST 'SQRT 9))) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,@',r))) +'(FOO UNION X Y) + +(let ((p '(union x y)) + (q '((union x y) (list 'sqrt 9))) + (r '(union x y)) + (s '((union x y)))) + (macroexpand-1 ``(foo ,@',@s))) +(CONS 'FOO '(UNION X Y)) + (let ((o 1)) (declare (special o)) (eval (let ((a 2) (b 3)) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/tests/ChangeLog,v retrieving revision 1.175 retrieving revision 1.176 diff -u -d -r1.175 -r1.176 --- ChangeLog 2 Jun 2004 21:32:30 -0000 1.175 +++ ChangeLog 3 Jun 2004 10:24:35 -0000 1.176 @@ -1,3 +1,7 @@ +2004-05-23 Bruno Haible <br...@cl...> + + * backquot.tst: Add many tests. + 2004-06-02 Sam Steingold <sd...@gn...> * conditions.tst: test restartable i/o errors --__--__-- Message: 2 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src clos-package.lisp,1.4,1.5 clos-slotdef1.lisp,1.3,1.4 ChangeLog,1.3126,1.3127 Date: Thu, 03 Jun 2004 10:28:44 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30151/src Modified Files: clos-package.lisp clos-slotdef1.lisp ChangeLog Log Message: Improved initialization argument checking. Index: clos-slotdef1.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/clos-slotdef1.lisp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- clos-slotdef1.lisp 2 Jun 2004 10:27:48 -0000 1.3 +++ clos-slotdef1.lisp 3 Jun 2004 10:28:41 -0000 1.4 @@ -169,19 +169,19 @@ (error (TEXT "(~S ~S): The slot name should be a symbol, not ~S") 'initialize-instance 'slot-definition name)) (unless (eq initform-p initfunction-p) - (error (TEXT "(~S ~S): The ~S and ~S arguments can only be specified together.") - 'initialize-instance 'slot-definition ':initform ':initfunction)) + (error (TEXT "(~S ~S) for slot ~S: The ~S and ~S arguments can only be specified together.") + 'initialize-instance 'slot-definition name ':initform ':initfunction)) (when initfunction-p (when initfunction ; FIXME: defstruct.lisp passes :initfunction nil (unless (functionp initfunction) - (error (TEXT "(~S ~S): The ~S argument should be a function, not ~S") - 'initialize-instance 'slot-definition ':initfunction initfunction)))) - (unless (and (listp initargs) (every #'symbolp initargs)) - (error (TEXT "(~S ~S): The ~S argument should be a list of symbols, not ~S") - 'initialize-instance 'slot-definition ':initargs initargs)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be a function, not ~S") + 'initialize-instance 'slot-definition name ':initfunction initfunction)))) + (unless (and (proper-list-p initargs) (every #'symbolp initargs)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be a proper list of symbols, not ~S") + 'initialize-instance 'slot-definition name ':initargs initargs)) (unless (or (null documentation) (stringp documentation)) - (error (TEXT "(~S ~S): The ~S argument should be a string or NIL, not ~S") - 'initialize-instance 'slot-definition :documentation documentation)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be a string or NIL, not ~S") + 'initialize-instance 'slot-definition name :documentation documentation)) (unless inheritable-initer (setq inheritable-initer (make-inheritable-slot-definition-initer initform initfunction))) @@ -204,14 +204,14 @@ &allow-other-keys) (apply #'initialize-instance-<slot-definition> slotdef args) (unless (symbolp allocation) - (error (TEXT "(~S ~S): The ~S argument should be a symbol, not ~S") - 'initialize-instance 'slot-definition ':allocation allocation)) - (unless (and (listp readers) (every #'sys::function-name-p readers)) - (error (TEXT "(~S ~S): The ~S argument should be a list of function names, not ~S") - 'initialize-instance 'slot-definition ':readers readers)) - (unless (and (listp writers) (every #'sys::function-name-p writers)) - (error (TEXT "(~S ~S): The ~S argument should be a list of function names, not ~S") - 'initialize-instance 'slot-definition ':writers writers)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be a symbol, not ~S") + 'initialize-instance 'slot-definition (slot-definition-name slotdef) ':allocation allocation)) + (unless (and (proper-list-p readers) (every #'sys::function-name-p readers)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be a proper list of function names, not ~S") + 'initialize-instance 'slot-definition (slot-definition-name slotdef) ':readers readers)) + (unless (and (proper-list-p writers) (every #'sys::function-name-p writers)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be a proper list of function names, not ~S") + 'initialize-instance 'slot-definition (slot-definition-name slotdef) ':writers writers)) (setf (slot-definition-readers slotdef) readers) (setf (slot-definition-writers slotdef) writers) slotdef) @@ -223,8 +223,8 @@ &allow-other-keys) (apply #'initialize-instance-<slot-definition> slotdef args) (unless (or (eq allocation ':instance) (class-p allocation)) - (error (TEXT "(~S ~S): The ~S argument should be ~S or a class, not ~S") - 'initialize-instance 'slot-definition ':allocation ':instance allocation)) + (error (TEXT "(~S ~S) for slot ~S: The ~S argument should be ~S or a class, not ~S") + 'initialize-instance 'slot-definition (slot-definition-name slotdef) ':allocation ':instance allocation)) (setf (slot-definition-location slotdef) location) slotdef) Index: clos-package.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/clos-package.lisp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- clos-package.lisp 10 May 2004 09:45:05 -0000 1.4 +++ clos-package.lisp 3 Jun 2004 10:28:41 -0000 1.5 @@ -24,7 +24,7 @@ (import 'compiler::%optimize-function-lambda) (defpackage "CLOS" - (:import-from "EXT" ext:mapcap) + (:import-from "EXT" ext:mapcap ext:proper-list-p) (:import-from "SYSTEM" ;; Import: sys::text ; for error messages (i18n.d) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3126 retrieving revision 1.3127 diff -u -d -r1.3126 -r1.3127 --- ChangeLog 3 Jun 2004 10:24:35 -0000 1.3126 +++ ChangeLog 3 Jun 2004 10:28:42 -0000 1.3127 @@ -1,3 +1,11 @@ +2004-05-29 Bruno Haible <br...@cl...> + + * clos-package.lisp: Import ext:proper-list-p. + * clos-slotdef1.lisp (initialize-instance-<slot-definition>): Use it. + Improve error messages. + (initialize-instance-<direct-slot-definition>): Likewise. + (initialize-instance-<effective-slot-definition>): Likewise. + 2004-05-23 Bruno Haible <br...@cl...> Many improvements to BACKQUOTE. --__--__-- Message: 3 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src HISTORY,1.13,1.14 NEWS,1.145,1.146 Date: Thu, 03 Jun 2004 10:41:45 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32488 Modified Files: HISTORY NEWS Log Message: Import news from the patch release branch. Index: NEWS =================================================================== RCS file: /cvsroot/clisp/clisp/src/NEWS,v retrieving revision 1.145 retrieving revision 1.146 diff -u -d -r1.145 -r1.146 --- NEWS 1 Jun 2004 16:06:30 -0000 1.145 +++ NEWS 3 Jun 2004 10:41:43 -0000 1.146 @@ -138,6 +138,16 @@ * Weak hash tables now also work on platforms without mmap(). +2.33.2 (2004-06-02) +=================== + +Portability +----------- + +* Support for the Linux/x86 distributions called Redhat Fedora and Redhat + Enterprise Linux. + + 2.33.1 (2004-05-22) =================== Index: HISTORY =================================================================== RCS file: /cvsroot/clisp/clisp/src/HISTORY,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- HISTORY 17 Mar 2004 19:54:50 -0000 1.13 +++ HISTORY 3 Jun 2004 10:41:43 -0000 1.14 @@ -1,5 +1,9 @@ Version Date New features +2.33.2 2004-06-02 portability: RedHat Fedora Linux/x86 + +2.33.1 2004-05-22 bug-fixes, portability: gcc 3.4 + 2.33 2004-03-17 CUSTOM:*APROPOS-MATCHER*, EXT:MOD-EXPT, EXT:ARGV, GRAY:STREAM-POSITION, DEFINE-METHOD-COMBINATION, portability: removed Acorn/Amiga/OS2, fixed UNIXes --__--__-- Message: 4 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.3127,1.3128 Date: Thu, 03 Jun 2004 13:56:45 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5785/src Modified Files: ChangeLog Log Message: formatting Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3127 retrieving revision 1.3128 diff -u -d -r1.3127 -r1.3128 --- ChangeLog 3 Jun 2004 10:28:42 -0000 1.3127 +++ ChangeLog 3 Jun 2004 13:56:42 -0000 1.3128 @@ -22,9 +22,9 @@ (bq-optimize-for-list): Remove function. (bq-optimize-for-vector): Take the optimized list as arguments. Several fixes. - (bq-optimize-append, bq-optimize-list*, bq-optimize-list, bq-eval, - bq-constant-p, eval-self-p, maybe-quote, maybe-unquote, - quoted-bq-operator-p, bq-reduce-nesting): Remove functions. + (bq-optimize-append, bq-optimize-list*, bq-optimize-list, bq-eval) + (bq-constant-p, eval-self-p, maybe-quote, maybe-unquote) + (quoted-bq-operator-p, bq-reduce-nesting): Remove functions. (backquote-cons): Call bq-cons. (backquote-append): Call bq-append. @@ -33,10 +33,10 @@ * lispbibl.d (hash_lookup_builtin, hash_lookup_builtin_with_rehash): Remove Nptr_ argument. * hashtabl.d (lookup_Pseudofun): Remove Nptr_ argument. - (hash_lookup_builtin, hash_lookup_builtin_with_rehash, - hash_lookup_user, hash_lookup): Likewise. - (MAKE-HASH-TABLE, gethash, GETHASH, SYSTEM::PUTHASH, REMHASH, - CLOS::CLASS-GETHASH): Update. + (hash_lookup_builtin, hash_lookup_builtin_with_rehash) + (hash_lookup_user, hash_lookup): Likewise. + (MAKE-HASH-TABLE, gethash, GETHASH, SYSTEM::PUTHASH, REMHASH) + (CLOS::CLASS-GETHASH): Update. * pseudofun.d: Update. 2004-06-02 Sam Steingold <sd...@gn...> --__--__-- Message: 5 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src backquote.lisp,2.16,2.17 ChangeLog,1.3128,1.3129 Date: Thu, 03 Jun 2004 15:24:11 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25865 Modified Files: backquote.lisp ChangeLog Log Message: Rename some debugging variables. Index: backquote.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/backquote.lisp,v retrieving revision 2.16 retrieving revision 2.17 diff -u -d -r2.16 -r2.17 --- backquote.lisp 3 Jun 2004 10:24:33 -0000 2.16 +++ backquote.lisp 3 Jun 2004 15:24:02 -0000 2.17 @@ -244,16 +244,16 @@ ;;; instead of (LIST (foo) (bar)) ;;; Backquote expansion optimizers are enabled by default, but can be turned ;;; off for debugging. -(proclaim '(special *backquote-optimize1*)) -(setq *backquote-optimize1* t) -(proclaim '(special *backquote-optimize2*)) -(setq *backquote-optimize2* t) -(proclaim '(special *backquote-optimize3*)) -(setq *backquote-optimize3* t) -(proclaim '(special *backquote-optimize4*)) -(setq *backquote-optimize4* t) -(proclaim '(special *backquote-optimize5*)) -(setq *backquote-optimize5* t) +(proclaim '(special *backquote-optimize-cons*)) +(setq *backquote-optimize-cons* t) +(proclaim '(special *backquote-optimize-list*)) +(setq *backquote-optimize-list* t) +(proclaim '(special *backquote-optimize-append*)) +(setq *backquote-optimize-append* t) +(proclaim '(special *backquote-optimize-nconc*)) +(setq *backquote-optimize-nconc* t) +(proclaim '(special *backquote-optimize-vector*)) +(setq *backquote-optimize-vector* t) ;;; This simplifes CONS, LIST, APPEND, NCONC calls that are emitted by the ;;; backquote expander. We are *not* allowed to collapse CONS or LIST calls @@ -288,7 +288,7 @@ ;;; given forms. Assumes that form2 is not splicing. (defun bq-cons (form1 form2) (let ((operator (if (bq-splicing-p form1) 'LIST* 'CONS))) - (if *backquote-optimize1* + (if *backquote-optimize-cons* ; Simplify `(CONS ,form1 ,form2) or `(LIST* ,form1... ,form2): (cond #| ((and (not (bq-splicing-p form1)) (constantp form1) @@ -330,7 +330,7 @@ ;;; BQ-LIST returns a form that returns a list of the result of the given form. (defun bq-list (form1) ; Equivalent to (bq-cons form1 'NIL). - (if *backquote-optimize2* + (if *backquote-optimize-list* (cond ((and (not (bq-splicing-p form1)) (constantp form1)) ; Test case: `(c1) (list 'QUOTE (list (eval form1)))) @@ -340,7 +340,7 @@ ;;; BQ-APPEND returns a form that returns the nondestructive concatenation of ;;; the results of the given forms. (defun bq-append (form1 form2) - (if *backquote-optimize3* + (if *backquote-optimize-append* ; Simplify `(APPEND ,form1 ,form2): (cond ((null form1) ; (APPEND NIL form2) -> (APPEND form2) -> form2 @@ -381,7 +381,7 @@ ;;; BQ-NCONC returns a form that returns the destructive concatenation of the ;;; results of the given forms. (defun bq-nconc (form1 form2) - (if *backquote-optimize4* + (if *backquote-optimize-nconc* ; Simplify `(NCONC ,form1 ,form2): (cond ((null form1) ; (NCONC NIL form2) -> (NCONC form2) -> form2 @@ -452,7 +452,7 @@ ;;; (nsplice ...) -> (values-list (nconc ...)) ;;; other -> (values-list other) (defun bq-optimize-for-vector (unoptimized optimized) - (if *backquote-optimize5* + (if *backquote-optimize-vector* (cond ((or (eq optimized 'NIL) (and (consp optimized) (eq (first optimized) 'QUOTE) (consp (cdr optimized)) (null (cddr optimized)) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3128 retrieving revision 1.3129 diff -u -d -r1.3128 -r1.3129 --- ChangeLog 3 Jun 2004 13:56:42 -0000 1.3128 +++ ChangeLog 3 Jun 2004 15:24:02 -0000 1.3129 @@ -14,7 +14,7 @@ (bq-expand): Don't test *backquote-optimize* any more. Call bq-append-multiple. (bq-transform): Call bq-list. - (*backquote-optimize[12345]*): New variables, replacing + (*backquote-optimize-...*): New variables, replacing *backquote-optimize*. (bq-splicing-p, bq-non-splicing): New functions. (bq-cons, bq-list, bq-append, bq-nconc): New functions. --__--__-- Message: 6 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.3129,1.3130 Date: Thu, 03 Jun 2004 16:27:36 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8789/src Modified Files: ChangeLog Log Message: formatting Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3129 retrieving revision 1.3130 diff -u -d -r1.3129 -r1.3130 --- ChangeLog 3 Jun 2004 15:24:02 -0000 1.3129 +++ ChangeLog 3 Jun 2004 16:27:32 -0000 1.3130 @@ -13042,16 +13042,16 @@ * french.lisp: spell FRANCAIS with a cedilla * makemake.in (LPARTS): include french.lisp only with_unicode * international.lisp: export ENGLISH here - * affi1.lisp, amigasock.lisp, backquote.lisp, beossock.lisp - * cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp - * cfgunix.lisp, cfgwin32.lisp, clos.lisp, cmacros.lisp, - * compiler.lisp, condition.lisp, defmacro.lisp, defs1.lisp - * defs2.lisp, defstruct.lisp, describe.lisp, dirkey.lisp - * disassem.lisp, dribble.lisp, edit.lisp, floatprint.lisp - * foreign1.lisp, format.lisp, init.lisp, international.lisp - * loop.lisp, macros1.lisp, macros2.lisp, macros3.lisp - * places.lisp, pprint.lisp, query.lisp, reploop.lisp, rexx1.lisp, - * room.lisp, runprog.lisp, screen.lisp, trace.lisp, type.lisp, + * affi1.lisp, amigasock.lisp, backquote.lisp, beossock.lisp: + * cfgacorn.lisp, cfgamiga.lisp, cfgdos.lisp, cfgsunux.lisp: + * cfgunix.lisp, cfgwin32.lisp, clos.lisp, cmacros.lisp: + * compiler.lisp, condition.lisp, defmacro.lisp, defs1.lisp: + * defs2.lisp, defstruct.lisp, describe.lisp, dirkey.lisp: + * disassem.lisp, dribble.lisp, edit.lisp, floatprint.lisp: + * foreign1.lisp, format.lisp, init.lisp, international.lisp: + * loop.lisp, macros1.lisp, macros2.lisp, macros3.lisp: + * places.lisp, pprint.lisp, query.lisp, reploop.lisp, rexx1.lisp: + * room.lisp, runprog.lisp, screen.lisp, trace.lisp, type.lisp: * xcharin.lisp: use TEXT instead of ENGLISH 2002-02-22 Sam Steingold <sd...@gn...> --__--__-- Message: 7 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src backquote.lisp,2.17,2.18 Date: Thu, 03 Jun 2004 16:28:21 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8971/src Modified Files: backquote.lisp Log Message: mention myself Index: backquote.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/backquote.lisp,v retrieving revision 2.17 retrieving revision 2.18 diff -u -d -r2.17 -r2.18 --- backquote.lisp 3 Jun 2004 15:24:02 -0000 2.17 +++ backquote.lisp 3 Jun 2004 16:28:19 -0000 2.18 @@ -14,6 +14,7 @@ ;;; Parts of this file ;;; Copyright (C) 1988, 1989, 1992-2004 Michael Stoll, Bruno Haible +;;; Copyright (C) 2002-2003 Sam Steingold ;;; This is Free Software, covered by the GNU GPL. (in-package "SYSTEM") --__--__-- Message: 8 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src error.d,1.111,1.112 condition.lisp,1.38,1.39 ChangeLog,1.3130,1.3131 Date: Thu, 03 Jun 2004 19:21:45 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16961/src Modified Files: error.d condition.lisp ChangeLog Log Message: (check-value): use RETRY restart instead of CONTINUE (retry): new function, invokes RETRY restart (similar to CONTINUE, but is not triggered by EOF/Ctr-D) Index: error.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/error.d,v retrieving revision 1.111 retrieving revision 1.112 diff -u -d -r1.111 -r1.112 --- error.d 2 Jun 2004 21:32:34 -0000 1.111 +++ error.d 3 Jun 2004 19:21:41 -0000 1.112 @@ -1260,7 +1260,7 @@ store_p = eq(value2,T); /* this is the only place where check_value()'s second value is checked for something other than non-NIL */ - if (eq(value2,Fixnum_0)) { /* CONTINUE restart */ + if (eq(value2,Fixnum_0)) { /* RETRY restart */ funname = STACK_0; name = (symbolp(funname) ? funname : get(Car(Cdr(funname)),S(setf_function))); Index: condition.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/condition.lisp,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- condition.lisp 17 May 2004 18:37:12 -0000 1.38 +++ condition.lisp 3 Jun 2004 19:21:41 -0000 1.39 @@ -35,7 +35,7 @@ (in-package "EXT") (export '(muffle-cerrors appease-cerrors exit-on-error with-restarts os-error - simple-condition-format-string simple-charset-type-error) + simple-condition-format-string simple-charset-type-error retry) "EXT") (in-package "CUSTOM") (common-lisp:export '(*break-on-warnings*) "CUSTOM") @@ -1032,6 +1032,9 @@ (defun use-value (value &optional condition) (invoke-restart-condition-if-exists 'USE-VALUE condition value)) +;; like CONTINUE but is not triggered by ^D +(defun retry (&optional condition) + (invoke-restart-condition-if-exists 'RETRY condition)) ;;; 29.4.2. Assertions @@ -1175,7 +1178,7 @@ (lambda (val) (return-from check-value (values val nil))))) (when (and (consp place) (eq 'fdefinition (car place))) (list (make-restart ; for check_fdefinition() only! - :name 'CONTINUE + :name 'RETRY :report (lambda (stream) (format stream (report-no-new-value-string))) :interactive #'assert-restart-no-prompts Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3130 retrieving revision 1.3131 diff -u -d -r1.3130 -r1.3131 --- ChangeLog 3 Jun 2004 16:27:32 -0000 1.3130 +++ ChangeLog 3 Jun 2004 19:21:41 -0000 1.3131 @@ -1,3 +1,9 @@ +2004-06-03 Sam Steingold <sd...@gn...> + + * condition.lisp (check-value): use RETRY restart instead of CONTINUE + (retry): new function, invokes RETRY restart (similar to CONTINUE, + but is not triggered by EOF/Ctr-D) + 2004-05-29 Bruno Haible <br...@cl...> * clos-package.lisp: Import ext:proper-list-p. --__--__-- Message: 9 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src condition.lisp,1.39,1.40 ChangeLog,1.3131,1.3132 Date: Thu, 03 Jun 2004 19:38:15 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21654/src Modified Files: condition.lisp ChangeLog Log Message: (check-value): associate the new restarts with the condition Index: condition.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/condition.lisp,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- condition.lisp 3 Jun 2004 19:21:41 -0000 1.39 +++ condition.lisp 3 Jun 2004 19:38:13 -0000 1.40 @@ -1165,7 +1165,7 @@ (defun check-value (place condition) ;; 2 values: new-value, store-p (0 for check_fdefinition()) - (let ((*active-restarts* + (let ((restarts (nconc (list (make-restart :name 'USE-VALUE @@ -1193,9 +1193,11 @@ (format stream (report-one-new-value-string) place)) :interactive (lambda () (prompt-for-new-value place)) :invoke-function - (lambda (val) (return-from check-value (values val t)))))) - *active-restarts*))) - (error condition))) + (lambda (val) + (return-from check-value (values val t))))))))) + (with-condition-restarts condition restarts + (let ((*active-restarts* (nconc restarts *active-restarts*))) + (error condition))))) ;;; 29.4.3. Exhaustive Case Analysis Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3131 retrieving revision 1.3132 diff -u -d -r1.3131 -r1.3132 --- ChangeLog 3 Jun 2004 19:21:41 -0000 1.3131 +++ ChangeLog 3 Jun 2004 19:38:13 -0000 1.3132 @@ -3,6 +3,7 @@ * condition.lisp (check-value): use RETRY restart instead of CONTINUE (retry): new function, invokes RETRY restart (similar to CONTINUE, but is not triggered by EOF/Ctr-D) + (check-value): associate the new restarts with the condition 2004-05-29 Bruno Haible <br...@cl...> --__--__-- Message: 10 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src condition.lisp,1.40,1.41 ChangeLog,1.3132,1.3133 Date: Thu, 03 Jun 2004 21:07:23 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1708/src Modified Files: condition.lisp ChangeLog Log Message: (correctable-error): associate the new restarts with the condition Index: condition.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/condition.lisp,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- condition.lisp 3 Jun 2004 19:38:13 -0000 1.40 +++ condition.lisp 3 Jun 2004 21:07:19 -0000 1.41 @@ -1140,28 +1140,28 @@ ,tag2)))) (defun correctable-error (options condition) - (let ((*active-restarts* - (nconc - (mapcar (lambda (option) - (destructuring-bind (name report . return) option - (make-restart - :name (etypecase name - (string (intern name *keyword-package*)) - (symbol name)) - :report (lambda (s) (princ report s)) - :interactive (if (consp return) - (lambda () - (apply (car return) (cdr return))) - #'default-restart-interactive) - :invoke-function - (if (consp return) - (lambda (value) ; get `value' from :INTERACTIVE - (return-from correctable-error value)) - (lambda () - (return-from correctable-error return)))))) - options) - *active-restarts*))) - (error condition))) + (let ((restarts + (mapcar (lambda (option) + (destructuring-bind (name report . return) option + (make-restart + :name (etypecase name + (string (intern name *keyword-package*)) + (symbol name)) + :report (lambda (s) (princ report s)) + :interactive (if (consp return) + (lambda () + (apply (car return) (cdr return))) + #'default-restart-interactive) + :invoke-function + (if (consp return) + (lambda (value) ; get `value' from :INTERACTIVE + (return-from correctable-error value)) + (lambda () + (return-from correctable-error return)))))) + options))) + (with-condition-restarts condition restarts + (let ((*active-restarts* (nconc restarts *active-restarts*))) + (error condition))))) (defun check-value (place condition) ;; 2 values: new-value, store-p (0 for check_fdefinition()) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3132 retrieving revision 1.3133 diff -u -d -r1.3132 -r1.3133 --- ChangeLog 3 Jun 2004 19:38:13 -0000 1.3132 +++ ChangeLog 3 Jun 2004 21:07:19 -0000 1.3133 @@ -3,7 +3,8 @@ * condition.lisp (check-value): use RETRY restart instead of CONTINUE (retry): new function, invokes RETRY restart (similar to CONTINUE, but is not triggered by EOF/Ctr-D) - (check-value): associate the new restarts with the condition + (check-value, correctable-error): associate the new restarts with + the condition 2004-05-29 Bruno Haible <br...@cl...> --__--__-- Message: 11 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src condition.lisp,1.41,1.42 clos-genfun5.lisp,1.2,1.3 ChangeLog,1.3133,1.3134 Date: Thu, 03 Jun 2004 21:16:49 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4188/src Modified Files: condition.lisp clos-genfun5.lisp ChangeLog Log Message: no-applicable-method, no-primary-method, no-next-method are now recoverable Index: clos-genfun5.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/clos-genfun5.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- clos-genfun5.lisp 24 May 2004 11:21:01 -0000 1.2 +++ clos-genfun5.lisp 3 Jun 2004 21:16:47 -0000 1.3 @@ -33,17 +33,19 @@ (let* ((reqanz (sig-req-num (gf-signature gf))) (methods (gf-methods gf)) (dispatching-arg (single-dispatching-arg reqanz methods))) - (if dispatching-arg - (error-of-type 'method-call-type-error - :datum (nth dispatching-arg args) - :expected-type (dispatching-arg-type dispatching-arg methods) - :generic-function gf :argument-list args - (TEXT "~S: When calling ~S with arguments ~S, no method is applicable.") - 'no-applicable-method gf args) - (error-of-type 'method-call-error - :generic-function gf :argument-list args - (TEXT "~S: When calling ~S with arguments ~S, no method is applicable.") - 'no-applicable-method gf args))))) + (sys::retry-function-call + (if dispatching-arg + (make-condition 'method-call-type-error + :datum (nth dispatching-arg args) + :expected-type (dispatching-arg-type dispatching-arg methods) + :generic-function gf :argument-list args + :format-control (TEXT "~S: When calling ~S with arguments ~S, no method is applicable.") + :format-arguments (list 'no-applicable-method gf args)) + (make-condition 'method-call-error + :generic-function gf :argument-list args + :format-control (TEXT "~S: When calling ~S with arguments ~S, no method is applicable.") + :format-arguments (list 'no-applicable-method gf args))) + gf args)))) (defgeneric no-primary-method (gf &rest args) (:method ((gf t) &rest args) @@ -51,37 +53,41 @@ (methods (remove-if-not #'null (gf-methods gf) :key #'std-method-qualifiers)) (dispatching-arg (single-dispatching-arg reqanz methods))) - (if dispatching-arg - (error-of-type 'method-call-type-error - :datum (nth dispatching-arg args) - :expected-type (dispatching-arg-type dispatching-arg methods) - :generic-function gf :argument-list args - (TEXT "~S: When calling ~S with arguments ~S, no primary method is applicable.") - 'no-primary-method gf args) - (error-of-type 'method-call-error - :generic-function gf :argument-list args - (TEXT "~S: When calling ~S with arguments ~S, no primary method is applicable.") - 'no-primary-method gf args))))) + (sys::retry-function-call + (if dispatching-arg + (make-condition 'method-call-type-error + :datum (nth dispatching-arg args) + :expected-type (dispatching-arg-type dispatching-arg methods) + :generic-function gf :argument-list args + :format-control (TEXT "~S: When calling ~S with arguments ~S, no primary method is applicable.") + :format-arguments (list 'no-primary-method gf args)) + (make-condition 'method-call-error + :generic-function gf :argument-list args + :format-control (TEXT "~S: When calling ~S with arguments ~S, no primary method is applicable.") + :format-arguments (list 'no-primary-method gf args))) + gf args)))) (defun %no-next-method (method &rest args) (apply #'no-next-method (std-method-gf method) method args)) (defgeneric no-next-method (gf method &rest args) - (:method ((gf standard-generic-function) (method standard-method) &rest args) + (:method ((gf standard-generic-function) (method standard-method) &rest args + &aux (cont-mesg (format nil (TEXT "ignore ~S") 'CALL-NEXT-METHOD))) (if (let ((method-combo (gf-method-combination gf))) (funcall (method-combination-call-next-method-allowed method-combo) gf method-combo method)) - (error-of-type 'method-call-error + (cerror cont-mesg 'method-call-error :generic-function gf :method method :argument-list args - (TEXT "~S: When calling ~S with arguments ~S, there is no next method after ~S, and ~S was called.") - 'no-next-method gf args method '(call-next-method)) + :format-control (TEXT "~S: When calling ~S with arguments ~S, there is no next method after ~S, and ~S was called.") + :format-arguments (list 'no-next-method gf args method + '(call-next-method))) (let ((qualifiers (std-method-qualifiers method))) (if qualifiers - (error-of-type 'program-error - (TEXT "~S: ~S is invalid within ~{~S~^ ~} methods") - gf 'CALL-NEXT-METHOD qualifiers) - (error-of-type 'program-error - (TEXT "~S: ~S is invalid within primary methods") - gf 'CALL-NEXT-METHOD)))))) + (cerror cont-mesg 'program-error + :format-control (TEXT "~S: ~S is invalid within ~{~S~^ ~} methods") + :format-arguments (list gf 'CALL-NEXT-METHOD qualifiers)) + (cerror cont-mesg 'program-error + :format-control (TEXT "~S: ~S is invalid within primary methods") + :format-arguments (list gf 'CALL-NEXT-METHOD))))))) (defgeneric find-method (gf qualifiers specializers &optional errorp) (:method ((gf standard-generic-function) qualifiers specializers &optional (errorp t)) Index: condition.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/condition.lisp,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- condition.lisp 3 Jun 2004 21:07:19 -0000 1.41 +++ condition.lisp 3 Jun 2004 21:16:47 -0000 1.42 @@ -1199,6 +1199,23 @@ (let ((*active-restarts* (nconc restarts *active-restarts*))) (error condition))))) +(defun retry-function-call (condition function arguments) + (with-restarts ((retry + :report (lambda (out) + (format out (TEXT "try calling ~S again") + (function-name function))) + :interactive assert-restart-no-prompts + () (return-from retry-function-call + (apply function arguments))) + (return + :report (lambda (out) + (format out (TEXT "specify return values"))) + :interactive (lambda () (prompt-for-new-value 'VALUES)) + (l) (return-from retry-function-call (values-list l)))) + (with-condition-restarts condition + (list (find-restart 'RETRY) (find-restart 'RETURN)) + (error condition)))) + ;;; 29.4.3. Exhaustive Case Analysis ;; These macros supersede the corresponding ones from macros2.lisp. Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3133 retrieving revision 1.3134 diff -u -d -r1.3133 -r1.3134 --- ChangeLog 3 Jun 2004 21:07:19 -0000 1.3133 +++ ChangeLog 3 Jun 2004 21:16:47 -0000 1.3134 @@ -1,5 +1,12 @@ 2004-06-03 Sam Steingold <sd...@gn...> + * condition.lisp (retry-function-call): new function + * clos-genfun5.lisp (no-applicable-method, no-primary-method): + use RETRY-FUNCTION-CALL to make recoverable + (no-next-method): use CERROR to make recoverable + +2004-06-03 Sam Steingold <sd...@gn...> + * condition.lisp (check-value): use RETRY restart instead of CONTINUE (retry): new function, invokes RETRY restart (similar to CONTINUE, but is not triggered by EOF/Ctr-D) --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |