Merged revisions 59234-59238 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r59237 | facundo.batista | 2007-11-30 18:15:25 +0100 (Fri, 30 Nov 2007) | 4 lines


  Reordering of __new__ to minimize isinstance() calls to most
  used types. Thanks Mark Dickinson.
........
  r59238 | christian.heimes | 2007-11-30 20:18:08 +0100 (Fri, 30 Nov 2007) | 6 lines

  Removed or replaced some more deprecated preprocessor macros.
  Moved the _DEBUG and NDEBUG macros to two new property files.
  Fixed #1527 Problem with static libs on Windows
  Updated README.txt
........
This commit is contained in:
Christian Heimes 2007-11-30 19:27:20 +00:00
parent 45031dfd1c
commit d59c64c49f
14 changed files with 172 additions and 146 deletions

View File

@ -540,21 +540,47 @@ class Decimal(object):
# digits.
self = object.__new__(cls)
self._is_special = False
# From an internal working value
if isinstance(value, _WorkRep):
self._sign = value.sign
self._int = str(value.int)
self._exp = int(value.exp)
return self
# From a string
# REs insist on real strings, so we can too.
if isinstance(value, str):
m = _parser(value)
if m is None:
if context is None:
context = getcontext()
return context._raise_error(ConversionSyntax,
"Invalid literal for Decimal: %r" % value)
# From another decimal
if isinstance(value, Decimal):
self._exp = value._exp
self._sign = value._sign
self._int = value._int
self._is_special = value._is_special
if m.group('sign') == "-":
self._sign = 1
else:
self._sign = 0
intpart = m.group('int')
if intpart is not None:
# finite number
fracpart = m.group('frac')
exp = int(m.group('exp') or '0')
if fracpart is not None:
self._int = (intpart+fracpart).lstrip('0') or '0'
self._exp = exp - len(fracpart)
else:
self._int = intpart.lstrip('0') or '0'
self._exp = exp
self._is_special = False
else:
diag = m.group('diag')
if diag is not None:
# NaN
self._int = diag.lstrip('0')
if m.group('signal'):
self._exp = 'N'
else:
self._exp = 'n'
else:
# infinity
self._int = '0'
self._exp = 'F'
self._is_special = True
return self
# From an integer
@ -565,6 +591,23 @@ class Decimal(object):
self._sign = 1
self._exp = 0
self._int = str(abs(value))
self._is_special = False
return self
# From another decimal
if isinstance(value, Decimal):
self._exp = value._exp
self._sign = value._sign
self._int = value._int
self._is_special = value._is_special
return self
# From an internal working value
if isinstance(value, _WorkRep):
self._sign = value.sign
self._int = str(value.int)
self._exp = int(value.exp)
self._is_special = False
return self
# tuple/list conversion (possibly from as_tuple())
@ -616,48 +659,6 @@ class Decimal(object):
raise TypeError("Cannot convert float to Decimal. " +
"First convert the float to a string")
# From a string
# REs insist on real strings, so we can too.
if isinstance(value, str):
m = _parser(value)
if m is None:
if context is None:
context = getcontext()
return context._raise_error(ConversionSyntax,
"Invalid literal for Decimal: %r" % value)
if m.group('sign') == "-":
self._sign = 1
else:
self._sign = 0
intpart = m.group('int')
if intpart is not None:
# finite number
fracpart = m.group('frac')
exp = int(m.group('exp') or '0')
if fracpart is not None:
self._int = (intpart+fracpart).lstrip('0') or '0'
self._exp = exp - len(fracpart)
else:
self._int = intpart.lstrip('0') or '0'
self._exp = exp
self._is_special = False
else:
diag = m.group('diag')
if diag is not None:
# NaN
self._int = diag.lstrip('0')
if m.group('signal'):
self._exp = 'N'
else:
self._exp = 'n'
else:
# infinity
self._int = '0'
self._exp = 'F'
self._is_special = True
return self
raise TypeError("Cannot convert %r to Decimal" % value)
def _isnan(self):

View File

@ -11,6 +11,7 @@ forgotten) from the programmer.
#include "Python.h"
#include "windows.h"
#ifdef Py_ENABLE_SHARED
char dllVersionBuffer[16] = ""; // a private buffer
// Python Globals
@ -35,3 +36,5 @@ BOOL WINAPI DllMain (HANDLE hInst,
}
return TRUE;
}
#endif /* Py_ENABLE_SHARED */

11
PCbuild9/debug.vsprops Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="debug"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="_DEBUG"
/>
</VisualStudioPropertySheet>

View File

@ -22,7 +22,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
CharacterSet="0"
>
<Tool
@ -44,7 +44,7 @@
Name="VCCLCompilerTool"
Optimization="0"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
RuntimeLibrary="0"
/>
<Tool
@ -87,7 +87,7 @@
<Configuration
Name="Release|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
>
<Tool
Name="VCPreBuildEventTool"
@ -106,7 +106,7 @@
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
/>
<Tool
Name="VCManagedResourceCompilerTool"

View File

@ -21,7 +21,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -50,7 +50,7 @@
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -99,7 +99,7 @@
<Configuration
Name="Release|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
>
<Tool
Name="VCPreBuildEventTool"
@ -124,7 +124,7 @@
Optimization="2"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@ -165,7 +165,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="0"
@ -194,7 +194,7 @@
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_DEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -243,7 +243,7 @@
<Configuration
Name="Debug|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
>
<Tool
Name="VCPreBuildEventTool"
@ -269,7 +269,7 @@
Optimization="0"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="false"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
/>
<Tool
Name="VCManagedResourceCompilerTool"

View File

@ -3,11 +3,10 @@
ProjectType="Visual C++"
Version="8.00"
Name="pyd"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="NDEBUG"
RuntimeLibrary="2"
/>
<Tool

View File

@ -3,14 +3,13 @@
ProjectType="Visual C++"
Version="8.00"
Name="pyd_d"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
InlineFunctionExpansion="0"
EnableIntrinsicFunctions="false"
PreprocessorDefinitions="_DEBUG"
RuntimeLibrary="3"
/>
<Tool

View File

@ -12,7 +12,7 @@
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\Include; ..\PC"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE"
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"

View File

@ -20,7 +20,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -93,7 +93,7 @@
<Configuration
Name="Release|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -117,7 +117,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -167,7 +167,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="0"
@ -192,7 +192,7 @@
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_DEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
RuntimeLibrary="3"
BrowseInformation="1"
CompileAs="0"
@ -242,7 +242,7 @@
<Configuration
Name="Debug|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -268,7 +268,7 @@
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_DEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
RuntimeLibrary="3"
BrowseInformation="1"
CompileAs="0"
@ -318,7 +318,7 @@
<Configuration
Name="PGInstrument|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -341,7 +341,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -392,7 +392,7 @@
<Configuration
Name="PGInstrument|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -416,7 +416,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -468,7 +468,7 @@
<Configuration
Name="PGUpdate|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -491,7 +491,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -542,7 +542,7 @@
<Configuration
Name="PGUpdate|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -566,7 +566,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_CONSOLE"
PreprocessorDefinitions="_CONSOLE"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"

View File

@ -21,7 +21,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -44,7 +44,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/Zm200 "
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="2"
/>
<Tool
@ -95,7 +95,7 @@
<Configuration
Name="Release|x64"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -119,7 +119,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/Zm200 "
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="2"
/>
<Tool
@ -170,7 +170,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="0"
@ -197,7 +197,7 @@
InlineFunctionExpansion="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="3"
/>
<Tool
@ -248,7 +248,7 @@
<Configuration
Name="Debug|x64"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -275,7 +275,7 @@
InlineFunctionExpansion="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="3"
/>
<Tool
@ -326,7 +326,7 @@
<Configuration
Name="PGInstrument|Win32"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -349,7 +349,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/Zm200 "
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="2"
/>
<Tool
@ -400,7 +400,7 @@
<Configuration
Name="PGInstrument|x64"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -424,7 +424,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/Zm200 "
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="2"
/>
<Tool
@ -476,7 +476,7 @@
<Configuration
Name="PGUpdate|Win32"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -499,7 +499,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/Zm200 "
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="2"
/>
<Tool
@ -550,7 +550,7 @@
<Configuration
Name="PGUpdate|x64"
ConfigurationType="2"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -574,7 +574,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/Zm200 "
AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
RuntimeLibrary="2"
/>
<Tool

View File

@ -20,7 +20,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="0"
@ -45,7 +45,7 @@
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_DEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
RuntimeLibrary="3"
CompileAs="0"
/>
@ -92,7 +92,7 @@
<Configuration
Name="Debug|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -117,7 +117,7 @@
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_DEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
RuntimeLibrary="3"
CompileAs="0"
/>
@ -163,7 +163,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -185,7 +185,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -234,7 +234,7 @@
<Configuration
Name="Release|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -257,7 +257,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -305,7 +305,7 @@
<Configuration
Name="PGInstrument|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -327,7 +327,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -377,7 +377,7 @@
<Configuration
Name="PGInstrument|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -400,7 +400,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -450,7 +450,7 @@
<Configuration
Name="PGUpdate|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -472,7 +472,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@ -522,7 +522,7 @@
<Configuration
Name="PGUpdate|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
@ -545,7 +545,7 @@
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;_WINDOWS"
PreprocessorDefinitions="_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"

View File

@ -23,8 +23,8 @@ cross compiling x64 builds on a 32bit OS possible the x64 builds require a
32bit version of Python.
note:
you probably don't want to build most of the other subprojects, unless
NOTE:
You probably don't want to build most of the other subprojects, unless
you're building an entire Python distribution from scratch, or
specifically making changes to the subsystems they implement, or are
running a Python core buildbot test slave; see SUBPROJECTS below)
@ -209,16 +209,16 @@ _ssl
You can (theoretically) use any version of OpenSSL you like - the
build process will automatically select the latest version.
You must also install ActivePerl from
You must install the NASM assembler from
http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
for x86 builds. Put nasmw.exe anywhere in your PATH.
You can also install ActivePerl from
http://www.activestate.com/Products/ActivePerl/
if you like to use the official sources instead of the files from
python's subversion repository. The svn version contains pre-build
makefiles and assembly files.
You also need the NASM assembler
from http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
Put nasmw.exe anywhere in your PATH.
The build process makes sure that no patented algorithms are included.
For now RC5, MDC2 and IDEA are excluded from the build. You may have
to manually remove $(OBJ_D)\i_*.obj from ms\nt.mak if the build process
@ -265,15 +265,25 @@ have to set x64 as platform.
Building Python Using the free MS Toolkit Compiler
--------------------------------------------------
Note that Microsoft have withdrawn the free MS Toolkit Compiler, so this can
no longer be considered a supported option. Instead you can use the free
VS C++ Express Edition
Microsoft has withdrawn the free MS Toolkit Compiler, so this can no longer
be considered a supported option. Instead you can use the free VS C++ Express
Edition.
Profile Guided Optimization
---------------------------
http://msdn2.microsoft.com/en-us/library/e7k32f4k(VS.90).aspx
Static library
--------------
The solution has no configuration for static libraries. However it is easy
it build a static library instead of a DLL. You simply have to set the
"Configuration Type" to "Static Library (.lib)" and alter the preprocessor
macro "Py_ENABLE_SHARED" to "Py_NO_ENABLE_SHARED". You may also have to
change the "Runtime Library" from "Multi-threaded DLL (/MD)" to
"Multi-threaded (/MT)".
YOUR OWN EXTENSION DLLs
-----------------------
If you want to create your own extension module DLL, there's an example

11
PCbuild9/release.vsprops Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="release"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="NDEBUG"
/>
</VisualStudioPropertySheet>

View File

@ -21,7 +21,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="0"
@ -44,7 +44,6 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_DEBUG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
/>
@ -86,7 +85,7 @@
<Configuration
Name="Debug|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -110,7 +109,6 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="_DEBUG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
/>
@ -152,7 +150,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -176,7 +174,6 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@ -220,7 +217,7 @@
<Configuration
Name="Release|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -245,7 +242,6 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@ -289,7 +285,7 @@
<Configuration
Name="PGInstrument|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -313,7 +309,6 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@ -358,7 +353,7 @@
<Configuration
Name="PGInstrument|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -383,7 +378,6 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@ -429,7 +423,7 @@
<Configuration
Name="PGUpdate|Win32"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -453,7 +447,6 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@ -498,7 +491,7 @@
<Configuration
Name="PGUpdate|x64"
ConfigurationType="1"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
@ -523,7 +516,6 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="NDEBUG"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"