mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Merged revisions 60383-60407 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r60388 | thomas.heller | 2008-01-28 09:44:13 +0100 (Mon, 28 Jan 2008) | 1 line Revert rev. 59925, it breaks comtypes (I need to further examine this). ........ r60397 | raymond.hettinger | 2008-01-28 21:34:33 +0100 (Mon, 28 Jan 2008) | 5 lines Make PySet_Add() work with frozensets. Works like PyTuple_SetItem() to build-up values in a brand new frozenset. Also, PyFrozenSet_New() is now guaranteed to produce a distinct new frozenset. ........ r60398 | raymond.hettinger | 2008-01-28 22:34:30 +0100 (Mon, 28 Jan 2008) | 1 line Let marshal built-up sets and frozensets one element at a time (without creating an intermediate tuple). ........ r60399 | raymond.hettinger | 2008-01-28 22:47:42 +0100 (Mon, 28 Jan 2008) | 1 line Factor-out common code with a new macro ........ r60400 | raymond.hettinger | 2008-01-28 22:48:07 +0100 (Mon, 28 Jan 2008) | 1 line Factor-out common code with a new macro ........ r60401 | raymond.hettinger | 2008-01-28 22:51:25 +0100 (Mon, 28 Jan 2008) | 1 line Removed unnecessary conditional (spotted by Neal Norwitz). ........ r60403 | gregory.p.smith | 2008-01-29 00:21:00 +0100 (Tue, 29 Jan 2008) | 4 lines Disable use of BerkeleyDB 4.6.x to see what the odd platform buildbots think. In particular, neal norwitz has traced an Ubuntu sparc64 crash to the Lib/test/bsddb/test_basics.py test when opening a db with DB_THREAD. ........ r60405 | brett.cannon | 2008-01-29 05:13:07 +0100 (Tue, 29 Jan 2008) | 2 lines Fix the reindent rule to use $(BUILDPYTHON). ........ r60406 | brett.cannon | 2008-01-29 05:18:04 +0100 (Tue, 29 Jan 2008) | 3 lines Update Vim syntax highlighting to specify what revision was used to generate the file. ........ r60407 | brett.cannon | 2008-01-29 05:20:56 +0100 (Tue, 29 Jan 2008) | 2 lines Ignore .pyc and .pyo files. ........
This commit is contained in:
		
							parent
							
								
									1fd77708e3
								
							
						
					
					
						commit
						fd66e51c4c
					
				
					 11 changed files with 51 additions and 55 deletions
				
			
		|  | @ -50,6 +50,12 @@ The following type check macros work on pointers to any Python object. Likewise, | ||||||
| the constructor functions work with any iterable Python object. | the constructor functions work with any iterable Python object. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | .. cfunction:: int PySet_Check(PyObject *p) | ||||||
|  | 
 | ||||||
|  |    Return true if *p* is a :class:`set` object or an instance of a subtype. | ||||||
|  | 
 | ||||||
|  |    .. versionadded:: 2.6 | ||||||
|  | 
 | ||||||
| .. cfunction:: int PyAnySet_Check(PyObject *p) | .. cfunction:: int PyAnySet_Check(PyObject *p) | ||||||
| 
 | 
 | ||||||
|    Return true if *p* is a :class:`set` object, a :class:`frozenset` object, or an |    Return true if *p* is a :class:`set` object, a :class:`frozenset` object, or an | ||||||
|  | @ -84,6 +90,11 @@ the constructor functions work with any iterable Python object. | ||||||
|    set on success or *NULL* on failure.  Raise :exc:`TypeError` if *iterable* is |    set on success or *NULL* on failure.  Raise :exc:`TypeError` if *iterable* is | ||||||
|    not actually iterable. |    not actually iterable. | ||||||
| 
 | 
 | ||||||
|  |    .. versionchanged:: 2.6 | ||||||
|  |       Now guaranteed to return a brand-new :class:`frozenset`.  Formerly, | ||||||
|  |       frozensets of zero-length were a singleton.  This got in the way of  | ||||||
|  |       building-up new frozensets with :meth:`PySet_Add`. | ||||||
|  | 
 | ||||||
| The following functions and macros are available for instances of :class:`set` | The following functions and macros are available for instances of :class:`set` | ||||||
| or :class:`frozenset` or instances of their subtypes. | or :class:`frozenset` or instances of their subtypes. | ||||||
| 
 | 
 | ||||||
|  | @ -110,9 +121,6 @@ or :class:`frozenset` or instances of their subtypes. | ||||||
|    the *key* is unhashable. Raise :exc:`PyExc_SystemError` if *anyset* is not a |    the *key* is unhashable. Raise :exc:`PyExc_SystemError` if *anyset* is not a | ||||||
|    :class:`set`, :class:`frozenset`, or an instance of a subtype. |    :class:`set`, :class:`frozenset`, or an instance of a subtype. | ||||||
| 
 | 
 | ||||||
| The following functions are available for instances of :class:`set` or its |  | ||||||
| subtypes but not for instances of :class:`frozenset` or its subtypes. |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| .. cfunction:: int PySet_Add(PyObject *set, PyObject *key) | .. cfunction:: int PySet_Add(PyObject *set, PyObject *key) | ||||||
| 
 | 
 | ||||||
|  | @ -122,6 +130,14 @@ subtypes but not for instances of :class:`frozenset` or its subtypes. | ||||||
|    Raise a :exc:`SystemError` if *set* is an not an instance of :class:`set` or its |    Raise a :exc:`SystemError` if *set* is an not an instance of :class:`set` or its | ||||||
|    subtype. |    subtype. | ||||||
| 
 | 
 | ||||||
|  |    .. versionchanged:: 2.6 | ||||||
|  |       Now works with instances of :class:`frozenset` or its subtypes. | ||||||
|  |       Like :cfunc:`PyTuple_SetItem` in that it can be used to fill-in the | ||||||
|  |       values of brand new frozensets before they are exposed to other code. | ||||||
|  | 
 | ||||||
|  | The following functions are available for instances of :class:`set` or its | ||||||
|  | subtypes but not for instances of :class:`frozenset` or its subtypes. | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| .. cfunction:: int PySet_Discard(PyObject *set, PyObject *key) | .. cfunction:: int PySet_Discard(PyObject *set, PyObject *key) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -74,6 +74,8 @@ PyAPI_DATA(PyTypeObject) PySetIter_Type; | ||||||
| 	(Py_TYPE(ob) == &PySet_Type || Py_TYPE(ob) == &PyFrozenSet_Type || \ | 	(Py_TYPE(ob) == &PySet_Type || Py_TYPE(ob) == &PyFrozenSet_Type || \ | ||||||
| 	  PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ | 	  PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ | ||||||
| 	  PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) | 	  PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) | ||||||
|  | #define PySet_Check(ob) \ | ||||||
|  | 	(Py_TYPE(ob) == &PySet_Type || PyType_IsSubtype(Py_TYPE(ob), &PySet_Type)) | ||||||
| 
 | 
 | ||||||
| PyAPI_FUNC(PyObject *) PySet_New(PyObject *); | PyAPI_FUNC(PyObject *) PySet_New(PyObject *); | ||||||
| PyAPI_FUNC(PyObject *) PyFrozenSet_New(PyObject *); | PyAPI_FUNC(PyObject *) PyFrozenSet_New(PyObject *); | ||||||
|  |  | ||||||
|  | @ -123,11 +123,5 @@ def c_string(init): | ||||||
|         self.failUnlessEqual(strtok(None, b"\n"), "c") |         self.failUnlessEqual(strtok(None, b"\n"), "c") | ||||||
|         self.failUnlessEqual(strtok(None, b"\n"), None) |         self.failUnlessEqual(strtok(None, b"\n"), None) | ||||||
| 
 | 
 | ||||||
|     def test_NULL_funcptr(self): |  | ||||||
|         tp = CFUNCTYPE(c_int) |  | ||||||
|         func = tp() # NULL function pointer |  | ||||||
|         # raise a ValueError when we try to call it |  | ||||||
|         self.assertRaises(ValueError, func) |  | ||||||
| 
 |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     unittest.main() |     unittest.main() | ||||||
|  |  | ||||||
|  | @ -1043,7 +1043,7 @@ config.status:	$(srcdir)/configure | ||||||
| 
 | 
 | ||||||
| # Run reindent on the library | # Run reindent on the library | ||||||
| reindent: | reindent: | ||||||
| 	./python$(EXEEXT) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib | 	./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib | ||||||
| 
 | 
 | ||||||
| # Rerun configure with the same options as it was run last time, | # Rerun configure with the same options as it was run last time, | ||||||
| # provided the config.status script exists | # provided the config.status script exists | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| " Auto-generated Vim syntax file for Python | " Auto-generated Vim syntax file for Python (trunk: r60376M). | ||||||
| " | " | ||||||
| " To use: copy or symlink to ~/.vim/syntax/python.vim | " To use: copy or symlink to ~/.vim/syntax/python.vim | ||||||
| 
 | 
 | ||||||
|  | @ -63,7 +63,7 @@ endif | ||||||
| 
 | 
 | ||||||
| if exists("python_highlight_builtins") | if exists("python_highlight_builtins") | ||||||
|   syn keyword pythonBuiltin    Ellipsis False None NotImplemented True __debug__ |   syn keyword pythonBuiltin    Ellipsis False None NotImplemented True __debug__ | ||||||
|   syn keyword pythonBuiltin    __import__ abs all any basestring bool |   syn keyword pythonBuiltin    __import__ abs all any bool | ||||||
|   syn keyword pythonBuiltin    buffer callable chr classmethod cmp |   syn keyword pythonBuiltin    buffer callable chr classmethod cmp | ||||||
|   syn keyword pythonBuiltin    complex copyright credits delattr dict |   syn keyword pythonBuiltin    complex copyright credits delattr dict | ||||||
|   syn keyword pythonBuiltin    dir divmod enumerate eval exec exit |   syn keyword pythonBuiltin    dir divmod enumerate eval exec exit | ||||||
|  | @ -73,7 +73,8 @@ if exists("python_highlight_builtins") | ||||||
|   syn keyword pythonBuiltin    max min object oct open ord pow property quit |   syn keyword pythonBuiltin    max min object oct open ord pow property quit | ||||||
|   syn keyword pythonBuiltin    range reload repr reversed round |   syn keyword pythonBuiltin    range reload repr reversed round | ||||||
|   syn keyword pythonBuiltin    set setattr slice sorted staticmethod str sum |   syn keyword pythonBuiltin    set setattr slice sorted staticmethod str sum | ||||||
|   syn keyword pythonBuiltin    super tuple type unichr unicode vars zip |   syn keyword pythonBuiltin    super trunc tuple type unicode vars  | ||||||
|  |   syn keyword pythonBuiltin    zip | ||||||
| 
 | 
 | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,9 +4,8 @@ | ||||||
| Not necessarily sensical or comprehensive (assume that if one exception is | Not necessarily sensical or comprehensive (assume that if one exception is | ||||||
| highlighted that all are, for instance). | highlighted that all are, for instance). | ||||||
| 
 | 
 | ||||||
| Highlighting extraneous whitespace at the end of the line is not represented | Extraneous trailing whitespace can't be tested because of svn pre-commit hook | ||||||
| here as all trailing whitespace is automatically removed from .py files in the | checks for such things. | ||||||
| repository. |  | ||||||
| 
 | 
 | ||||||
| """ | """ | ||||||
| # Comment | # Comment | ||||||
|  |  | ||||||
|  | @ -6,8 +6,9 @@ | ||||||
| import exceptions | import exceptions | ||||||
| import builtins | import builtins | ||||||
| from string import Template | from string import Template | ||||||
|  | from sys import subversion | ||||||
| 
 | 
 | ||||||
| comment_header = '''" Auto-generated Vim syntax file for Python. | comment_header = '''" Auto-generated Vim syntax file for Python (%s: r%s). | ||||||
| " | " | ||||||
| " To use: copy or symlink to ~/.vim/syntax/python.vim''' | " To use: copy or symlink to ~/.vim/syntax/python.vim''' | ||||||
| 
 | 
 | ||||||
|  | @ -162,7 +163,7 @@ def fill_stmt(iterable, fill_len): | ||||||
| def main(file_path): | def main(file_path): | ||||||
|     with open(file_path, 'w') as FILE: |     with open(file_path, 'w') as FILE: | ||||||
|         # Comment for file |         # Comment for file | ||||||
|         print>>FILE, comment_header |         print>>FILE, comment_header % subversion[1:] | ||||||
|         print>>FILE, '' |         print>>FILE, '' | ||||||
|         # Statements at start of file |         # Statements at start of file | ||||||
|         print>>FILE, statement_header |         print>>FILE, statement_header | ||||||
|  |  | ||||||
|  | @ -3414,11 +3414,6 @@ CFuncPtr_call(CFuncPtrObject *self, PyObject *inargs, PyObject *kwds) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	pProc = *(void **)self->b_ptr; | 	pProc = *(void **)self->b_ptr; | ||||||
| 	if (pProc == NULL) { |  | ||||||
| 		PyErr_SetString(PyExc_ValueError, |  | ||||||
| 				"attempt to call NULL function pointer"); |  | ||||||
| 		return NULL; |  | ||||||
| 	} |  | ||||||
| #ifdef MS_WIN32 | #ifdef MS_WIN32 | ||||||
| 	if (self->index) { | 	if (self->index) { | ||||||
| 		/* It's a COM method */ | 		/* It's a COM method */ | ||||||
|  |  | ||||||
|  | @ -2127,17 +2127,7 @@ PySet_New(PyObject *iterable) | ||||||
| PyObject * | PyObject * | ||||||
| PyFrozenSet_New(PyObject *iterable) | PyFrozenSet_New(PyObject *iterable) | ||||||
| { | { | ||||||
| 	PyObject *args, *result; | 	return make_new_set(&PyFrozenSet_Type, iterable); | ||||||
| 
 |  | ||||||
| 	if (iterable == NULL) |  | ||||||
| 		args = PyTuple_New(0); |  | ||||||
| 	else |  | ||||||
| 		args = PyTuple_Pack(1, iterable); |  | ||||||
| 	if (args == NULL) |  | ||||||
| 		return NULL; |  | ||||||
| 	result = frozenset_new(&PyFrozenSet_Type, args, NULL); |  | ||||||
| 	Py_DECREF(args); |  | ||||||
| 	return result; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Py_ssize_t | Py_ssize_t | ||||||
|  | @ -2153,7 +2143,7 @@ PySet_Size(PyObject *anyset) | ||||||
| int | int | ||||||
| PySet_Clear(PyObject *set) | PySet_Clear(PyObject *set) | ||||||
| { | { | ||||||
| 	if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) { | 	if (!PySet_Check(set)) { | ||||||
| 		PyErr_BadInternalCall(); | 		PyErr_BadInternalCall(); | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  | @ -2173,7 +2163,7 @@ PySet_Contains(PyObject *anyset, PyObject *key) | ||||||
| int | int | ||||||
| PySet_Discard(PyObject *set, PyObject *key) | PySet_Discard(PyObject *set, PyObject *key) | ||||||
| { | { | ||||||
| 	if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) { | 	if (!PySet_Check(set)) { | ||||||
| 		PyErr_BadInternalCall(); | 		PyErr_BadInternalCall(); | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  | @ -2181,13 +2171,13 @@ PySet_Discard(PyObject *set, PyObject *key) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int | int | ||||||
| PySet_Add(PyObject *set, PyObject *key) | PySet_Add(PyObject *anyset, PyObject *key) | ||||||
| { | { | ||||||
| 	if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) { | 	if (!PyAnySet_Check(anyset)) { | ||||||
| 		PyErr_BadInternalCall(); | 		PyErr_BadInternalCall(); | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
| 	return set_add_key((PySetObject *)set, key); | 	return set_add_key((PySetObject *)anyset, key); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int | int | ||||||
|  | @ -2224,7 +2214,7 @@ _PySet_NextEntry(PyObject *set, Py_ssize_t *pos, PyObject **key, long *hash) | ||||||
| PyObject * | PyObject * | ||||||
| PySet_Pop(PyObject *set) | PySet_Pop(PyObject *set) | ||||||
| { | { | ||||||
| 	if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) { | 	if (!PySet_Check(set)) { | ||||||
| 		PyErr_BadInternalCall(); | 		PyErr_BadInternalCall(); | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 	} | 	} | ||||||
|  | @ -2234,7 +2224,7 @@ PySet_Pop(PyObject *set) | ||||||
| int | int | ||||||
| _PySet_Update(PyObject *set, PyObject *iterable) | _PySet_Update(PyObject *set, PyObject *iterable) | ||||||
| { | { | ||||||
| 	if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) { | 	if (!PySet_Check(set)) { | ||||||
| 		PyErr_BadInternalCall(); | 		PyErr_BadInternalCall(); | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  | @ -2330,7 +2320,6 @@ test_c_api(PySetObject *so) | ||||||
| 	f = PyFrozenSet_New(dup); | 	f = PyFrozenSet_New(dup); | ||||||
| 	assert(PySet_Size(f) == 3); | 	assert(PySet_Size(f) == 3); | ||||||
| 	assert(PyFrozenSet_CheckExact(f)); | 	assert(PyFrozenSet_CheckExact(f)); | ||||||
| 	assertRaises(PySet_Add(f, elem) == -1, PyExc_SystemError); |  | ||||||
| 	assertRaises(PySet_Discard(f, elem) == -1, PyExc_SystemError); | 	assertRaises(PySet_Discard(f, elem) == -1, PyExc_SystemError); | ||||||
| 	assertRaises(PySet_Pop(f) == NULL, PyExc_SystemError); | 	assertRaises(PySet_Pop(f) == NULL, PyExc_SystemError); | ||||||
| 	Py_DECREF(f); | 	Py_DECREF(f); | ||||||
|  |  | ||||||
|  | @ -812,7 +812,7 @@ r_object(RFILE *p) | ||||||
| 			retval = NULL; | 			retval = NULL; | ||||||
| 			break; | 			break; | ||||||
| 		} | 		} | ||||||
| 		v = PyTuple_New((int)n); |                 v = (type == TYPE_SET) ? PySet_New(NULL) : PyFrozenSet_New(NULL); | ||||||
| 		if (v == NULL) { | 		if (v == NULL) { | ||||||
| 			retval = NULL; | 			retval = NULL; | ||||||
| 			break; | 			break; | ||||||
|  | @ -827,18 +827,14 @@ r_object(RFILE *p) | ||||||
| 				v = NULL; | 				v = NULL; | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
| 			PyTuple_SET_ITEM(v, (int)i, v2); | 			if (PySet_Add(v, v2) == -1) { | ||||||
|  |                                 Py_DECREF(v); | ||||||
|  |                                 Py_DECREF(v2); | ||||||
|  |                                 v = NULL; | ||||||
|  |                                 break; | ||||||
|  |                         } | ||||||
| 		} | 		} | ||||||
| 		if (v == NULL) { | 		retval = v; | ||||||
| 			retval = NULL; |  | ||||||
| 			break; |  | ||||||
| 		} |  | ||||||
| 		if (type == TYPE_SET) |  | ||||||
| 			v3 = PySet_New(v); |  | ||||||
| 		else |  | ||||||
| 			v3 = PyFrozenSet_New(v); |  | ||||||
| 		Py_DECREF(v); |  | ||||||
| 		retval = v3; |  | ||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	case TYPE_CODE: | 	case TYPE_CODE: | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								setup.py
									
										
									
									
									
								
							|  | @ -652,7 +652,10 @@ def detect_modules(self): | ||||||
|         # a release.  Most open source OSes come with one or more |         # a release.  Most open source OSes come with one or more | ||||||
|         # versions of BerkeleyDB already installed. |         # versions of BerkeleyDB already installed. | ||||||
| 
 | 
 | ||||||
|         max_db_ver = (4, 6) |         max_db_ver = (4, 5)  # XXX(gregory.p.smith): 4.6 "works" but seems to | ||||||
|  |                              # have issues on many platforms.  I've temporarily | ||||||
|  |                              # disabled 4.6 to see what the odd platform | ||||||
|  |                              # buildbots say. | ||||||
|         min_db_ver = (3, 3) |         min_db_ver = (3, 3) | ||||||
|         db_setup_debug = False   # verbose debug prints from this script? |         db_setup_debug = False   # verbose debug prints from this script? | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Christian Heimes
						Christian Heimes