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@python.org >http://mail.python.org/mailman/listinfo/python-dev >Unsubscribe: >http://mail.python.org/mailman/options/python-dev/krumms%40gmail.com > > > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com