<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Let's say I have:<BR>
 <BR>
 <BR>
TYPE FOO = RECORD a: LONGFLOAT; b: UINT32; END;<BR>
TYPE FOOA = ARRAY [0..1] OF FOO;<BR>
 <BR>
 <BR>
And I have a platform with max_align = 32 and a platform with max_align = 64.<BR>
One platform will make FOOA be 24 bytes, the other 32.<BR>
  One platform will pad out FOO to be align the 8 byte LONGFLOAT, one won't.<BR>
Can that pickle be read/written by the two platforms?<BR>
And how does the code know/detect the difference?<BR>
That is, if a platform changed from max_align = 32 to 64, would the pickle code work just<BR>
as well on the "same" platform as on the "different" platforms?<BR>
 <BR>
 <BR>
I very recently changed NT386 max_align from 32 to 64, and I believe<BR>
the remaining active platforms with max_align = 32 should also be 64.<BR>
It would "only" affect pickles with LONGINT or LONGFLOAT, as well<BR>
as "lining up" such structs with C.<BR>
 <BR>
 <BR>
Such alignment shold make us not need the extra "unaligned double" switch<BR>
on most platforms (some mystery still on some platforms) as well as<BR>
perhaps be needed for some atomic operations, esp. maybe on<BR>
LONGINT on 32bit x86.<BR>
 <BR>
 <BR>
 - Jay<BR><BR> <BR>> From: dragisha@m3w.org<BR>> To: rodney_bates@lcwb.coop<BR>> Date: Sun, 31 Jan 2010 22:14:47 +0100<BR>> CC: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] platform-independent packing/alignment?<BR>> <BR>> I've not changed my code, that is for sure.... But now I am not sure<BR>> some parent type (esp MUTEX here an there) was not changed... I'll take<BR>> a look on this again sometime soon and report my findings.<BR>> <BR>> Thanks for clues.<BR>> <BR>> On Sun, 2010-01-31 at 14:00 -0600, Rodney M. Bates wrote:<BR>> > <BR>> > Dragiša Durić wrote:<BR>> > > I've asked this before, but didn't catch answer:<BR>> > > <BR>> > > On Sun, 2010-01-31 at 12:21 +0000, Jay K wrote:<BR>> > >> I suggest we can probably get by with platform-independent<BR>> > >> packing/alignment settings.<BR>> > > <BR>> > > Some time ago I've used pickles (CM3) to save some data... My program<BR>> > > does not read that pickle anymore.... <BR>> > <BR>> > And you are certain your program that tries to read still contains<BR>> > exact structurally equivalent types to all the types in the pickle?<BR>> > <BR>> > > <BR>> > > Someone remembers moment when this incompatible changes were made? <BR>> -- <BR>> Dragiša Durić <dragisha@m3w.org><BR>> <BR>                                          </body>
</html>