Hi, Andreas Rottmann <a.rottm...@gmx.at> writes:
> l...@gnu.org (Ludovic Courtès) writes: [...] >> So now is a good time to test it and report back! It requires libgc 7.1 >> or later, which isn't packaged in Debian, although it was released in >> May 2008. >> > It's in experimental since recently; I assume its maintainer will upload > to unstable soonish. Good. > Will going from a precise GC to BDW-GC not have drawbacks? IIRC, the PLT > people went in the opposite direction. A quick google turned up this: > > http://www.cs.brown.edu/pipermail/plt-scheme/2006-June/013840.html > > I wonder if the reasons for switching to a precise GC listed in there > will also apply to Guile. Thanks for the link! They write: There is one known problem, though, related to linked lists [Boehm, POPL'02]. Unfortunately, we seem to hit this problem often in practice, due to the way that threads and continuations are implemented, and there doesn't seem to be a reliable way around it. The paper is "Bounding Space Usage of Conservative Garbage Collectors", available from http://www.hpl.hp.com/personal/Hans_Boehm/gc/ . It depicts scenarios where "false references" lead to unbounded data retention. My interpretation of these scenarios and the "Summary" section is that these cases are hopefully quite rare. Now, I don't have enough experience of long-running BDW-GC applications to know whether it's a problem in practice. The PLT folks surely had more experience (but with a different implementation IIUC). There are also other schemes that use BDW-GC, such as Bigloo. However, it doesn't worry me as much as the current GC bugs (e.g., [0, 1]). Also, there are definite benefits to using a conservative GC for libguile, given how tightly it can be integrated with C (e.g., [2]). What do you think? Thanks, Ludo'. [0] http://permalink.gmane.org/gmane.lisp.guile.devel/6832 [1] http://lists.gnu.org/archive/html/guile-devel/2008-08/msg00120.html [2] http://lists.gnu.org/archive/html/guile-devel/2008-11/msg00009.html