Newsgroups: comp.lang.clos,comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!darwin.sura.net!lhc!lhc!hunter
From: hunter@work.nlm.nih.gov (Larry Hunter)
Subject: Re: Weak binding?
In-Reply-To: hbaker@netcom.com's message of Fri, 18 Aug 1995 17:04:59 GMT
Message-ID: <HUNTER.95Aug21111332@work.nlm.nih.gov>
Sender: news@nlm.nih.gov
Reply-To: Hunter@nlm.nih.gov
Organization: National Library of Medicine
References: <41204j$ij3@xenon.bt-sys.bt.co.uk> <hbaker-1808950904590001@192.0.2.1>
Date: 21 Aug 1995 15:13:32 GMT
Lines: 31
Xref: glinda.oz.cs.cmu.edu comp.lang.clos:3451 comp.lang.lisp:18974


I missed the original question, but Henry Baker posted a response to a
discussion of weak pointers (i.e. those that won't in themselves prevent a
GC).  He says

  I'm not aware of any _portable_ way to do this.  Maclisp had 'non-gc'd'
  arrays, which were used for implementing 'weak pointers' for AI programs.
  These required conspiring with a 'gc-daemon', which was a user-level
  program that ran at the end of every gc.  I have been told that MIT
  Multilisp/Multischeme had some form of weak pointer capability as well.

And lots more than that, Henry.  Most of the CL implementations I've used
have some kind of weak pointer extention.  CMUCL has
extensions:make-weak-pointer and extensions:weak-pointer-value.  Allegro has
excl:weak-vector, and their make-array takes a :weak keyword.  I'm pretty
sure that Harlequin LispWorks has something, too.

If there were any activity in the CL standards committee, this would be a
reasonable thing to put on the queue for a standardized interface...

Larry

--
Lawrence Hunter, PhD.
National Library of Medicine
Bldg. 38A, 9th floor
Bethesda. MD 20894 USA
tel: +1 (301) 496-9300
fax: +1 (301) 496-0673 
internet: hunter@nlm.nih.gov
encryption: RIPEM via server; PGP via "finger hunter@work.nlm.nih.gov"
