[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.
Showing
- ghc/includes/Block.h 9 additions, 3 deletionsghc/includes/Block.h
- ghc/includes/ClosureTypes.h 13 additions, 12 deletionsghc/includes/ClosureTypes.h
- ghc/includes/Stable.h 2 additions, 1 deletionghc/includes/Stable.h
- ghc/includes/StgStorage.h 12 additions, 4 deletionsghc/includes/StgStorage.h
- ghc/includes/StgTypes.h 3 additions, 1 deletionghc/includes/StgTypes.h
- ghc/rts/BlockAlloc.c 3 additions, 1 deletionghc/rts/BlockAlloc.c
- ghc/rts/ClosureFlags.c 6 additions, 5 deletionsghc/rts/ClosureFlags.c
- ghc/rts/GC.c 971 additions, 732 deletionsghc/rts/GC.c
- ghc/rts/GC.h 0 additions, 12 deletionsghc/rts/GC.h
- ghc/rts/GCCompact.c 907 additions, 0 deletionsghc/rts/GCCompact.c
- ghc/rts/GCCompact.h 30 additions, 0 deletionsghc/rts/GCCompact.h
- ghc/rts/PrimOps.hc 17 additions, 2 deletionsghc/rts/PrimOps.hc
- ghc/rts/Printer.c 2 additions, 2 deletionsghc/rts/Printer.c
- ghc/rts/ProfHeap.c 2 additions, 2 deletionsghc/rts/ProfHeap.c
- ghc/rts/RtsFlags.c 7 additions, 1 deletionghc/rts/RtsFlags.c
- ghc/rts/RtsFlags.h 3 additions, 4 deletionsghc/rts/RtsFlags.h
- ghc/rts/Sanity.c 139 additions, 158 deletionsghc/rts/Sanity.c
- ghc/rts/Sanity.h 18 additions, 10 deletionsghc/rts/Sanity.h
- ghc/rts/Schedule.c 29 additions, 31 deletionsghc/rts/Schedule.c
- ghc/rts/Stable.c 126 additions, 98 deletionsghc/rts/Stable.c
Loading
Please register or sign in to comment