links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
GSoC: Garbage Man Detail
Last updated at 10:04 am UTC on 7 April 2008

Squeak Refactoring - Garbage Man Detail

Student proposal by Maurice Rabb

Over Squeak's 10+ year history, it has grown into a big ball of mud. As such, many attempts to make both incremental and radical improvements to the system have been thwarted by improperly tight couplings and dependencies. Many fundamental system classes and methods have been patched and tweaked by so many different authors, it is difficult for anyone but a Squeak expert to understand how they work. Since no one is "in charge," there are many methods in the system that are no longer in use or have otherwise been deprecated. In short, many core methods and classes are in dire need of refactoring. However, many developers have been loath to make changes or accept such changes to the core given the potentially serious consequences. Towards ensuring safety and confidence in this area, this project will demand comprehensive tests and documentation. The key target areas for refactoring in order of priority are:

1) Separate "chunking" methods from PositionableStream class into a separate ChunkSourceCodeStream class.

2) Clean up the FileDirectory hierarchy and dependent classes.

3) Remove implementation dependency of MethodDictionary from impacting the rest of the Set class hierarchy.

Are there other areas that would be more appropriate for me to refactor in the context of GSoC?

I would appreciate yours comments below.

Thank you!



Three things: –Matthew Fulmer
  1. I think you should show this to Stephanne Ducasse, who is working on this sort of stuff with Sapphire
  2. Focus on one of the proposed refactorings
  3. Check out what the SCG is doing with the traits refactoring of the Collection hierarchy, should you go that route