Eric Snow <ericsnowcurren...@gmail.com> added the comment:

Finally had a chance to get back to this.  Here's a new patch in response to 
Nick's review.

My only concern is the new _PyEval_EvalFunctionCode function.  It is basically 
the existing PyEval_EvalCodeEx function with an extra parameter.  I've turned 
PyEval_EvalCodeEx() into a very light wrapper around 
_PyEval_EvalFunctionCode().  This is how I tackled the backwards 
incompatibility of my previous patch.  However, I am nervous about messing 
around with something like PyEval_EvalCodeEx().

I was toying with the idea of doing a more comprehensive refactor involving 
call_function, fast_function, and do_call, which seems like it would be a 
better fix.  However, I'm even more reticent to make that scale of changes, 
especially on something so critical, even if it seems right to me currently.

I figured the safe thing for now would be to name the new function with a 
leading underscore to mark it as private.

Here are the results from my cursory check before and after my latest patch:

BEFORE
3 tests failed:
    test_distutils test_packaging test_socket
[293234 refs]
real    14m40.578s
user    11m43.547s
sys     0m52.096s

AFTER
3 tests failed:
    test_distutils test_packaging test_socket
[293171 refs]
real    14m33.785s
user    11m55.437s
sys     0m53.850s

----------
Added file: http://bugs.python.org/file23149/called_function_2.diff

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12857>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to