[M3devel] <*LAZYALIGN*>

Darko darko at darko.org
Sun Feb 24 01:01:05 CET 2008


What I meant to say below is that unpacked structures are aligned  
according to the normal rules under Darwin. The problem is that the  
packed alignment rules without the change are too restrictive.

On 24/02/2008, at 4:31 AM, Rodney M. Bates wrote:

> I guess I misunderstood.  I had the idea from the quoted text below  
> that MAC OS X needed a mixture
> of lazy and strict alignment.  If every platform uses the same  
> alignment rules for all types of all
> programs on the platform, then the alignment rule property can just  
> be made an additional field of
> the RTPacking.T.
>
> This is much easier to do without compatibility problems, because  
> this value is encoded in bits
> in a 32-bit word in pickle headers, with unused bits that are now  
> ignored.  The alignment strategy
> could just be in another bit.
>
>
> From a post on 2-11:
> ---------------------------------------------------------------------------------------------------------
> That's not quite right. Certain Mac API structures need to be  
> aligned  to Motorola 68K alignment for historical reasons. All other  
> structures  should use normal alignment to be compatible with C and  
> Unix  interfaces. The alignment change was implemented to be  
> supported only  in packed structures as a natural and intuitive way  
> to "force"  alignment. You could view it as a bug fix to overly  
> restrictive  alignment rules in packed structures.
>
>
> On 12/02/2008, at 2:46 PM, Rodney M. Bates wrote:
>
> > It sounds like all that Mac OS X needs is for _all_ types in an  
> entire
> > program to use the liberal packing rules.  Have I understood   
> correctly?
> > I would have no grief over that.
> ---------------------------------------------------------------------------------------------------------
>
> Darko wrote:
>> The alignment rules are particular to a platform, not a type (at  
>> least  after we get rid of the pragma), so is there no field where  
>> we can  encode some information about the platform in the pickle  
>> header or  something? Where is endian stored?
> -- 
> -------------------------------------------------------------
> Rodney M. Bates, retired assistant professor
> Dept. of Computer Science, Wichita State University
> Wichita, KS 67260-0083
> 316-978-3922
> rodney.bates at wichita.edu




More information about the M3devel mailing list