diff options
-rw-r--r-- | Lib/multiprocessing/connection.py | 9 | ||||
-rw-r--r-- | Lib/test/test_multiprocessing.py | 14 | ||||
-rw-r--r-- | Lib/test/test_xml_etree.py | 10 | ||||
-rw-r--r-- | Misc/NEWS | 7 | ||||
-rw-r--r-- | Modules/_decimal/tests/bench.py | 5 | ||||
-rw-r--r-- | Objects/bytearrayobject.c | 8 | ||||
-rw-r--r-- | Objects/typeobject.c | 22 | ||||
-rw-r--r-- | PCbuild/_decimal.vcproj | 1486 | ||||
-rw-r--r-- | Tools/msi/msi.py | 4 |
9 files changed, 794 insertions, 771 deletions
diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py index ca0c973..954e901 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -104,6 +104,13 @@ def arbitrary_address(family): else: raise ValueError('unrecognized family') +def _validate_family(family): + ''' + Checks if the family is valid for the current environment. + ''' + if sys.platform != 'win32' and family == 'AF_PIPE': + raise ValueError('Family %s is not recognized.' % family) + def address_type(address): ''' @@ -436,6 +443,7 @@ class Listener(object): or default_family address = address or arbitrary_address(family) + _validate_family(family) if family == 'AF_PIPE': self._listener = PipeListener(address, backlog) else: @@ -473,6 +481,7 @@ def Client(address, family=None, authkey=None): Returns a connection to the address of a `Listener` ''' family = family or address_type(address) + _validate_family(family) if family == 'AF_PIPE': c = PipeClient(address) else: diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py index d65cf6e..b4f511c 100644 --- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -2638,8 +2638,20 @@ class TestWait(unittest.TestCase): p.join() +# +# Issue 14151: Test invalid family on invalid environment +# + +class TestInvalidFamily(unittest.TestCase): + + @unittest.skipIf(WIN32, "skipped on Windows") + def test_invalid_family(self): + with self.assertRaises(ValueError): + multiprocessing.connection.Listener(r'\\.\test') + + testcases_other = [OtherTest, TestInvalidHandle, TestInitializers, - TestStdinBadfiledescriptor, TestWait] + TestStdinBadfiledescriptor, TestWait, TestInvalidFamily] # # diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index bd2a826..aa9a40d 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -1859,16 +1859,6 @@ class BasicElementTest(unittest.TestCase): gc_collect() self.assertIsNone(wref()) - # A longer cycle: d->e->e2->d - e = ET.Element('joe') - d = Dummy() - d.dummyref = e - wref = weakref.ref(d) - e2 = ET.SubElement(e, 'foo', attr=d) - del d, e, e2 - gc_collect() - self.assertIsNone(wref()) - class ElementTreeTest(unittest.TestCase): def test_istype(self): @@ -10,9 +10,16 @@ What's New in Python 3.3.0 Alpha 3? Core and Builtins ----------------- +- Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch + by Suman Saha. + Library ------- +- Issue #14151: Raise a ValueError, not a NameError, when trying to create + a multiprocessing Client or Listener with an AF_PIPE type address under + non-Windows platforms. Patch by Popa Claudiu. + What's New in Python 3.3.0 Alpha 2? =================================== diff --git a/Modules/_decimal/tests/bench.py b/Modules/_decimal/tests/bench.py index 013f0f6..ea0823a 100644 --- a/Modules/_decimal/tests/bench.py +++ b/Modules/_decimal/tests/bench.py @@ -84,7 +84,10 @@ print("\n# ===================================================================== print("# Factorial") print("# ======================================================================\n") -C.getcontext().prec = C.MAX_PREC +c = C.getcontext() +c.prec = C.MAX_PREC +c.Emax = C.MAX_EMAX +c.Emin = C.MIN_EMIN for n in [100000, 1000000]: diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index 1b88f12..1846ec5 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -2289,8 +2289,10 @@ bytearray_extend(PyByteArrayObject *self, PyObject *arg) } bytearray_obj = PyByteArray_FromStringAndSize(NULL, buf_size); - if (bytearray_obj == NULL) + if (bytearray_obj == NULL) { + Py_DECREF(it); return NULL; + } buf = PyByteArray_AS_STRING(bytearray_obj); while ((item = PyIter_Next(it)) != NULL) { @@ -2323,8 +2325,10 @@ bytearray_extend(PyByteArrayObject *self, PyObject *arg) return NULL; } - if (bytearray_setslice(self, Py_SIZE(self), Py_SIZE(self), bytearray_obj) == -1) + if (bytearray_setslice(self, Py_SIZE(self), Py_SIZE(self), bytearray_obj) == -1) { + Py_DECREF(bytearray_obj); return NULL; + } Py_DECREF(bytearray_obj); Py_RETURN_NONE; diff --git a/Objects/typeobject.c b/Objects/typeobject.c index a4414a9..4b3c63c 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -490,26 +490,22 @@ type_set_bases(PyTypeObject *type, PyObject *value, void *context) for (i = 0; i < PyTuple_GET_SIZE(value); i++) { ob = PyTuple_GET_ITEM(value, i); if (!PyType_Check(ob)) { - PyErr_Format( - PyExc_TypeError, - "%s.__bases__ must be tuple of classes, not '%s'", - type->tp_name, Py_TYPE(ob)->tp_name); - return -1; + PyErr_Format(PyExc_TypeError, + "%s.__bases__ must be tuple of classes, not '%s'", + type->tp_name, Py_TYPE(ob)->tp_name); + return -1; } - if (PyType_Check(ob)) { - if (PyType_IsSubtype((PyTypeObject*)ob, type)) { - PyErr_SetString(PyExc_TypeError, - "a __bases__ item causes an inheritance cycle"); - return -1; - } + if (PyType_IsSubtype((PyTypeObject*)ob, type)) { + PyErr_SetString(PyExc_TypeError, + "a __bases__ item causes an inheritance cycle"); + return -1; } } new_base = best_base(value); - if (!new_base) { + if (!new_base) return -1; - } if (!compatible_for_assignment(type->tp_base, new_base, "__bases__")) return -1; diff --git a/PCbuild/_decimal.vcproj b/PCbuild/_decimal.vcproj index 1d047c2..8cbe626 100644 --- a/PCbuild/_decimal.vcproj +++ b/PCbuild/_decimal.vcproj @@ -1,743 +1,743 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="9.00" - Name="_decimal" - ProjectGUID="{0E9791DB-593A-465F-98BC-681011311617}" - RootNamespace="_decimal" - Keyword="Win32Proj" - TargetFrameworkVersion="196613" - > - <Platforms> - <Platform - Name="Win32" - /> - <Platform - Name="x64" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - ConfigurationType="2" - InheritedPropertySheets=".\pyd_d.vsprops" - CharacterSet="0" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - BaseAddress="0x1D1A0000" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug|x64" - ConfigurationType="2" - InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" - CharacterSet="0" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TargetEnvironment="3" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - BaseAddress="0x1D1A0000" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - ConfigurationType="2" - InheritedPropertySheets=".\pyd.vsprops" - CharacterSet="0" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - SubSystem="0" - BaseAddress="0x1D1A0000" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|x64" - ConfigurationType="2" - InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" - CharacterSet="0" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TargetEnvironment="3" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - SubSystem="0" - BaseAddress="0x1D1A0000" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="PGInstrument|Win32" - ConfigurationType="2" - InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" - CharacterSet="0" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/DCONFIG_32 /DPPRO /D_CRT_SECURE_NO_WARNINGS" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - SubSystem="0" - BaseAddress="0x1D1A0000" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="PGInstrument|x64" - ConfigurationType="2" - InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pginstrument.vsprops" - CharacterSet="0" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TargetEnvironment="3" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/DCONFIG_64 /D_CRT_SECURE_NO_WARNINGS" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - SubSystem="0" - BaseAddress="0x1D1A0000" - TargetMachine="17" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="PGUpdate|Win32" - ConfigurationType="2" - InheritedPropertySheets=".\pyd.vsprops;.\pgupdate.vsprops" - CharacterSet="0" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/DCONFIG_32 /DPPRO /D_CRT_SECURE_NO_WARNINGS" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - SubSystem="0" - BaseAddress="0x1D1A0000" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="PGUpdate|x64" - ConfigurationType="2" - InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pgupdate.vsprops" - CharacterSet="0" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TargetEnvironment="3" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec" - AdditionalOptions="/DCONFIG_64 /D_CRT_SECURE_NO_WARNINGS" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - SubSystem="0" - BaseAddress="0x1D1A0000" - TargetMachine="17" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Header Files" - > - <File - RelativePath="..\Modules\_decimal\docstrings.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\basearith.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\bits.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\constants.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\convolute.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\crt.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\difradix2.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\fnt.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\fourstep.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\mpdecimal.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\numbertheory.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\sixstep.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\transpose.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\typearith.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\umodarith.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\vccompat.h" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\vcstdint.h" - > - </File> - </Filter> - <Filter - Name="Source Files" - > - <File - RelativePath="..\Modules\_decimal\_decimal.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\basearith.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\constants.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\context.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\convolute.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\crt.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\difradix2.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\fnt.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\fourstep.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\io.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\memory.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\mpdecimal.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\numbertheory.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\sixstep.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\transpose.c" - > - </File> - <File - RelativePath="..\Modules\_decimal\libmpdec\vcdiv64.asm" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|x64" - > - <Tool - Name="VCCustomBuildTool" - CommandLine="ml64 /nologo /c /Zi /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
" - Outputs="$(IntDir)\vcdiv64.obj" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|x64" - > - <Tool - Name="VCCustomBuildTool" - CommandLine="ml64 /nologo /c /Zi /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
" - Outputs="$(IntDir)\vcdiv64.obj" - /> - </FileConfiguration> - <FileConfiguration - Name="PGInstrument|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - <FileConfiguration - Name="PGInstrument|x64" - > - <Tool - Name="VCCustomBuildTool" - CommandLine="ml64 /nologo /c /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
" - Outputs="$(IntDir)\vcdiv64.obj" - /> - </FileConfiguration> - <FileConfiguration - Name="PGUpdate|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - <FileConfiguration - Name="PGUpdate|x64" - > - <Tool - Name="VCCustomBuildTool" - CommandLine="ml64 /nologo /c /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
" - Outputs="$(IntDir)\vcdiv64.obj" - /> - </FileConfiguration> - </File> - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="_decimal"
+ ProjectGUID="{0E9791DB-593A-465F-98BC-681011311617}"
+ RootNamespace="_decimal"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd_d.vsprops"
+ CharacterSet="0"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ BaseAddress="0x1D1A0000"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops"
+ CharacterSet="0"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ BaseAddress="0x1D1A0000"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd.vsprops"
+ CharacterSet="0"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="0"
+ BaseAddress="0x1D1A0000"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops"
+ CharacterSet="0"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="0"
+ BaseAddress="0x1D1A0000"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="PGInstrument|Win32"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops"
+ CharacterSet="0"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="0"
+ BaseAddress="0x1D1A0000"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="PGInstrument|x64"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
+ CharacterSet="0"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="0"
+ BaseAddress="0x1D1A0000"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="PGUpdate|Win32"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd.vsprops;.\pgupdate.vsprops"
+ CharacterSet="0"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_32 /DPPRO /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="0"
+ BaseAddress="0x1D1A0000"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="PGUpdate|x64"
+ ConfigurationType="2"
+ InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
+ CharacterSet="0"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/D_CRT_SECURE_NO_WARNINGS /DCONFIG_64 /DMASM"
+ AdditionalIncludeDirectories="..\Modules\_decimal;..\Modules\_decimal\libmpdec"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ SubSystem="0"
+ BaseAddress="0x1D1A0000"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Header Files"
+ >
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\basearith.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\bits.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\constants.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\convolute.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\crt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\difradix2.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\docstrings.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\fnt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\fourstep.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\mpdecimal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\numbertheory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\sixstep.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\transpose.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\typearith.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\umodarith.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\vccompat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\vcstdint.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Source Files"
+ >
+ <File
+ RelativePath="..\Modules\_decimal\_decimal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\basearith.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\constants.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\context.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\convolute.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\crt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\difradix2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\fnt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\fourstep.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\memory.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\mpdecimal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\numbertheory.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\sixstep.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\transpose.c"
+ >
+ </File>
+ <File
+ RelativePath="..\Modules\_decimal\libmpdec\vcdiv64.asm"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="ml64 /nologo /c /Zi /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
"
+ Outputs="$(IntDir)\vcdiv64.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="ml64 /nologo /c /Zi /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
"
+ Outputs="$(IntDir)\vcdiv64.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="PGInstrument|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="PGInstrument|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="ml64 /nologo /c /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
"
+ Outputs="$(IntDir)\vcdiv64.obj"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="PGUpdate|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="PGUpdate|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="ml64 /nologo /c /Fo "$(IntDir)\vcdiv64.obj" "$(InputPath)"
"
+ Outputs="$(IntDir)\vcdiv64.obj"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py index a18debc..38f3443 100644 --- a/Tools/msi/msi.py +++ b/Tools/msi/msi.py @@ -97,7 +97,9 @@ extensions = [ '_sqlite3.pyd', '_hashlib.pyd', '_multiprocessing.pyd', - '_lzma.pyd' + '_lzma.pyd', + '_decimal.pyd', + '_testbuffer.pyd' ] # Well-known component UUIDs |