Eldar Abusalimov added the comment:
@Mark, that OK, for the issue without a patch. :)
I could make a patch, but I'm not sure whether the proposed behavior is right.
It could be considered arguable, I guess...
--
___
Python tracker
Eldar Abusalimov added the comment:
You're welcome, and thank you too for reviewing and merging it.
--
___
Python tracker
<http://bugs.python.org/is
Eldar Abusalimov added the comment:
I feel a bit uneasy, but... any news on this?
--
___
Python tracker
<http://bugs.python.org/issue22735>
___
___
Python-bug
Eldar Abusalimov added the comment:
ping?
--
___
Python tracker
<http://bugs.python.org/issue22735>
___
___
Python-bugs-list mailing list
Unsubscribe:
Eldar Abusalimov added the comment:
Thank you for your replies.
I don't think forbidding reentrancy is a good idea, and I'm against it for the
following reasons.
First of all, naive prohibition of type_set_bases within mro() on a class
doesn't save from mro() reentrancy:
Changes by Eldar Abusalimov :
--
nosy: +abusalimov
___
Python tracker
<http://bugs.python.org/issue20440>
___
___
Python-bugs-list mailing list
Unsubscribe:
Eldar Abusalimov added the comment:
It is possible to get a partially initialized class from inside a custom mro().
And extending such type results in passing NULL to PySequence_List inside
mro_implementation, which in turn leads to PyErr_BadInternalCall. #22735 has a
test reproducing it
Eldar Abusalimov added the comment:
Just in case, the previous message about reviewing is about [PATCH 07/15] (fix)
handle tp_mro overwritten through reentrancy
--
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37040/0015-fix-super_getattro-check-type-tp_mro-and-refactory.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37039/0014-test-crasher-attr-lookup-on-super-with-uninitialized.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37038/0013-fix-mro_implementation-check-base-tp_mro-is-not-NULL.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37036/0011-test-behavior-error-on-extending-an-incomplete-type.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37037/0012-minor-mro_implementation-pmerge-refactory.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37035/0010-fix-type_set_bases-inherit-cycles-and-reent-checks.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37034/0009-minor-PyType_IsSubtype-extract-a-check-using-tp_base.patch
___
Python tracker
<http://bugs.python.org/issue22
Eldar Abusalimov added the comment:
This is a patch with most significant changes, please review it carefully.
--
Added file:
http://bugs.python.org/file37032/0007-fix-handle-tp_mro-overwritten-through-reentrancy.patch
___
Python tracker
<h
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37033/0008-test-crashers-tp_base-tp_subclasses-inherit-cycles.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37031/0006-minor-mro_subclasses-loop-over-a-list-of-subclasses.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37030/0005-minor-type_set_bases-extract-add_all_subclasses.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37028/0003-minor-mro_internal-extract-mro_invoke-and-mro_check.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37027/0002-test-crashers-NULL-old_mro-and-over-decref-on-reent.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37029/0004-minor-type_set_bases-move-undoing-logic-to-the-end.patch
___
Python tracker
<http://bugs.python.org/issue22
Changes by Eldar Abusalimov :
Added file:
http://bugs.python.org/file37026/0001-minor-test_mro-test-case-stub-and-helpers.patch
___
Python tracker
<http://bugs.python.org/issue22
New submission from Eldar Abusalimov:
The attached patch fixes several bugs revealed by providing a custom mro().
Most of these bugs are reentrancy issues (mainly, cls.__bases__ assignment
within mro() which causes incorrect refcounting), but there are also some
issues when using incomplete
New submission from Eldar Abusalimov:
When a new class is constructed Python checks for possible metaclass conflicts
within bases and an explicitly specified one, if any, choosing the best
available (the most specialized) one. That is the following implication is
expected:
issubclass(B
25 matches
Mail list logo