[comp.compilers] Intros to scavenging GC

gilstrap@sbctri.sbc.com (Brian R. Gilstrap) (04/30/91)

I'm not a compiler writer (though I do read this group regularly...yes, I
get left behing with moderate frequency :), however, I'm interested in the
possibility of implementing scavenging garbage collection in C++ classes.
I realize that there's no way to make it totally transparent to programmers
without compiler support, but I'm curious about just how close one can get
and whether the resulting classes would be easy enough to use that there
would be a win for programmers.

So, I am hoping to get references to introductory articles on garbage 
collection...

Thanks!

Brian R. Gilstrap
gilstrap@calvin.sbc.com
gilstrap@sbctri.sbc.com
[Daniel Ross Edelson (daniel@cis.ucsc.edu) wrote a long paper, probably his
thesis, on the topic of garbage collected C++.  A postscript version can be
FTPed from midgard.cs.edu:~ftp/pub/tr/ucsc-crl-91-19.ps.Z.  It's fairly long,
106 pages including all the source code. -John]
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

moss@cs.umass.edu (Eliot Moss) (04/30/91)

Dan Edelson's thesis does not discuss scavenging style GC, though it is a
copying scheme if I recall correctly. The original scavenging article was
by David Ungar in the Proceedings of the ACM SIGSOFT/SIGPLAN Software
Engineering Symposium on Practical Software Development Environments. The
Wilson and Moher article in OOPSLA 89, which gives a lot of background on
gc techniques. Note that in order to do scavenging you have to do store
checks and manage remembered sets, which incurs overhead on every pointers
store (at least stores of pointers to instances of the classes you
scavenge). Note also that we are working on quality compiler support for
scavenging in the GNU Modula-3 effort of my research group at UMass.
--
		J. Eliot B. Moss, Assistant Professor
		Department of Computer and Information Science
		Lederle Graduate Research Center
		University of Massachusetts
		Amherst, MA  01003
		(413) 545-4206, 545-1249 (fax); Moss@cs.umass.edu
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

pardo@june.cs.washington.edu (David Keppel) (04/30/91)

gilstrap@sbctri.sbc.com (Brian R. Gilstrap) writes:
>[Articles on garbage collection?]

Bunches of stuff from comp.os.research and back issues of
comp.compilers.

	;-D on  ( I've got some other garbage here, too... )  Pardo

----------------------------------------------------------------------
>From `comp.os.research' a list of gc position papers.

From: ncjuul@diku.dk (Niels Christian Juul)
Newsgroups: comp.os.research
Subject: Garbage Collection (Position Papers from ECOOP/OOPSLA'90 available)
Date: 27 Dec 90 13:33:26 GMT
Organization: Institute of Computer Science, U of Copenhagen

	     POSITION PAPERS ON GARBAGE COLLECTION ISSUES.
				FROM
	Workshop on Garbage Collection in Object-Oriented Systems.

The workshop was held in conjunction with the Joint ECOOP/OOPSLA'90 
Conference at Hotel Chateau Laurier, Ottawa, Canada on Sunday October, 
21st, 1990.

Most of the position papers from the workshop are now made available 
for anonymous FTP from  

	midgard.ucsc.edu (North America) in:  /pub/gc/
	(IP. 128.114.134.15)		 Only available until 1 Feb 1991
and
	ftp.diku.dk 	 (Europe) 	 in:  /pub/GC90/
	(IP. 129.142.96.1)		 Available until further notice.

Login as anonymous and state your own email-address as password.

THE PAPERS ARE SUBMITTED IN POSTSCRIPT FORMAT AND COMPRESSED.
TO PRINT THE PAPERS:

	uncompress xxxxx.ps.Z 
and
	lpr  xxxxx.ps		'on your favorite printer'

Further information on the individual papers are available by contacting the
appropriate authors; see list of attendees in file: Attendees.ps

In case of trouble you may contact:

	daniel@terra.ucsc.edu 	(Daniel Edelson)
or:
	ncjuul@diku.dk		(Niels Christian Juul)


Enclosed you find a list of the available position papers.
Good luck,	
1990.DEC.27.

		Daniel Edelson		&	Niels Christian Juul
		UCSC, CA, USA			DIKU, Denmark, Europe
-------------------------------------------------------------------------

CONTENTS:

	A Generational, Compacting Garbage Collector for C++
	Joel F. Bartlett, WRL/DEC, Palo Alto, CA, USA.

	Real-Time Compacting Garbage Collection
	Mats Bengtsson and Boris Magnusson, Lund University, Sweden.

	Experience with Garbage Collection for Modula-2+ in the Topaz 
	Environment
	John DeTreville, SRC/DEC, Palo Alto, CA, USA.

	Concurrent, Atomic Garbage Collection
	David L. Detlefs, SRC/DEC, Palo Alto, CA, USA.

	The Case for Garbage Collection in C++
	Daniel Edelson, University of California, Santa Cruz, CA, USA.

	Garbage Collection in an Object Oriented, Distributed, Persistent 
	Environment
	A. El-Habbash, Trinity College, Dublin, Ireland.

	Storage Reclamation
	Paulo Ferreira, INESC/IST, Lisboa, Portugal.

	Open Systems Require Conservative Garbage Collection
	Barry Hayes, Stanford University, CA, USA.

	Adaptive Garbage Collection for Modula-3 and Smalltalk
	Richard Hudson and Amer Diwan, University of Massachusetts, 
	Amherst, MA, USA.

	A Distributed, Faulting Garbage Collector for Emerald
	Niels Christian Juul, DIKU, Copenhagen, Denmark.

	SPiCE Collector: The Run-Time Garbage Collector for Smalltalk-80 
	Programs Translated into C
	Satoshi Kurihara, Norihisa Doi, and Kazuki Yasumatsu, 
	Keio University, Japan.

	Real-Time Concurrent Collection in User Mode
	Kai Li, Princeton University, NJ, USA.

	A Fast Expected-Time Compacting Garbage-Collection Algorithm
	Christer Mattsson, Lund University, Sweden.

	Garbage Collecting Persistent Object Stores
	J. Eliot B. Moss, University of Massachusetts, Amherst, MA, USA.

	Hardware Support for Garbage Collection of Linked Objects and Arrays in
	Real Time
	Kelvin Nielsen and William J. Schmidt, Iowa State Univesity, Ames, 
	IA, USA.

	A garbage detection protocol for a realistic distributed
	object-support system
	Marc Shapiro, INRIA, Rocquencourt, France.

	Three Issues In Obejct-Oriented Garbage Collection
	Jon L. White, Lucid, Inc., Menlo Park, CA, USA.

	Garbage Collection in a High-Performance System
	Mario Wolczko, The University, Manchester, UK.

	Designing Systems for Evaluation: A Case Study of Garbage Collection
	Benjamin Zorn, University of Colorado at Boulder, CO, USA.
----------------------------------------------------------------------
from comp.compilers, October 1990

AUTHOR = "Baker, Jr., Henry G.",
TITLE = "List Processing in Real Time on a Serial Computer",
JOURNAL = cacm, VOLUME = 21, NUMBER = 4, YEAR = 1978,
MONTH = apr, PAGES = {280--294}

AUTHOR = "Hans Boehm and Mark Weiser",
TITLE = "Garbage Collection in an Uncooperative Environment",
JOURNAL = "Software Practice and Experience", YEAR = 1988,
MONTH = sep, PAGES={807--820}

AUTHOR = "Joel Bartlett",
TITLE = "Compacting Garbage Collection with Ambiguous Roots",
INSTITUTION = DECWRL, YEAR = 1988, NUMBER = "RR 88/2"

AUTHOR="David Ungar",
TITLE="Generation Scavenging: {A} Non-disruptive High Performance
       Storage Reclamation Algorithm",
YEAR=1984, PAGES={157--167}, BOOKTITLE="Proceedings of the ACM
SIGSOFT/SIGPLAN Software Engineering Symposium on Practical 
Software Development Environments"

AUTHOR = "Andrew W. Appel and John R. Ellis and Kai Li",
TITLE = "Real-time concurrent garbage collection on stock 
         multiprocessors",
BOOKTITLE = "{SIGPLAN} Symposium on Programming Language Design 
and Implementation", YEAR = 1988, PAGES= {11--20}

TITLE = "A Real-Time Garbage Collector Based on the Lifetimes
         of Objects",
AUTHOR = "Henry Lieberman and Carl Hewitt",
JOURNAL = cacm, NUMBER = 6, VOLUME = 26, YEAR = 1983,
MONTH = jun, PAGES = {419--429}

AUTHOR = "Robert A. Shaw",
TITLE = "Empirical Analysis of a Lisp System",
INSTITUTION = STANFORD, NUMBER = "CSL-TR-88-351"

AUTHOR = "Paul Rovner",
TITLE = "On Adding Garbage Collection and Runtime Types to a
         Strongly-Typed, Statically  Checked, Concurrent Language",
INSTITUTION = PARC, YEAR = 1985, NUMBER = "CSL-84-7"

AUTHOR = "Joel Bartlett",
TITLE = "Mostly-Copying Garbage Collection Picks Up
         Generations and C++",
INSTITUTION = DECWRL, YEAR = 1989, NUMBER = "TN-12"

AUTHOR = "John Hughes",
TITLE = "A Distributed Garbage Collection Algorithm",
BOOKTITLE = "Functional Programming Languages and Computer Architecture",
YEAR = 1985, PAGES = {256--272}

AUTHOR = "L. Peter Deutsch and Daniel G. Bobrow",
TITLE = "An Efficient, Incremental, Automatic Garbage Collector",
JOURNAL = cacm, VOLUME = 19, NUMBER = 9, YEAR = 1976,
MONTH = "September", PAGES = {522--526}

AUTHOR = "David Moon",
TITLE = "Garbage Collection in a Large {L}isp System",
YEAR = 1984, PAGES = {235--246}, BOOKTITLE = "{SIGPLAN}
Symposium on {LISP} and Functional Programming"

AUTHOR = "Rodney A. Brooks",
TITLE = "Trading Data Space for Reduced Time and Code Space in
         Real-Time Garbage Collection",
YEAR = 1984, PAGES = {256--262}, BOOKTITLE = "{SIGPLAN}
Symposium on {LISP} and Functional Programming"
----------------------------------------------------------------------
from comp.compilers:

2. The conference proceedings from OOPSLA/ECOOP '90 contains the following
paper:

Kafura, Dennis, Doug Washabaugh, and Jeff Nelson, "Garbage Collection of
Actors." OOPSLA/ECOOP '90 Proceedings, October, 1990. pp. 126-134. 

The proceedings are also published under the title "SIGPLAN Notices," Volume
25, Number 10, October, 1990. Addison-Wesley ISBN: A-W ISBN 0-0201-52430-X.
----------------------------------------------------------------------
%A Marc Shapiro
%A David Plainfoss\'e
%A Olivier Gruber
%T A garbage detection protocol for a realistic distributed
object-support system
%R Rapport de Recherche INRIA 1320
%D November 1990
%X Ask Nelly Maloisel <nelly@sor.inria.fr>, or anonymous FTP: machine
corto.inria.fr (128.93.11.2), directory pub/doc, either
`RR-INRIA-1320.dvi.Z' or `RR-INRIA-1320.ps.Z' (the first is smaller).
----------------------------------------------------------------------
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

Doug.Landauer@Eng.Sun.COM (@morocco.eng [Doug Landauer]) (05/01/91)

> [Daniel Ross Edelson (daniel@cis.ucsc.edu) wrote a long paper, probably his
> thesis, on the topic of garbage collected C++.  A postscript version can be
> FTPed from midgard.cs.edu:~ftp/pub/tr/ucsc-crl-91-19.ps.Z.  It's fairly long,
> 106 pages including all the source code. -John]

That's midgard.ucsc.edu, and it's ucsc-crl-90-19.ps.Z.  Also, there's a
slightly shorter (194 Kb), no-code version in ucsc-crl-90-19-nocode.ps.Z.

The full paper is 221 Kb.
-- 
Doug Landauer - Sun Microsystems, Inc. - Languages - landauer@eng.sun.com
[Oops.  Sorry about that. -John]
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

ncjuul@diku.dk (Niels Christian Juul) (05/01/91)

gilstrap@sbctri.sbc.com (Brian R. Gilstrap) writes:
>...
>So, I am hoping to get references to introductory articles on garbage 
>collection...
To which our moderator has added:
>[Daniel Ross Edelson (daniel@cis.ucsc.edu) wrote a long paper, probably his
>thesis, on the topic of garbage collected C++.  A postscript version can be
>FTPed from midgard.cs.edu:~ftp/pub/tr/ucsc-crl-91-19.ps.Z.  It's fairly long,
>106 pages including all the source code. -John]

I want to add a few clarifications:
The ftp site is:	midgard.ucsc.edu
The file is:		/pub/tr/ucus-crl-90-19.ps.Z
or (without the code):	/pub/tr/ucus-crl-90-19-nocode.ps.Z

So it's from 1990.

If you need more information on garbage collection, esp. as seen from
the object-oriented camp, I've collected a set of position papers from
last years Workshop on Garbage Collection in Object Oriented Systems.

These (including a short report on the workshop) is available for ftp from:
ftp.diku.dk: in /pub/GC90/*

(The site name is a nickname for host freja.diku.dk, our old beloved VAX 785,
which is not operational this week, so you have to wait a week or more.
If you can't get access after mid-May, mail me and I'll try a work-around.)

The papers were available earlier this year at midgard, but I think
they are removed now.

Niels-Christian
-- 
Niels Christian Juul			   Email:  ncjuul@diku.dk
DIKU (aka Dept.Comp.Sci. Univ.Copenhagen)  Phone:  +45 31 39 64 66 ext. 405
Universitetsparken 1 -- DK 2100 Copenhagen Direct: +45 31 39 33 11  --  405
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

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

|> [Daniel Ross Edelson (daniel@cis.ucsc.edu) wrote a long paper....A 
|> postscript version can be FTPed from ....]
|
|That's midgard.ucsc.edu, and it's ucsc-crl-90-19.ps.Z.  Also, there's a
|slightly shorter (194 Kb), no-code version in ucsc-crl-90-19-nocode.ps.Z.
|The full paper is 221 Kb.
|-- 
|Doug Landauer - Sun Microsystems, Inc. - Languages - landauer@eng.sun.com

Some people have had difficulty reaching midgard.ucsc.edu.
Its Internet address is 128.114.14.6. 
A paper that highlights the basic architecture appears in the
current Usenix C++ conference proceedings.

Daniel Edelson
daniel@cis.ucsc.edu
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.