Newsgroups: comp.object,comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!yale!yale!yale.edu!spool.mu.edu!howland.reston.ans.net!pipex!uknet!festival!edcogsci!jeff
From: jeff@aiai.ed.ac.uk (Jeff Dalton)
Subject: Re: Why Commit to Eiffel?
Message-ID: <Cvx5Ir.MwD@cogsci.ed.ac.uk>
Sender: usenet@cogsci.ed.ac.uk (C News Software)
Nntp-Posting-Host: bute.aiai.ed.ac.uk
Organization: AIAI, University of Edinburgh, Scotland
References: <DOUG.94Sep6154321@monet.ads.com> <779050720snz@wildcard.demon.co.uk> <DOUG.94Sep9075752@monet.ads.com>
Date: Sat, 10 Sep 1994 14:56:51 GMT
Lines: 13
Xref: glinda.oz.cs.cmu.edu comp.object:20302 comp.lang.lisp:14591

In article <DOUG.94Sep9075752@monet.ads.com> doug@monet.ads.com (Doug Morgan) writes:

>From Lisp, you pass by value to C a pointer to the data portion of a
>Lisp array (or whatever).  In the meantime, your C routine either
>calls back to Lisp or another Lisp thread executes.  In either case,
>Lisp kicks off a copying garbage collection and moves the referenced
>data.  C dereferences the pointer.  Oops!  Solutions involve locking
>out Lisp execution (and therefore GC) during the use of a C pointer
>and possibly passing data that is never subject to copying GC.

There's also "conservative" garbage collection.

-- jd
