LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Simple generational garbage collection and fast allocation
Software—Practice & Experience
The spineless tagless G-machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Using key object opportunism to collect old objects
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
The measured cost of conservative garbage collection
Software—Practice & Experience
Generational garbage collection for Haskell
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
On bounding time and space for multiprocessor garbage collection
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
List processing in real time on a serial computer
Communications of the ACM
A nonrecursive list compacting algorithm
Communications of the ACM
A parallel, real-time garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A real-time garbage collector with low overhead and consistent utilization
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generational Garbage Collection without Temporary Space Leaks for Lazy Functional Languages
IWMM '95 Proceedings of the International Workshop on Memory Management
Replication-Based Incremental Copying Collection
IWMM '92 Proceedings of the International Workshop on Memory Management
Generational Garbage Collection for Lazy Graph Reduction
IWMM '92 Proceedings of the International Workshop on Memory Management
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Comparative performance evaluation of garbage collection algorithms
Comparative performance evaluation of garbage collection algorithms
Hybrid eager and lazy evaluation for efficient compilation of haskell
Hybrid eager and lazy evaluation for efficient compilation of haskell
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
A principled approach to operating system construction in Haskell
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Visualising dynamic memory allocators
Proceedings of the 5th international symposium on Memory management
Efficient memory management for concurrent programs that use message passing
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
On measuring garbage collection responsiveness
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
A method specialisation and virtualised execution environment for Java
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Hi-index | 0.00 |
We document the desi n and implementation of a "production" incremental garbage collector for GHC 6.2.It builds on our earlier work (Non-stop Haskell)that exploited GHC's dynamic dispatch mechanism to hijack object code pointers so that objects in to-space automatically scavenge themselves when the mutator attempts to "enter" them. This paper details various optimisations based on code specialisation that remove the dynamic space,and associated time, overheads that accompanied our earlier scheme.We detail important implementation issues and provide a detailed evaluation of a range of design alternatives in comparison with Non-stop Haskell and GHC's current generational collector.We also show how the same code specialisation techniques can be used to eliminate the write barrier in a enerational collector.