All pastes #411352 Raw Edit

Unnamed

public text v1 · immutable
#411352 ·published 2007-03-26 23:31 UTC
rendered paste body
* 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.