views:

98

answers:

1
+2  Q: 

Array upgrading

If I understand Section 15.1.2.1 of the Common Lisp standard correctly, it is perfectly legal for (upgraded-array-element-type '(unsigned-byte 8)) to be '(unsigned-byte 16), or even t. My question is therefore about the actual behavior of implementations.

Are there any implementations in use today where '(unsigned-byte 8) or '(unsigned-byte 16) are upgraded? In other words, where the following is false:

(and (subtypep (upgraded-array-element-type '(unsigned-byte 8)) '(unsigned-byte 8))
     (subtypep (upgraded-array-element-type '(unsigned-byte 16)) '(unsigned-byte 16))

(The expression is true for SBCL, CLISP, Allegro CL, Clozure CL, and LispWorks.)

+1  A: 

ECL may not support '(unsigned-byte 16)

Doug Currie