Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Is it even possible to build a 64 bit version of Perl on Windows? Ruby 1.8.x won't work because of inline assembler issues and I thought Perl (and probably others) would suffer from this as well:

    http://msdn.microsoft.com/en-us/library/wbk4z78b.aspx [microsoft.com]

    • Core Perl doesn't use inline-assembly, so this is not an issue. A 64-bit version of ActivePerl for Windows has been available since 2006.

      Win32::API however does use inline-assembly and therefore needs to be changed to either move the assembly code into separate files to be processed by an assembler, or needs to use the new intrinsic functions in newer versions of VC++.

      Feel free to join libwin32@perl.org to discuss the details. :)

      • The calling conventions are also very different - Win32 uses a purely stack parameter passing convention, while x64 uses the standard amd64 parameter passing convention - with the first four parameters going into registers if possible.

        For example:

        GetTextFace(dc, sizeof(facename), facename)

        compiles to:

        ; look Ma! No stack!
        lea r8, OFFSET FLAT:facename
        mov edx, 80 ; 00000050H
        mov rcx, QWORD PTR dc
        call QWORD PTR __imp_GetTextFaceA