Dan's analysis thingy/MudPie

Daniel Vainsencher daniel.vainsencher at gmail.com
Mon Mar 21 23:21:07 UTC 2005


Dan Ingalls wrote:
 > While I haven't tried it, I think Daniel's Mudpie may help with
 > determining effective root sets, after which my "differencing" scheme
 > is pretty effective, as you discovered.

Sorry I didn't reply earlier.

If you want to get *possible* root sets, load MudPie and then do:
mma _ MultiModuleAnalyzer onCategoriesWithPrefix: ''.  "initialize for 
analysis of all categories"
mma packageGraph unreachedNodes

This gives you (after maybe a minute, probably less) all the individual 
categories whose classes are referenced by no other categories, 
therefore they are possible roots.

However, it is probably better to see all "bunches" of categories that 
don't have incoming references, though they have internal references. 
The following does that:

pdag _ GraphAnalyzer new convertToDAGOfStrongComponents: mma packageGraph.
pdag unreachedNodes

This list contains lists of categories, such that each list can be used 
as a root for Dan's algorithm (assuming no impedance mismatch between 
him and me).

Two caveats:
1. This will include all the code that's already well-untangled, so 
either list would require filtering.
2. Of course these bunches are not maximal, that's what Dan's code does. 
In fact, in a way they are minimal, but that's a different story.

Daniel

Dan Ingalls wrote:
>>After filing in the patch Dan just posted on squeak-dev, I ran:
>>
>>etoysRemovals _ Smalltalk reportClassAndMethodRemovalsFor: ((PackageInfo named: 'EToys') classes collect: [:each | each name]).
> 
> ...
> 
> Hi, Cees -
> 
> Thanks for actually taking the trouble to try this out!
> 
> Just to complete the archaeological dig, check out SystemDictionary>>computeImageSegmentation ;-). It's out of date, but it shows how you can do a lot of different packaging experiments at once to save time.
> 
> While I haven't tried it, I think Daniel's Mudpie may help with determining effective root sets, after which my "differencing" scheme is pretty effective, as you discovered.
> 
> 	- Dan
> 



More information about the Packages mailing list