On Tue, 17 Nov 2009 at 10:31, Greg Hewgill wrote:
I've constructed an example program that does not leak memory in Python 2.x, but causes unbounded memory allocation in Python 3.1. Here is the code:import gc import sys class E(Exception): def __init__(self, fn): self.fn = fn def call(self): self.fn() def f(): raise E(f) a = E(f) while True: print(len(gc.get_objects())) try: a.call() except E: # get exception value in a python2/3 portable way a = sys.exc_info()[1] Every time through the loop, the length of gc.get_objects() increases by 7 under Python 3.1. I believe this is a regression error, since Python 2.x does not exhibit the same behaviour. Can anybody confirm this?
I think you want to take a look at PEP 3134. And then please file a doc bug to have someone update the documentation of sys.exc_info, since the advice in the warning box is no longer valid in Python 3. --David (RDM) _______________________________________________ Python-Dev mailing list [email protected] http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
