develooper Front page | perl.bootstrap | Postings from July 2000

Re: perl 6 requirements

From:
Hildo Biersma
Date:
July 31, 2000 05:40
Subject:
Re: perl 6 requirements
Message ID:
39857379.61B06370@msdw.com
Alan Burlison wrote:
> 
> Hildo Biersma wrote:
> 
> > In item 2.4 (garbage collection), we need to make sure there is an
> > alternative for people that need guaranteed cleanup time of their
> > objects (such as SelectSaver).  To a large extent, this could be solved
> > by having a special kind of 'Guard' object in the language that either
> > is reference-counted or cleaned up when the scope it lives in is exited;
> > the 'Guard' object can then run a 'finalize'-like cleanup method for the
> > object it is guarding.
> 
> The trouble with all automated garbage collection schemes is that they
> tend to be non-deterministic.  Having your program grind to  a halt at
> irregular intervals is not a good thing.  What about some sort of
> hybrid, using reference counting as the first and default way of
> reclaiming memory, with a full GC pass at selectable points, e.g. never,
> every n seconds, whenever a block bigger than a given size is allocated,
> at interpreter instance exit, on demand etc.  The existing refcount
> mechamism has worked well, and has predictable behaviour.  It seems a
> shame to throw it out in favour of something that in most cases probably
> won't work as well.

This issues was raised as well at Chip's talk at TPC.  The answers, as
far as I remember:

- Garbage collection has improved massively over the past decade
  and is now usable.  Example: gcc 3, which ahs switched from manual
  memory management to GC, is faster than before and uses less memory.
- Garbage colelction can be faster than refcounting because
  you save the continual increment/decrement operations that
  plays hell on caches.
- A hybrid scheme has the disadvantages of both: it uses
  extra memory and poluutes cache, and then you still run GC.
- More deterministic GC schemes than stop/start exist and seem to be
tolerable.

And hey, if we go for GC in perl6, we'll be sure to pick a *good*
system.

Hildo



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About