Cosimo, I have approval from my mgr. to set up a Vista 64 machine with either VS2008 or VS2005 or just the SDK and get it available on the public net. Which do you prefer?
I'll be starting on that Monday or Tuesday of next week as soon as I finish the setup for the new machine taking over the intended box's functions. Steve -----Original Message----- From: Cosimo Streppone [mailto:cos...@streppone.it] Sent: Wednesday, February 11, 2009 4:16 PM To: libwin32@perl.org Cc: Giuseppe J. Crisafulli; Bauer, Steven; Aldo Calpini Subject: Win32::API port to 64 bits Hi libwin32@, The project to port Win32::API to 64 bits has started. I'm the current maintainer for this module, and I want to be able for users to use it on 64 bit systems. This seems to be rather difficult, so I'm looking for help and contributions on several aspects of the project. I've already been contacted by several interested users. If you're interested in this, or want to provide help with documentation, hardware, licenses, links, whatever... please reply to this message. Why is the porting so difficult? (at least for me?) 1) Win32::API uses inline x86 assembly code to interface with Windows DLL APIs. That assembly code would need to be adapted to 64 bit architectures. The problem is that 64 bit MSVCs dropped support for inline assembly. This can be replaced by: a) using external assembly files, to be assembled with MASM64 or b) using the so-called intrinsic functions, special compiler functions that loosely "map" to x86 assembly instructions. An in-depth article about this subject: http://www.codeproject.com/KB/vista/vista_x64.aspx 2) Windows x86-64 architecture uses the _fastcall_ calling convention. See also: http://msdn.microsoft.com/en-us/library/ms235286(VS.80).aspx 3) I don't have enough knowledge about 64-bits porting and my assembly is a bit weak. Some users provided useful links and possibility access to additional documentation. The more, the better. 4) Currently all Win32-API development happens on my personal laptop, which has a 32-bit Vista OS. The ideal would be to have a dedicated 64-bit machine for me to work on. In this blog post: http://use.perl.org/~Alias/journal/38036 Adam Kennedy announced that Microsoft would make available to CPAN developers some testing machines, specifically for development and testing of CPAN/Perl modules. Current status is that I asked Adam about this 2 weeks ago, and "this could happen anyday soon". 5) I don't have a license for a 64-bit MSVC compiler, but it seems this is not really a problem. There's the "Windows Server 2003 SP1 Platform SDK" which contains all the compiler tools, for AMD64 and IA64, which are basically modified versions of MSVC 2005. It also contains the 64-bit version of the good old MASM assembler. This SDK can be downloaded here: http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4 EA3-A93E-40C0EC4F68E5&displaylang=en This is the same tool used to build ActivePerl 64-bit. There is a public svn repository where we're planning to start a 64-bit development branch of Win32::API. This is the libwin32 repository, which hosts all the source code for the main Win32 CPAN modules, and it's maintained by Jan Dubois, ActiveState Lead Developer. libwin32 project hosted on google code: http://code.google.com/p/libwin32/ Win32::API trunk: http://code.google.com/p/libwin32/source/browse/#svn/trunk/Win32-API -- Cosimo