First day of SOC work was today, and it started off with more of a whimper then a bang. I was away for the weekend and most of today. It turns out it's a holiday today, which I would have known if I ever bothered to look at a calendar. As such, most of the day today was spent with Dana and my family, and I wasn't able to get cracking on Parrot until this evening. I have been able to set up some of the necessary scaffolding already, and that's a good enough start for me.
In my SOC application, I had the following timeline:
* Algorithms laid out, data structures designed, and basic interfaces written by June 1st
* Memory allocation and deallocation functions written. June 5th
* Support for memory arenas implemented. Possibly apply (or begin applying) generational demarcations. June 10th
* Dead Object Detection (DOD) and collection for simple buffers implemented. Possibly implement memory compaction techniques. June 15th
* DOD and collection for objects broken into incremental stages, and implemented. June 20th
* Finishing touches, spit and polish, system integration. June 25th.
This was just the basic timeline, I provided a number of additional details. However, those details aren't important now. The first step is to finalize the details of the algorithm. I was hoping to hook up with chromatic last week and work on these details, but I got too busy and never managed to pull it off. However, I've given myself until June 1st to do this, so I can't cry that I'm not a week ahead of schedule. June 1`st is a sunday and since I'm typically not around on weekends this deadline will probably be pushed forward to Friday May 29th.
After that, I'm scheduled to start working on allocators and deallocators, followed by possibly-generational arenas, and the remainder of the GC in stages. I'm not a stickler for schedules, and a more logical order of work might present itself as things progress. Skeleton allocator/deallocator functions might be a good first step, but after that I don't know where I will turn from there.
Hopefully, most of my daily reports won't be this long. Today is the first day, and so I feel like there is a little bit more to talk about then usual. I have a few more quality hours of work tonight, and then some sleep before what I hope to be a long marathon tomorrow.