fabrizio.caruso at math.univ-rennes1.fr wrote:
> Hi!
>
> When I compile:
> foo(x) := block([r], r : make_array('fixnum,2), r[0]:x,r[1]:x+1, return(r));
> or
> foo(x) := block([r:make_array('fixnum,2)], r[0]:x,r[1]:x+1, return(r));
>
> foo stops working and gives the following error message:
>
This bug is caused by essentially the same bug that makes your previous
compiled array reference example fail.
In src/trans2.lisp, you can add a new clause like so to make it work:
(defun maset1 (val ar &rest inds &aux )
...
(cond
((typep ar 'cl:array) ; <--- new stuff
(setf (apply #'aref ar inds) val))
((one-of-types .type. (make-array 3))
...)))
Ray