#3 64-bit support on Windows

closed
nobody
None
5
2015-03-30
2007-11-20
John Burnett
No

64-bit support on Windows. Note I didn't update anything to do with "mdp" files or makefile, as I don't know anything about those. These changes purely update the Visual Studio files to have an option to build 64bit (the x64 solution platform).

clrmodule.il:
-- Rewrote entirely to be more human readable/writable. Heavily commented with C# equivalents. Added #ifdef'd debug prints.
-- Supports loading out of PYTHONPATH (based on idea by Maksim Kozyarchuk). Default behavior is the same, and only falls back to PYTHONPATH if Python.Runtime can't be found. Note that the ".assembly extern Python.Runtime" block is removed now, as we're no longer binding to it at compile time.
-- If/when Python.Runtime.dll gets a solid version and/or strong name, clrmodule can be set to bind more closely with that build by using the USE_PYTHON_RUNTIME_VERSION and USE_PYTHON_RUNTIME_PUBLIC_KEY_TOKEN defines. See comments for details.
-- Updated mscorlib reference to 2.0 (required for 64-bit compat).
-- Removed ".corflags 0x00000002" (Not compatible with 64 bit version, and no longer needed for 32 bit version when using ilasm v2).

Other files:
-And added "runtime\x86\clrmodule-platform.il" and "runtime\x64\clrmodule-platform.il" subdirectories. 32/64 bit specific IL code is in there, and included into "runtime\clrmodule.il". Clunky, but since ilasm doesn't support command-line #defines, I think this is the best to be done to get the machine-specific stuff out of clrmodule.il.
-Deleted oldmodule.il (seems to be left over drit that was basically the same as clrmodule.il anyway, casing notwithstanding).
-Added an x64 platform target for the solution and Python.Runtime project. The platform is passed into the newly added buildclrmodule.bat, which builds the appropriate clr.pyd.
-Removed Console.csproj.user, and put its Debug build StartArguments into Console.csproj, so it's no longer necessary to keep the .user file around in source control.
-All projects are responsible for copying only their specific output (i.e. console no longer delets/builds/copies clr.pyd). Project dependencies should make sure things work still.

Discussion

  • John Burnett
    John Burnett
    2007-11-20

     
    Attachments
  • John Burnett
    John Burnett
    2008-02-27

    • status: open --> closed