M: bad-byte-array-length summary
drop "Byte array length doesn't divide type width" ;
+: (c-array) ( n c-type -- array )
+ heap-size * (byte-array) ; inline
+
FUNCTOR: define-array ( T -- )
A DEFINES ${T}-array
<A> DEFINES <${A}>
+(A) DEFINES (${A})
>A DEFINES >${A}
byte-array>A DEFINES byte-array>${A}
A{ DEFINES ${A}{
: <A> ( n -- specialized-array ) dup T <c-array> A boa ; inline
+: (A) ( n -- specialized-array ) dup T (c-array) A boa ; inline
+
: byte-array>A ( byte-array -- specialized-array )
dup length T heap-size /mod 0 = [ drop T bad-byte-array-length ] unless
swap A boa ; inline
M: A like drop dup A instance? [ >A execute ] unless ;
-M: A new-sequence drop <A> execute ;
+M: A new-sequence drop (A) execute ;
M: A equal? over A instance? [ sequence= ] [ 2drop f ] if ;