summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/decimal.py111
-rw-r--r--PC/dl_nt.c3
-rw-r--r--PCbuild9/debug.vsprops11
-rw-r--r--PCbuild9/make_buildinfo.vcproj8
-rw-r--r--PCbuild9/make_versioninfo.vcproj16
-rw-r--r--PCbuild9/pyd.vsprops3
-rw-r--r--PCbuild9/pyd_d.vsprops3
-rw-r--r--PCbuild9/pyproject.vsprops2
-rw-r--r--PCbuild9/python.vcproj32
-rw-r--r--PCbuild9/pythoncore.vcproj32
-rw-r--r--PCbuild9/pythonw.vcproj32
-rw-r--r--PCbuild9/readme.txt30
-rw-r--r--PCbuild9/release.vsprops11
-rw-r--r--PCbuild9/w9xpopen.vcproj24
14 files changed, 172 insertions, 146 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index 7842cb2..2c97dbd 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -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):
diff --git a/PC/dl_nt.c b/PC/dl_nt.c
index a87b523..e143c78 100644
--- a/PC/dl_nt.c
+++ b/PC/dl_nt.c
@@ -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 */
diff --git a/PCbuild9/debug.vsprops b/PCbuild9/debug.vsprops
new file mode 100644
index 0000000..59acd90
--- /dev/null
+++ b/PCbuild9/debug.vsprops
@@ -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> \ No newline at end of file
diff --git a/PCbuild9/make_buildinfo.vcproj b/PCbuild9/make_buildinfo.vcproj
index 8ba5c49..c42229c 100644
--- a/PCbuild9/make_buildinfo.vcproj
+++ b/PCbuild9/make_buildinfo.vcproj
@@ -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"
diff --git a/PCbuild9/make_versioninfo.vcproj b/PCbuild9/make_versioninfo.vcproj
index 61feabb..dcb922b 100644
--- a/PCbuild9/make_versioninfo.vcproj
+++ b/PCbuild9/make_versioninfo.vcproj
@@ -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"
diff --git a/PCbuild9/pyd.vsprops b/PCbuild9/pyd.vsprops
index 2a69d95..2e21a80 100644
--- a/PCbuild9/pyd.vsprops
+++ b/PCbuild9/pyd.vsprops
@@ -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
diff --git a/PCbuild9/pyd_d.vsprops b/PCbuild9/pyd_d.vsprops
index f0dc87c..b8f98f6 100644
--- a/PCbuild9/pyd_d.vsprops
+++ b/PCbuild9/pyd_d.vsprops
@@ -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
diff --git a/PCbuild9/pyproject.vsprops b/PCbuild9/pyproject.vsprops
index 3582f32..0078044 100644
--- a/PCbuild9/pyproject.vsprops
+++ b/PCbuild9/pyproject.vsprops
@@ -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"
diff --git a/PCbuild9/python.vcproj b/PCbuild9/python.vcproj
index 8381dcf..7efa98d 100644
--- a/PCbuild9/python.vcproj
+++ b/PCbuild9/python.vcproj
@@ -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"
diff --git a/PCbuild9/pythoncore.vcproj b/PCbuild9/pythoncore.vcproj
index 878d391..1df98d4 100644
--- a/PCbuild9/pythoncore.vcproj
+++ b/PCbuild9/pythoncore.vcproj
@@ -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
diff --git a/PCbuild9/pythonw.vcproj b/PCbuild9/pythonw.vcproj
index 1bc1dad..0013e9c 100644
--- a/PCbuild9/pythonw.vcproj
+++ b/PCbuild9/pythonw.vcproj
@@ -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"
diff --git a/PCbuild9/readme.txt b/PCbuild9/readme.txt
index 025684b..668a86b 100644
--- a/PCbuild9/readme.txt
+++ b/PCbuild9/readme.txt
@@ -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
diff --git a/PCbuild9/release.vsprops b/PCbuild9/release.vsprops
new file mode 100644
index 0000000..4bbda68
--- /dev/null
+++ b/PCbuild9/release.vsprops
@@ -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>
diff --git a/PCbuild9/w9xpopen.vcproj b/PCbuild9/w9xpopen.vcproj
index d00cef4..2397366 100644
--- a/PCbuild9/w9xpopen.vcproj
+++ b/PCbuild9/w9xpopen.vcproj
@@ -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"