Fixing some space leaks with a garbage collector
Software—Practice & Experience
Fixing some space leaks without a garbage collector
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
The anatomy of the register file in a multiscalar processor
MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
GUM: a portable parallel implementation of Haskell
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A semantics for imprecise exceptions
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Speculative Evaluation for Parallel Graph Reduction
PACT '94 Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques
Lazy Thread and Task Creation in Parallel Graph-Reduction
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Hi-index | 0.00 |
Interrupt handling is a tricky business in lazy functional languages: we have to make sure that thunks that are being evaluated can be halted and later restarted if and when they are required. This is a particular problem for implementations which use black-holing. Black-Holing deliberately makes it impossible to revert such thunks to their original state to avoid a serious space leak. Interactive Haskell implementations such as Hugs and hbi catch interrupts and avoid the problem by omitting or disabling black-holing. Batch mode Haskell implementations such as HBC and the Glasgow Haskell Compiler (GHC) avoid this problem by disabling black-holing or by providing no way to catch interrupts. This paper describes a modification to GHC's abstract machine (the Spineless Tagless G-Machine) which simultaneously supports both interrupts and black-holing.