[Python-3000] Compiling Python 3.0 with VS 2008 Beta2

"Martin v. Löwis" martin at v.loewis.de
Sat Nov 17 13:03:28 CET 2007

>> In the future, I think we should have only Release and Debug
>> configurations, and x86 and x64 platforms, and these in all four
>> combinations.
> I've tested VS 2008 Beta 2 Express and Standard Edition. I had to
> uninstall the Express Edition in order to test the Standard Edition. As
> far as I remember the Express Edition does neither ship with the 64bit
> compilers nor allows to use the x64 platform.
> The standard edition has two platforms: Win32 and x64. I haven't figured
> out if its possible to define custom platforms. The x64 platform uses
> the amd64 compiler.

Microsoft isn't quite consistent in naming things. The "Win32" platform
refers to the x86 architecture, and the x64 platform refers to the AMD64
platform. They couldn't rename "Win32" for backwards compatibility (I
guess), and they couldn't name the new platform "Win64" because that
name might also identify Itanium.

In any case, I will build release versions for both architectures, for
2.6 and 3.0, and will be using the standard edition (or perhaps the
professional edition) for that. I assume that some people would like
to run the debug version on AMD64, so that should also be supported (it
currently isn't - I normally cross-compile for AMD64, so I can't
run it in a debugger, anyway).

>> See PC/dllbase_nt.txt. This should be revised to match the current set
>> of modules, plus it should be updated for AMD64, as some DLLs become
>> larger on AMD64, so that they need more address space than dllbase_nt
>> allows for them.
> Oh, it's an interesting speed up trick. How was the address table
> generated. Lucky guessing and gut feeling? :]

Which aspect of it? There is a documented list (somewhere) of address
ranges that the (MS) Windows DLLs will occupy, so the Python DLLs should
be located elsewhere (there might also be a MS recommendation somewhere
what ranges to use). On the spacing in this table - Mark Hammond did
it, probably by checking the actual sizes and then rounding up. Such
tables need to be revised from time to time, to find out whether the
assumptions on sizes still hold.


More information about the Python-3000 mailing list