Patches item #1145039, was opened at 2005-02-20 16:31 Message generated for change (Comment added) made by tim_one You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1145039&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Performance Group: Python 2.5 >Status: Closed >Resolution: Accepted Priority: 5 Submitted By: Neal Norwitz (nnorwitz) Assigned to: Nobody/Anonymous (nobody) Summary: Remove some invariant conditions and assert in ceval Initial Comment: ISTM that if frame->f_exc_type == NULL then exc_value and exc_traceback will also be NULL. I didn't see that this is documented, perhaps I missed it or there is some case when this can occur. If it can occur, we shoul develop a test for it. Assuming this condition is invariant, some simplifications can be made in reset_exc_info which is called once per eval_frame (on function exit). Also, I think there is currently an extra Py_INCREF on Py_None. This occurs when tstate->exc_type == NULL. This patch seems to have little to no effect on performance. I did measure a 0.3% speed improvement. ---------------------------------------------------------------------- >Comment By: Tim Peters (tim_one) Date: 2006-05-26 19:17 Message: Logged In: YES user_id=31435 I got a very tiny bit more out of this and added it to the trunk. Thanks! Note that I left in the disputed Py_INCREF. The more ambitious tim-exc_sanity branch is looking like more trouble than it's worth. ---------------------------------------------------------------------- Comment By: Tim Peters (tim_one) Date: 2006-05-26 14:41 Message: Logged In: YES user_id=31435 Note that the patch is out of date. I agree the invariant you deduced should hold, but in fact it doesn't now, at least due to insane initialization problems in exceptions.c: http://mail.python.org/pipermail/python-dev/2006-May/065248.html I'd like to ensure & exploit a stronger invariant: http://mail.python.org/pipermail/python-dev/2006-May/065231.html but that's stuck for now. I put my work in progress on a new branch: svn+ssh://svn.python.org/python/branches/tim-exc_sanity BTW, I don't agree that the incref on Py_None wasn't needed. Py_None is getting assigned to two new pointers (tstate->exc_type and frame->f_exc_type), so should be incremented twice. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1145039&group_id=5470 _______________________________________________ Patches mailing list [email protected] http://mail.python.org/mailman/listinfo/patches
