Marcus Denker-4 wrote > Hi, > > Review needed for > > > https://pharo.fogbugz.com/f/cases/16074/Is-RBClassNotReferencedRule-200x-slower-in-Pharo-4-vs-Pharo-3 > > Speedup can be checked with: > > rule:=RBClassNotReferencedRule new. > environment:=RBBrowserEnvironment new forPackageNames: #('Fuel'). > [RBSmalllintChecker runRule: rule onEnvironment: > environment] timeToRun > > > Pharo5: "0:00:00:13.526" > Pharo5 with fix: "0:00:00:00.761" > Pharo3: 0:00:00:00.547 > > Checking all classes for usage: > > [Smalltalk allClassesAndTraits select: [ : each | each isUsed not]] > timeToRun > > still takes 1:40 to find 600 unused classes. > > This shows that adding a cache for “referenced classes” per environment > would speed this > up further. But it should be general, not just for RB or even RB Code > Critique. > > The nice things is that code environments only change when you add classes > or methods, > so adding a very general cache should be quite possible. > > Another thing we should add is a way for classes to define “I am used”. > E.g this > now finds all Configurations, all the Manifests and all cases like the RB > Rules themselves. > All these should know that they are not useless even though there are no > references. > > Marcus
Thanks for working on this. I have a use for it this week. For methods RB allows one to add a pragma e.g.: <lint: 'Methods implemented but not sent' rationale: 'this code plays a role in examining the system' author: 'pad'> and described here: http://www.lukas-renggli.ch/blog/ignoring-lint-rules. Maybe we can hijack that mechanism with a class side method e.g. rbNotReferenced <lint> Do your modifications test sends of subclassesDo: and friends? OR #(#MyClass1 #MyClass2 #MyClass3) collect:[:ea | (Smalltalk at: ea) doSomething]. The reason I ask is I'm planning to do a bunch of cleanup of a package and it would be nice to not worry about those cases getting missed -- View this message in context: http://forum.world.st/review-needed-speed-up-RBClassNotReferencedRule-tp4845838p4850824.html Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.