[comp.lang.c++] GC references wanted

ggreen@cod.NOSC.MIL (George W. Green) (05/25/91)

Can someone point me to any papers or books on garbage
collecting, and implementations in C++?

Thanks in advance,


George Green,  ggreen@nosc.mil

daniel@terra.ucsc.edu (Daniel Edelson) (05/27/91)

In article <3091@cod.NOSC.MIL> ggreen@cod.NOSC.MIL (George W. Green) writes:
>
>Can someone point me to any papers or books on garbage
>collecting, and implementations in C++?
>
>Thanks in advance,
>
>George Green,  ggreen@nosc.mil

Two approaches are discussed in the most recent Usenix C++ conference
proceedings. One uses smart pointers and one eschews smart pointers
in favor of lighter-weight encapsulated pointers that maintain
reference counts. For a copy call the Usenix Association in Berkeley, 
Calif.

Bartlett has a collector that he has made available over anonymous ftp.
I'm not sure what machine it can be obtained from.

Also Boehm has a collector that has been made available.
I also am not sure where to get that.
Would someone care to post that information?

If there are other general, purpose collectors for C++
for which information is available, I would very much like
to hear about them.

---
Daniel Edelson                 |  ``Recycle your garbage. Please don't
daniel@cis.ucsc.edu, or        |    make me come and copy after you.'' 
uunet!ucscc!terra!daniel       |

bartlett@decwrl.dec.com (Joel Bartlett) (05/29/91)

The C++ garbage collector that has been used for the last year within
Digital Equipment Corporation's Western Research Laboratory is available
for public ftp.

The collector provides compacting garbage collection for C++ without
any changes to the C++ compiler or runtime system and with a minimum of
machine specific code (< 20 lines).  Collection is done by a
generational, "mostly-copying" collector.

The system is available for anonymous ftp from 'gatekeeper.dec.com'
[16.1.0.2]. The Scheme->C files are in '/pub/DEC/CCgc'.  Those files include:
 
        26nov90.tar.Z           initial release.  This includes support for
                                Digital VAX and DECstation systems running
                                ULTRIX.
        README                  copyright notice and overview
 
A technical report describing a generational, compacting garbage
collector for C++ is available from Digital's Western Research Lab. For
instructions on how to order a hard copy report or have the Postscript
e-mailed to you, send a message to our technical report server at
Wrl-Techreports@decwrl.dec.com with the word "help" in the subject line.

Joel Bartlett	bartlett@decwrl.dec.com

boehm@parc.xerox.com (Hans Boehm) (05/29/91)

A recent version of our collector can be obtained from

arisia.xeroc.com:~ftp/pub/gc.tar.Z

A much more elaborate version derived from this collector is part of the Xerox
Portable Common Runtime system.  Both collectors do not move objects, and do
not require information about the layout of objects in the heap.  They present
a "malloc" style interface, and are not taylored to C++.  (Most of the known
clients are written in either C or Cedar.)  Bartlett's collector is a copying
compacting collector, and thus differs in all of the above respects.  Both
approaches have their advantages and disadvantages.

The PCR collector relies on PCR threads and on the ability to
intercept certain system calls.  The current PCR package is
significantly more difficult to bring up (especially on a nonSPARC machine)
than the stand-alone collector.  PCR also gives you threads and dynamic
loading.  The PCR collector is generational and largely concurrent.  The
simple version is neither.  (But on a SPARCstation 2 with only a couple of
megabytes of live data, interactive response should be OK with either
one.  With 30 MB of live data on a 16 MB machine, you want the PCR version.
The PCR generational collector exhibits MUCH more local reference behavior.)

The simple collector is described in Boehm & Weiser, "Garbage Collection
in an Uncooperative Environment", Software Practice & Experience, Sept. 88.

Some of the modifications incorporated into the PCR collector are described
in Boehm, Demers, Shenker, "Mostly Parallel Garbage Collection", to appear
in the SIGPLAN PLDI '91 proceedings.

Hans
(boehm@xerox.com)

Joel.Bartlett@sunbrk.FidoNet.Org (Joel Bartlett) (05/29/91)

Reply-To: bartlett@decwrl.dec.com (Joel Bartlett)

The C++ garbage collector that has been used for the last year within
Digital Equipment Corporation's Western Research Laboratory is available
for public ftp.

The collector provides compacting garbage collection for C++ without
any changes to the C++ compiler or runtime system and with a minimum of
machine specific code (< 20 lines).  Collection is done by a
generational, "mostly-copying" collector.

The system is available for anonymous ftp from 'gatekeeper.dec.com'
[16.1.0.2]. The Scheme->C files are in '/pub/DEC/CCgc'.  Those files include:
 
        26nov90.tar.Z           initial release.  This includes support for
                                Digital VAX and DECstation systems running
                                ULTRIX.
        README                  copyright notice and overview
 
A technical report describing a generational, compacting garbage
collector for C++ is available from Digital's Western Research Lab. For
instructions on how to order a hard copy report or have the Postscript
e-mailed to you, send a message to our technical report server at
Wrl-Techreports@decwrl.dec.com with the word "help" in the subject line.

Joel Bartlett	bartlett@decwrl.dec.com

 * Origin: Seaeast - Fidonet<->Usenet Gateway - sunbrk (1:343/15.0)