[Openmcl-devel] BUG: 2D arrays broken on AMD64

Gary Byers gb at clozure.com
Sun Apr 15 19:25:46 PDT 2007


Thanks; that should be fixed in CVS in the next few minutes.  (The cron
job that propagates changes from SVN to CVS runs at 10 minutes past each
hour, and sometimes takes a few minutes to run.)

On Sun, 15 Apr 2007, Eric Marsden wrote:

> Hi,
>
> The following test from cl-bench triggers the assertion on OpenMCL
> 1.1-pre-070408 (LinuxX8664) built from CVS. This used to work.

I think that the bug had been there (on PPC too) for a while, but
another bug fixed in 070408 was keeping the (SETF (AREF ...) ...)
from getting open-coded.  When it was, a live register got clobbered
in some cases.  (SETF (AREF ...) ...) of a 3 dimensional array seemed
to have the same problem in the same cases.

>
>
> (defun bench-2d-arrays (&optional (size 2000) (runs 10))
>  (declare (fixnum size))
>  (let ((ones (make-array (list size size) :element-type '(integer 0 1000) :initial-element 1))
>        (twos (make-array (list size size) :element-type '(integer 0 1000) :initial-element 2))
>        (threes (make-array (list size size) :element-type '(integer 0 2000))))
>    (dotimes (runs runs)
>      (dotimes (i size)
>        (dotimes (j size)
>          (setf (aref threes i j)
>                (+ (aref ones i j) (aref twos i j)))))
>      (assert (eql 3 (aref threes 3 3)))))
>  (values))
>
> -- 
> Eric Marsden
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list