On 2014-03-05, 4:54 PM, Nick Coghlan wrote: > On 6 Mar 2014 02:43, "Antoine Pitrou" <solipsis at pitrou.net> wrote: >> Le 05/03/2014 17:37, Victor Stinner a écrit : >> >>> Python 3.4 introduced frame.clear(), but frame.clear() raises an >>> RuntimeError if the frame is still running. And it doesn't break all >>> reference cycles. >>> >>> An obvious workaround is to store the traceback as text, but this >>> operation is "expensive" especially if the traceback is only needed in >>> rare cases. >> >> Another "obvious" workaround is to call frame.clear() from the parent > function (i.e. have a dedicated wrapping layer). > > Guido had a fix in mind - splitting traceback formatting into two pieces. > The first would convert a traceback to a sequence of named tuples, the > second would do the actual string formatting. I don't like the idea of using tuples instead of tracebacks in 'exception.__traceback__'. Lots of introspection and logging tools except to find tracebacks in exceptions, and do custom formatting or submitting data to remote servers for further analysis (sometimes with values of local variables in frames). If asyncio starts stripping exception.__traceback__ and using namedtuples, it will make it harder to write/integrate such tools. Yury
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4