[Python-Dev] Compilation of "except FooExc as var" adds useless store

Paul Sokolovsky pmiscml at gmail.com
Sun Jan 6 15:11:45 EST 2019


On Mon, 7 Jan 2019 01:14:55 +1100
Steven D'Aprano <steve at pearwood.info> wrote:


> > Thanks, that summarizes it well. And well, my interest is also how
> > non-compliant would be for another Python implementation to act
> > differently, specifically to skip wrapping an except handler body in
> > try-finally (i.e., go back to Python2 behavior). I'm keen to add
> > such an option to my fork of MicroPython.  
> Wouldn't that mean that MicroPython suffers from the
> exception/traceback reference cycle problem? How do you propose to
> solve that?

To answer this, MicroPython doesn't have reference counting and relies
solely on garbage collection, so breaking cycles early wouldn't have
much effect. Breaking stray links to should-be-dead data structures
might (to allow them to be collected sooner rather than later), but
probably not at the expense of introducing extra entry in the block
stack. (That may seems like breadcrumb saving, but saving a few
percents of overhead in many places is how MicroPython achieves
its promise of programming small embedded systems in a very high level


Best regards,
 Paul                          mailto:pmiscml at gmail.com

More information about the Python-Dev mailing list