Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!newshost.marcam.com!charnel.ecst.csuchico.edu!olivea!news.hal.COM!decwrl!netcomsv!netcom.com!hbaker
From: hbaker@netcom.com (Henry G. Baker)
Subject: Re: Reference Counting Lisp -  improved performance
Message-ID: <hbakerD0oMoM.97E@netcom.com>
Organization: nil
References: <3cetp6$169@lazar.apana.org.au>
Date: Mon, 12 Dec 1994 05:17:10 GMT
Lines: 44

In article <3cetp6$169@lazar.apana.org.au> bill@zikzak.apana.org.au (Bill Birch) writes:
>
>The changes I made were to introduce several classes of in-built functions
>as follows:
>
>subrp-value : These functions always return objects which have no references
>	in common with their input arguments. For example in RefLisp
>	arithmetic functions + - etc always return new cells.
>
>	GC action: no reference counting, only erasure of input arguments.
>
>subrp-subtree : These functions always return a tree which is a subset
>	of one of the input arguments. For example, (car) (cdr) (nth)
>	always return a subtree or nil.
>
>	GC action: when purging the arguments to the function, skip
>	any part of the tree which is EQ the return value.
>
>subrp-nogc : These functions always return a tree which contains a reference
>	to every input parameter. e.g (cons) which always returns references to
>	its input args.
>
>	GC action: no ref counts, no erasure of input arguments.

This reminds me of an ACM TOPLAS paper by Inoue, et al.  "Analysis of
functional programs to detect run-time garbage cells", ACM TOPLAS 10,4
(Oct. 1988), 555-578.

Also, you should read up on some of the work at Yale -- e.g., Hudak,
"A Semantic Model of Reference Counting and its Abstraction".  1986
ACM Lisp & Functional Programming Conference, 351-363.

Finally, my own paper "Unify & Conquer", from 1990 Lisp & Functional
Programming Conf. (in my ftp/www directory).  Some of the
optimizations you describe can be _automatically_ done by ML type
inference.

Henry Baker
Read (192.100.81.1) ftp.netcom.com:/pub/hb/hbaker/README for ftp-able papers.
WWW archive: ftp://ftp.netcom.com/pub/hb/hbaker/home.html
************* Note change of address ^^^        ^^^^
(It _is_ accessible, but Netcom is loaded; keep trying.)


