On 1 Jul 2019, at 08:45, Marcus Denker <marcus.denker@inria.fr> wrote:
For the ones I add for other to do I put the âEasyâ tag and add them to this GitHub project (kanban board):
Small fix Friday: ============= 3700-simplify-allUnreferencedInstanceVariables https://github.com/pharo-project/pharo/pull/3701/files same idea as the class vars, now that variables are object, bit strings, we can implement it simply as: ^self allSlots reject: [:slot | slot isReferenced] (and it will returns object, that e.g. know the class they are declared in) Saturday ======= I did one of the simple ones posted the day before: 3630-small-cleanup-traits-in-Behaviour-isComposedBy-move-to-traits https://github.com/pharo-project/pharo/pull/3704 Then I did a small (one var added, two lines changed)l, but definitely not trivial improvement: SystemDictionary: add a cache for allBehaviors https://github.com/pharo-project/pharo/issues/3702 Right now SystemDictionary caches names, we should cache Objects instead. this is the first step. And it enables Sunday =================== speedup "implementors of https://github.com/pharo-project/pharo/pull/3711 With the allBehaviors cache, we can radically simplify (and speedup!) a lot of code used very very often. [#name implementors] bench before: "'69.688 per second'" after: "'119.385 per second'" The new implementation is this: SystemNavigation>>allImplementorsOf: aSelector "Answer all the methods that implement the message aSelector." ^self allBehaviors select: [:class | class includesSelector: aSelector] thenCollect: [:class | (class>>aSelector) methodReference ] This #allBehaviors cache will allow many more simplifications (check senders of #allBehaviorsDo:) e.g. for today, I did two as part of this (isUnsentMessage: and allPrimitiveMethods): https://github.com/pharo-project/pharo/pull/3725/files Marcus