Major refactor of the internals of the type system. The API is
the same but some type meta-data (which was never guaranteed
to stay the same) may have changed.The internal representation of types is much smaller (4 bytes
for simple types), which can save a lot of memory if you have
lots of types.Fixed width strings example:
string(32)
are now internally
treated the same as a record with no classrecord(32)
.
Previously these were separate types but worked identically,
this removes duplicate code.Fixed width string arguments to a closure are now read-only,
Usually you should be copying these arguments anyway.Removed the internal type "exotic float" which includes
long double
,complex float
andcomplex double
. These are
now grouped internally with other scalar types.
Merge FFI::Platypus::Type::StringArray into this distribution