On Jan 11, 2010, at 9:59 13AM, Mariano Martinez Peck wrote:
Hi folks: As part of my PhD I started to work with ImageSegment. This week I clean up all the stuff related to class discovery from there. I then wanted to put that extracted code in a separate class. I didn't like that code at all, so at the end I finished rewriting completely this stuff.
The cool thing is that:
- I remove all that stuff from ImageSegment (which has nothing to do with that) - I remove that stuff from classes like Behavior and ClassDescription - I put all these as an external package that can be perfectly loaded in core - I rewrote that in style that I like much more. At least for me, it is much more easy to understand and to use now - I wrote test cases - I wrote good class comment.
The repository is: http://www.squeaksource.com/ClaseUseDiscovery and the license is MIT.
It is a little project, but maybe someone find it useful. This project only works with Pharo images newer than 1.1 version 11142
I paste here the class comment of CUDClassesUseDiscoverer:
Cheers
Mariano
This approach of swapping out inactive classes have two big problems:
- The granularity is too high: the class. As soon as only one method is invoked, the whole class is recovered. - It is very common to recover all classes doing a simple action. For example, searching for implementors or senders of a certain method. Because of this, when you are developing in your Smalltalk image is very likely that all classes are recovered in less than 5 minutes of work. It is not useful. Browsing or editing code seems not to be a problem, thus. Maybe this approach has more sense in production images rather than development.
I guess the next tool you'll make is CUDMethodUseDiscover? ;) Good job, and good luck! Cheers, Henry PS. like in MessageTally, maybe a useful constructor method would be one taking a block as argument, and running trace during its execution?