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


Reply via email to