[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