bearophile wrote: > Mariusz G.: > >> So, on my Linux x64 dmd 2.53 & 2.54, while hunting another bug (i already >> highly doubt it's my) - i've found this one: > > I can't reproduce the problem on 2.055head on 32 bit Windows. > DMD 64 bit is relatively recent, it contains several bugs still. More - http://d.puremagic.com/issues/show_bug.cgi?id=6562
>> Another problem i'm searching for, is something with interfacing to C, >> pointer to floats and properties and/or aliasing. NVM > > I don't understand. I'm passing address of float variables to external C function. dmd is passing 80bit (real) though. <code> 0x0000000000d4f139 <+441>: movss -0xec(%rbp),%xmm7 0x0000000000d4f141 <+449>: movss -0xe8(%rbp),%xmm6 0x0000000000d4f149 <+457>: movss -0xe4(%rbp),%xmm5 0x0000000000d4f151 <+465>: movss -0xe0(%rbp),%xmm4 0x0000000000d4f159 <+473>: movss -0xdc(%rbp),%xmm3 0x0000000000d4f161 <+481>: movss -0xd8(%rbp),%xmm2 0x0000000000d4f169 <+489>: movss -0xd4(%rbp),%xmm1 0x0000000000d4f171 <+497>: movss -0xd0(%rbp),%xmm0 => 0x0000000000d4f179 <+505>: callq 0x10b4b04 </code> Well, actually my swig binding is casting from float* to void*, neverthless float is C float and real is 80bit, so it shouldn't be a problem? So, it's a next bug i should report, yes? > Creating the project of your life with 64 bit DMD is a not so good idea. > Currently DMD 32 bit is more reliable if you want to create a large > project. You're right, I've pushed to D too much, because it's one of projects 'features', and overall code design is driven by that. I'll just make my current D code working properly, and write C++ modules (so i could fallback to D soon). Now question, is it generally worth to refactor quite big amounts of code Thanks, Mariusz