[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
the array type mess....
I believe that an implementation is not allowed to upgrade all array types
arbitrarily; at least, on p. 34, it says that the types simple-vector,
simple-string, and simple-bit-vector are disjoint.
I'm also unhappy with the current situation, but my solution would be
to do away with the array upgrading entirely. In other words, I'd like
to see (typep (make-array n :element-type foo) foo) be true in all
implementations, for all types foo. If an implementation does not have
a specialized representation for (array (signed-byte 5)), it could
still internally upgrade it to some other convenient representation,
but it should keep the original element-type around (stored in the
array header) so type discrimination will still work.
Also, the last type I asked the question, there seemed to be general
agreement that SUBTYPEP should reflect the actual type hierarchy in the
implementation. In some implementations, for example, FLOAT might be
a subtype of SHORT-FLOAT.