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-4EA3-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

Reply via email to