[project @ 2001-07-23 17:23:19 by simonmar]
authorsimonmar <unknown>
Mon, 23 Jul 2001 17:23:20 +0000 (17:23 +0000)
committersimonmar <unknown>
Mon, 23 Jul 2001 17:23:20 +0000 (17:23 +0000)
commitdfd7d6d02a597949b08161ae3d49dc6dfc9e812d
tree4afa5a75fa30ebbe08247543c3863a49ed54a792
parent9528fa3e6229f36e424c5e327255694066017e10
[project @ 2001-07-23 17:23:19 by simonmar]
Add a compacting garbage collector.

It isn't enabled by default, as there are still a couple of problems:
there's a fallback case I haven't implemented yet which means it will
occasionally bomb out, and speed-wise it's quite a bit slower than the
copying collector (about 1.8x slower).

Until I can make it go faster, it'll only be useful when you're
actually running low on real memory.

'+RTS -c' to enable it.

Oh, and I cleaned up a few things in the RTS while I was there, and
fixed one or two possibly real bugs in the existing GC.
28 files changed:
ghc/includes/Block.h
ghc/includes/ClosureTypes.h
ghc/includes/Stable.h
ghc/includes/StgStorage.h
ghc/includes/StgTypes.h
ghc/rts/BlockAlloc.c
ghc/rts/ClosureFlags.c
ghc/rts/GC.c
ghc/rts/GC.h [deleted file]
ghc/rts/GCCompact.c [new file with mode: 0644]
ghc/rts/GCCompact.h [new file with mode: 0644]
ghc/rts/PrimOps.hc
ghc/rts/Printer.c
ghc/rts/ProfHeap.c
ghc/rts/RtsFlags.c
ghc/rts/RtsFlags.h
ghc/rts/Sanity.c
ghc/rts/Sanity.h
ghc/rts/Schedule.c
ghc/rts/Stable.c
ghc/rts/StablePriv.h
ghc/rts/Stats.c
ghc/rts/Stats.h
ghc/rts/StgMiscClosures.hc
ghc/rts/Storage.c
ghc/rts/Storage.h
ghc/rts/StoragePriv.h
ghc/rts/parallel/GranSim.c