On 1/16/07, Barton Willis <willisb at unk.edu> wrote:
> Given a CL array as an argument, many Maxima functions misbehave:
>
> (%i2) f : make_array('any,3);
>
> (%i4) sign(f);
> Maxima encountered a Lisp error:
>
> (%i5) is(equal(f,0));
> Maxima encountered a Lisp error:
>
> Internally, the functions mop and margs also have problems with CL arrays
> as arguments.
>
> Question: How hard should we work to expunge these bugs? Or should
> the use of CL arrays in Maxima be completely re-examined?
I think I'd prefer to make Lisp arrays invisible from the user's point
of view. I'd like to rework lists and matrices to use arrays for
storage, but without exposing the underlying array.
Of course, the user would still be free to call Lisp functions to
allocate arrays, but then it becomes their own problem; Maxima
wouldn't be obligated to handle arrays gracefully, any more than
any other Lisp-only data type.
So I am inclined to say let's not fix the bugs mentioned above.
For what it's worth,
Robert