[Python-Dev] Memory management in the AST parser & compiler
Thomas Lee
krumms at gmail.com
Wed Nov 16 13:11:26 CET 2005
By the way, I liked the sound of the arena/pool tree - really good idea.
Thomas Lee wrote:
>Niko Matsakis wrote:
>
>
>
>>>Boy am I wanting RAII from C++ for automatic freeing when scope is
>>>left. Maybe we need to come up with a similar thing, like all memory
>>>that should be freed once a scope is left must use some special struct
>>>that stores references to all created memory locally and then a free
>>>call must be made at all exit points in the function using the special
>>>struct. Otherwise the pointer is stored in the arena and handled
>>>en-mass later.
>>>
>>>
>>>
>>>
>>That made sense. I think I'd be opposed to what you describe here
>>just because I think anything which *requires* that cleanup code be
>>placed on every function is error prone.
>>
>>
>>
>>
>>
>Placing it in every function isn't really the problem: at the moment
>it's more the fact we have to keep track of too many variables at any
>given time to properly deallocate it all. Cleanup code gets tricky very
>fast.
>
>Then it gets further complicated by the fact that
>stmt_ty/expr_ty/mod_ty/etc. deallocate members (usually asdl_seq
>instances in my experience) - so if a construction takes place, all of a
>sudden you have to make sure you don't deallocate those members a second
>time in the cleanup code :S it gets tricky very quickly.
>
>Even if it meant we had just one function call - one, safe function call
>that deallocated all the memory allocated within a function - that we
>had to put before each and every return, that's better than what we
>have. Is it the best solution? Maybe not. But that's what we're looking
>for here I guess :)
>
>_______________________________________________
>Python-Dev mailing list
>Python-Dev at python.org
>http://mail.python.org/mailman/listinfo/python-dev
>Unsubscribe: http://mail.python.org/mailman/options/python-dev/krumms%40gmail.com
>
>
>
More information about the Python-Dev
mailing list