28 February 2007

Win64: slow progress

I was looking through an XML library this week. It's one that compiles on various UNIX platforms, and Mac OS X and Windows. Primarily it's been built for Windows 32-bit, but it has been built for 64-bit UNIXs so I thought that the code would be code and ready for Windows 64-bit.

I was a little surprised to find that it was not anywhere near ready. I think the authors had assumed that the UNIX LP64 programming model is the same as the Windows 64-bit LLP64 programming model.

Variable sizes in 32/64-bit modes :
          32bit   LP64    LLP64
int 4 4 4
long 4 8 4
void * 4 8 8
HANDLE 4 8 8

Maybe it's the fact that in LLP64, the size of a long is different from LP64 that is confusing some development, but the compiler does help. With VS2005, if you try to put a pointer into a long it flags an error.
Another issue is HANDLE, which I have mentioned before.
I found hundreds of such errors when building this XML library. I think it will take a while for Windows developers of native code to catch up to VS2005 and then to catch up to 64-bit.

08 February 2007

Intel Article on multithreaded programming

Intel: Nuts and Bolts of Multithreaded Programming

Get the basics about parallel algorithms, parallel programming APIs, and the tools required to start writing your own parallel programs.

Article: Moving to Windows Vista x64

CodeProject: Moving to Windows Vista x64

A very interesting & technically detailed article about 64-bit programming on Vista x64.