[psoc-2008] [report] Week of August 4th

Andrew Whitworth wknight8111 at gmail.com
Tue Aug 5 00:42:47 UTC 2008


Yesterday marks the end of yet another week which has been pretty
uneventful. Debugging has continued, and a number of bugs and errors
have been resolved this week. Unfortunately, we're still not in a
state that the GC compiles, Parrot builds, and the tests all pass. The
progress of the build and test process changes daily, as debugging
proceeds.

My design up until this point has been using a cardmarking scheme,
where a separate data area called the "Card" has been used to keep
track of the alive/dead state of the various memory objects that the
GC is managing. With some limited testing and lots of debugging
experience, I've decided that the separate card is much more trouble
then it's worth. The intended tradeoff was to use some additional
memory in exchange for much faster speed in the sweep phase. However,
once the entire implementation was fleshed out, it became apparent
that the cards didn't save us any time. So, in a few commits last
week, I ripped it out entirely.

Lo and behold, removing the cards actually cleared up some segfaults I
was having. It turns out my implementation of the cards was faulty and
was itself causing some of the errors I was having. One fewer moving
part, one fewer possible point of failure.

This week continues the slow but continuous trudge towards eventual
success. I've come to peace with the fact that this GC project will
likely not be "complete" before the summer has ended. However, I do
plan to continue work on it until it is done, whenever that is. A lot
of work has gone into this project, and there is a good amount yet to
do. The end is in sight now, and that makes it all worth it.

--Andrew Whitworth


More information about the psoc-2008 mailing list