Commit aae5c3a8 authored by Stefan Krah's avatar Stefan Krah

Merge.

parents 5100171d f4228b0e
......@@ -23,7 +23,7 @@
#define PY_RELEASE_SERIAL 2
/* Version as a string */
#define PY_VERSION "3.3.0a2"
#define PY_VERSION "3.3.0a2+"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
......
......@@ -2,10 +2,10 @@
Python News
+++++++++++
What's New in Python 3.3.0 Alpha 2?
What's New in Python 3.3.0 Alpha 3?
===================================
*Release date: 01-Apr-2012*
*Release date: XXXX-XX-XX*
Core and Builtins
-----------------
......@@ -13,6 +13,22 @@ 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?
===================================
*Release date: 01-Apr-2012*
Core and Builtins
-----------------
- Issue #1683368: object.__new__ and object.__init__ raise a TypeError if they
are passed arguments and their complementary method is not overridden.
......@@ -40,10 +56,6 @@ Core and Builtins
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.
- Issue #14300: Under Windows, sockets created using socket.dup() now allow
overlapped I/O. Patch by sbt.
......
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment