Benjamin Peterson benja...@python.org added the comment:
Fixed in r70463.
--
resolution: - fixed
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue4034
___
STINNER Victor victor.stin...@haypocalc.com added the comment:
@benjamin.peterson: Cool! Thanks.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue4034
___
STINNER Victor victor.stin...@haypocalc.com added the comment:
Ping. benjamin.peterson's patch fixes the very strange issue, and I
would like to see it upstream.
About clearing the frame/traceback, it's another issue (#1565525).
--
___
Python
Antoine Pitrou pit...@free.fr added the comment:
One possibility would be to only allow deleting the tb_frame attribute
(setting it to NULL), not setting it to an arbitrary object.
--
nosy: +pitrou
___
Python tracker rep...@bugs.python.org
STINNER Victor [EMAIL PROTECTED] added the comment:
My patch causes a crash with:
import sys
try:
raise Exception(hm!)
except:
t, v, tb = sys.exc_info()
tb.tb_frame = {}
raise t, v, tb
Change tb.tb_frame value is not a good idea. It's better to clear
locals/globals: see
STINNER Victor [EMAIL PROTECTED] added the comment:
Instead of converting tb_frame attribute to read only, I prefer to
allow the user to clear the traceback to free some memory bytes. So I
wrote a different patch.
marge$ ./python
Python 2.7a0 (trunk:66786M, Oct 7 2008, 00:48:32)
try:
... a
Benjamin Peterson [EMAIL PROTECTED] added the comment:
Here's a patch. It looks like traceback just needs to use a struct
sequence instead of providing tp_getattr its self.
--
keywords: +needs review, patch
nosy: +benjamin.peterson
Added file:
Greg Hazel [EMAIL PROTECTED] added the comment:
There seem to be some other exception type and string inconsistencies,
but they are not new to Python 2.6
tb.tb_frame = None
Traceback (most recent call last):
File stdin, line 1, in module
TypeError: 'traceback' object has only read-only
New submission from Greg Hazel [EMAIL PROTECTED]:
Unrelated to this bug, I would like to have the ability to remove the
reference to the frame from the traceback object. Specifically so that
the traceback object could be stored for a while without keeping all
the locals alive as well.
So,