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?
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project