Considering that "fast arrays" (native Lisp hash tables) are, for most
implementations, so far as I know, not much faster than Maxima hash
tables, and furthermore that the two kinds cannot be equivalent, because
Lisp hash tables cannot have Maxima's equality test, I wonder if we
shouldn't just git rid of fast arrays.
The only interesting thing about fast arrays is that they are in the
value slot of a symbol. To get equivalent functionality with Maxima's
hash tables, we would have to figure out a scheme for putting a Maxima
hash table in the value slot. It wouldn't work because at present the
thing that gets wedged into symbol property is a Lisp array; in order to
distinguish these would-be Maxima hash tables in the value slot, they
would have to be something else. The first thing that comes to mind is
something like ((MHASH) #<Lisp array goes here>).
There's no real requirement that Maxima allows hash tables in the value
slot, but Maxima allows functions and arrays in the value slot, not to
mention that at present it allows hash tables in the value slot too.
Comments?
best
Robert Dodier