matrix implementation, was: patch for $addrow needed?



Hello Stavros,

> As I've said before, Maxima semantics are a mess in this area as in
> many others....  Beyond the above issues, Maxima also provides arrays,
> with different semantics again (for example, they don't support row
> extraction).

I'm quite optimistic that we can clean up messy stuff
in Maxima. We have a lot of talented developers and
there are a lot of interested outsiders.

There are some simple things we can do right away.
Specifically addrow should copy its input data.
There may be a couple of other functions which can be
fixed in a similar way.

> I am not sure what the right answer is, but I hope I've shown that
> "just" making everything immutable, or "just" using deep value copies
> rather than reference

I haven't advocated immutable objects, and I don't
think deep copy implies immutable, so I don't understand
why you're arguing against immutable objects.

As an implementation detail, I would certainly want to
optimize copy semantics so that the copying happens only
when needed. This addresses efficiency problems
to some extent.

> are no better than the status quo.

I beg your pardon, but I don't think this has been demonstrated.

All the best,
Robert