On Wed, Sep 07, 2005 at 02:37:33PM +0200, Leopold Toetsch wrote: > Nicholas Clark wrote: > >For starters, in glossary.pod I'm failing to find definitions for > >"destruction" and "finalisation". One is about cleanup actions on objects/ > >PMCs that need something actively cleaned up, rendering active objects down > >to bare memory, and the other is about reclaiming bare memory for re-use. > > 1) destruction: low-level object cleanup like free(3) of malloced memory > 2) finalisation: high-level, user-visible, overridable, e.g. close DB > connection
Thanks. I added 2 paragraphs to glossary.pod to record this. > > does parrot make any guarantee that all objects will be rendered down to > > bare memory before program exit? > > Parrot calls the "destroy" vtable function for all PMCs that have marked > themselves with PObj_active_destroy_FLAG, when the object gets recycled > due to GC *or* at program exit. > > There is no finalise or finalize vtable function yet. I think that these > two task should be distinct It seems reasonable to make these 2 tasks distinct, given that only finali[zs]e needs to be explicit, and avoiding destroy with exit() could be a big efficiency gain. But what we have is already useful enough for Ponie. Thanks for the clarification. Nicholas Clark