>>>>> "DL" == David Leeper <[EMAIL PROTECTED]> writes:

  DL> If I know what I want to destroy and when, can I just turn off Parrot's
  DL> automatic garbage collector/memory compactor and send it instructons on
  DL> what I want deleted?

i have to jump in here because i am seeing the classic discussion of A
and B and they are not the same things. in parrot, GC is separated from
DoD. you seem to always conflate the two. in general destruction is not
related to GC, it is used to clean up stuff like file handles, complex
objects, deal with persistance etc. a destroyed object may have its
space reclaimed at some future time. destruction is more of a language
feature and GC is more of a VM feature. they are not the same thing and
you shouldn't keep talking about them as if they are con-joined
twins. you can cause object destruction when you want in most langs that
parrot will support. and you can probably initiate a GC pass from most
langs if they have an API to get into parrot's GC. but you don't have to
do one to do the other. many heap allocated things won't be objects
(buffers, strings, etc.) and will be purely GC'ed as needed. some
objects can be destroyed simply when their context exits (e.g. leaving a
block and destroying any my'ed objects which are dead). those will then
be marked for later GC.

so please note that destruction is not collection and they are and can
be separately controlled. you have to stop thinking c++ (which will
probably NOT be directly supported by parrot) and think perlish (or
as other dynamic langs) more. perl doesn't have a delete thing and
doesn't need one. it can detect DoD on its own and then let parrot GC
them later. memory usage and objects are not the same.

uri

-- 
Uri Guttman  ------  [EMAIL PROTECTED]  -------- http://www.stemsystems.com
-- Stem is an Open Source Network Development Toolkit and Application Suite -
----- Stem and Perl Development, Systems Architecture, Design and Coding ----
Search or Offer Perl Jobs  ----------------------------  http://jobs.perl.org

Reply via email to