On Mar 20, 2011, at 9:48 31AM, Stéphane Ducasse wrote:

> So allOverriddenMethods returns all the methods of the complete system and it 
> may be correct but strange to have it on the instance side.
Probably for convenience, so you don't write self class allIOverriden... in 
methods like the one below.

> Now my hypothesis is that 
> 
> 
>> overriddenMethodsDo: aBlock
>       "Enumerates the methods the receiver contains which have been 
> overridden by other packages"
>       ^ self allOverriddenMethodsDo: [:ea |
>               (self isOverrideOfYourMethod: ea)
>                       ifTrue: [aBlock value: ea]]
> 
> check the complete system for every package snapshot and since we have a lot 
> of override because of polymorph we pay the price.
> I will fold the overrides first and try to understand mc 
> 
> 
> Stef

Yes, allOverridenMethods returns all overrides in the entire system.
Another example of what you have to do when using categories for packaging :)

To figure out the overridden methods in your package, it 
- Checks class category is not yours
- Scans source for old category.

Since .changes has been trunkated since Polymorph was merged, you won't find 
any packages whose methods are actually overridden by the Polymorph overrides :P

Cheers,
Henry

PS. How does RPackage deal with overriden methods?
PPS. I profiled this long ago, while it did show up, removing overrides didn't 
actually have a noticeable impact on the loading speed of Monticello

Reply via email to