[Haskell-cafe] realtime garbage collector for ghc

Andrew Cheadle amc4 at doc.ic.ac.uk
Fri Jan 25 11:02:26 EST 2008

Hi Stefan,

>> A real time incremental gc would be really cool.  Some people claim
>> they exist, but which languages have one?
> james mccartney's supercollider [1] has a non-copying incremental 
> collector based on [2], though not a parallel one.
> btw, is an implementation of the incremental collector described in 
> [3] available somewhere? are there any plans to incorporate it into 
> future ghc versions?
> <sk>
> [1] http://supercollider.sourceforge.net
> [2] P. R. Wilson and M. S. Johnstone. Real-time non-copying garbage 
> collection. In ACM OOPSLA Wsorkshop on Memory Management and Garbage 
> Collection, 1993.
> [3] A. M. Cheadle, A. J. Field, S. Marlow, S. L. P. Jones, and R. L. 
> While. Exploring the barrier to entry: incremental generational 
> garbage collection for haskell. In ISMM ’04: Proceedings of the 4th 
> international symposium on Memory management, pages 163–174, New York, 
> NY, USA, 2004. ACM.

The collector in [3] isn't in a production version of GHC for several 
reasons, mainly because I finished it prior to significant reworking of 
GHC's backend (C-- target etc), and while finishing my PhD I couldn't 
devote the time to keeping it current - it is a massive engineering 
task! Furthermore, the scheduling of work-based increments are 
problematic and I only made a preliminary start with time-based 
collection. That said:

Our current work here at Imperial has focussed on implementing exactly 
what we did for GHC in Java, targetting the Jikes RVM, and we've made 
alot of progress (*shameless plug*, check out our paper at VEE 2008: /A 
Method Specialisation and Virtualised Execution Environment for Java).

/With this work nearing completion my attention is turning back to GHC 
but with particular focus on concurrency, and multi-core / parallel 
collection and the STM world... I haven't ruled out the collector being 
incremental too, so I wouldn't be surprised if I resurrect this code 
base... Of course, these things take time and I have other commitments...

I know Simon has been working on parallel collection and I would expect 
this to be more generally useful than a single-threaded incremental 
collector, so I'll leave it to him to say how that's coming on...



*  Andrew Cheadle                    email:  a.cheadle at doc.ic.ac.uk *
*  Department of Computing           http://www.doc.ic.ac.uk/~amc4/ *
*  Imperial College London                                          *

More information about the Haskell-Cafe mailing list