[fpc-devel] Big endian set format changed
Jonas Maebe
jonas.maebe at elis.ugent.be
Sat May 19 19:18:19 CEST 2007
Hello,
I've just committed a large change to FPC's trunk repository (version
2.3.1; 2.1.x is unaffected), which does the following:
* new internal set format for big endian systems. Advantages:
* varsets ({$packset x}) are now supported on big endian targets
* gdb now displays sets properly on big endian systems
* cleanup of generic set code (in, include/exclude, helpers), all
based on "bitpacked array[] of 0..1" now
* there are no helpers available yet to convert sets from the old to
the new format, because the set format will change again slightly
in the near future (so that e.g. a set of 24..31 will be stored in
1 byte), and creating two classes of set conversion helpers would
confuse things (i.e., it's not recommended to use trunk
currently for
programs which load sets stored to disk by big endian programs
compiled
by previous FPC versions)
* cross-endian compiling has been tested and still works, but one
case
is not supported: compiling a compiler for a different endianess
using a starting compiler from before the current revision (so
first
cycle natively, and then use the newly created compiler to create a
cross-compiler)
Especially keep in mind point 3 if you compile new FPC compilers from
source yourself, and point 2 if you use trunk/2.3.1 for your own
usage rather than fixes_2_2/2.1.x
Over time, these changes will go into fixes_2_2 as well, but only
after things have settled down and when the conversion helpers are
available.
Jonas
More information about the fpc-devel
mailing list