From: Dieter K. <cra...@us...> - 2009-01-03 12:25:32
|
Update of /cvsroot/maxima/maxima/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv20689 Modified Files: mlisp.lisp Log Message: Evaluating the list of dimension for fast arrays. Applying a fix suggested by Stavros Macrakis. Now fast arrays and normal arrays evaluate the list of dimensions. This allows declarations like array(a,3+3) for both types of arrays. Tested with CLISP 2.44 and GCL 2.6.8. No problems with the testsuite. Index: mlisp.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/mlisp.lisp,v retrieving revision 1.71 retrieving revision 1.72 diff -u -d -r1.71 -r1.72 --- mlisp.lisp 12 Oct 2008 18:03:33 -0000 1.71 +++ mlisp.lisp 3 Jan 2009 12:25:24 -0000 1.72 @@ -1652,7 +1652,12 @@ (defmspec $array (x) (setq x (cdr x)) (cond ($use_fast_arrays - (mset (car x) (apply '$make_array '$any (mapcar #'1+ (cdr x))))) + (mset (car x) + (apply '$make_array '$any + (mapcar #'(lambda (dim) + ;; let make_array catch bad vals + (add 1 (meval dim))) + (cdr x))))) ((symbolp (car x)) (let ((compp (assoc (cadr x) '(($complete . t) ($integer . fixnum) ($fixnum . fixnum) ($float . flonum) ($flonum . flonum))))) |