Op Thu, 28 Feb 2008, schreef Michael Schnell:


To my knowledge there is no problem with the current implementation. Endian conversion is already the reponsibility of the programmer. Therefore I don't see a need for changes on the compiler side.

I don't understand your meaning here.

If a record with binary fields is defined and transferred to (e.g.) another instance of the same program running on another machine by network or within a file, or if it needs to be crafted according to a specification of a network block or file format or a hardware device, endianess needs to be taken care of, and it's not nice if the user needs to write active code to do this, if a "bitpacked" type is available that seemingly can be used for that issue.

You even might want to define a record that just holds a single 16 bit value. Here it would be good to be able do define endianess of the bitpacked structure to make it compatible with the communication partner.

Fixed endianness of records could be a language extension, it might even ease programmers from doing endian conversion (rather than doing ifdefs, just mention the endianness of your record), much nicer.

However, the situation as it is, is that we do not have such a language feature and rely on manual endian conversion by means of ifdefs. There is no difference between normal, packed, or bitpacked records, you have to endian convert them manually.

Daniël
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to