Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!mcsun!corton!ilog!barbes!davis From: davis@barbes.ilog.fr (Harley Davis) Newsgroups: comp.lang.c++ Subject: Re: Implementing LISP in C++ (type discrimination) Message-ID: Date: 24 Apr 91 12:54:51 GMT References: <1991Mar8.024331.14235@searchtech.com> <27D7F621.2F5@tct.uucp> <17238@cadillac.CAD.MCC.COM> <1991Mar12.221015.22144@aero.org> <14342@hacgate.UUCP> <1991Apr17.233653.25149@dsd.es.com> <1991Apr22.165825.13552@cpsc.uc Sender: davis@ilog.fr Organization: ILOG S.A., Gentilly, France Lines: 30 In-reply-to: gintera@fsd.cpsc.ucalgary.ca's message of 22 Apr 91 16:58:25 GMT In article <1991Apr22.165825.13552@cpsc.ucalgary.ca> gintera@fsd.cpsc.ucalgary.ca (Andrew Ginter) writes: In article davis@barbes.ilog.fr (Harley Davis) writes: >One of the most important problems with reference counting is that it >doesn't collect all the garbage. In particular, circular data >structures never get collected. This was true of reference counting schemes until 1986. An article published in Software-Practice and Experience that year describes how reference counting systems can reclaim circular lists fairly simply. The exact name and author of the article escape me right now - they're in my other office. Drop me a note if you're desperate and I can dig them up for you. The circular list collection technique goes something like this: [mark and sweep too] Of course, if you use other gc methods with reference count, the problem can be fixed. But this was obvious way before 1986. I think Danny Bobrow did an implementation of a mixed ref count/full scan gc in InterLisp in the late 70s/early 80s. -- Harley Davis -- ------------------------------------------------------------------------------ nom: Harley Davis ILOG S.A. net: davis@ilog.fr 2 Avenue Gallie'ni, BP 85 tel: (33 1) 46 63 66 66 94253 Gentilly Cedex, France