On Sun, 17 Oct 2010 23:38:34 -0400, Walter Bright
<[email protected]> wrote:
Robert Jacques wrote:
Although I have a solution that works well for me, the one thing I
lament about not having a canonical D way of expression
align(8)/align(16), even at only a meta-information level, is that if
phobos gets a small vector library, I can't use it and conversely I'm
not motivated to improve/submit my own small vector library to phobos.
I'm painfully aware that align(8)/(16) don't work on the 32 bit targets.
I've been reluctant to fix that because it involves some performance
degradation (keeping the stack so aligned requires the insertion of
stack adjustment instructions here and there).
With the 64 bit target, however, the C ABI will force the issue. It'll
support those alignments.
Cool. I understand the performance issue, but would it be possible for the
internal alignment of a struct to be correct? i.e. struct A { float x;
float2 point; } would be properly aligned internally: struct A { float x;
int padding; float2 point; }. That way, 32-bit programs could read binary
files from 64-bit programs and vice-versa.