* The project The paper 'Non-stop Haskell' describes "an efficient technique for incorporating Baker's incremental garbage collection algorithm into the Spineless Tagless G-machine on stock hardware" [1]. This algorithm can avoid the problem of unbounded collection pauses by doing garbage collection in small increments instead of all at once [1]. Some experimentation has already been done with a prototype implementation, with good results. The project consists of implementing the described incremental garbage collector for GHC. It would benefit the Haskell community by making GHC produce better performing executables. Haskell GUI and real-time applications will be particularly improved. Complete implementation of the incremental garbage collector is probably a task too big to be completed by me in the 3-month timeframe; the project idea is to advance as much as possible by doing several needed tasks. * Benefits for the community Experiments published in the paper show good improvements in running performance of compiled Haskell programs. As said earlier, this project would benefit the community by making GHC produce more efficient executable programs. * Milestones - "Get into" GHC. Learn about GHC's internal workings, representation of closures and the current garbage collection code. - Implement scavenging and evacuating all possible types of closure. - Implement the modified Baker scheme to scavenge the k closures when the mutator claims space. - Satisfy the first requirement to maintain the read-barrier invariant: scavenge a closure before entering its code. - Satisfy the second requirement: scavenge the function caller's stack frame after when function returns. * About me I am a Venezuelan undergraduate CS student. I have been interested in parsers and compiler technology for several years, even before entering College. It's my primary focus of study and the area I'm specializing in. I am currently working in my undergraduate Thesis, which basically consists of building a parallelizing compiler. The past couple of years I've also taken a lot of interest in functional languages. Although I haven't worked closely with Haskell for much time, I have been learning a lot about functional languages. I am particularly strong with OCaml, a language I like a lot, in which I've written a lot of code and with which I feel familiar. I am therefore confident of my ability to quickly learn all the needed aspects of Haskell so as to complete this project on time. I am an enthusiast user of open source software, having used it almost exclusively for the past few years. I've only made small contributions to the community and am eager to give back a lot more. I feel this project will be useful when it's finished, so it'll be an important contribution to the open source world and to the Haskell project in particular. This, together with the fact that I'll be working in the area I like, is what motivated me to submit this proposal. I should note that I'll be in classes in College until the middle of July, which means I won't be able to work full time on the project in the first half of the timeframe. However, I believe I can put a lot of effort in it and can also recover any lost time by making an extra effort in the second half, where I will be free of any other obligations. [1] CHEADLE, A. M., FIELD, A. J., MARLOW, S., PEYTON JONES, S. L., AND WHILE, R. L. Non-stop Haskell. In Proc. of the Fifth International Conference on Functional Programming (Montreal, Quebec, Sept. 2000). SIGPLAN Notices, 35, 9, 257--267.