> On 1 Jul 2019, at 08:45, Marcus Denker <[email protected]> wrote:
> 
> For the ones I add for other to do I put the “Easy” tag and add them to this 
> GitHub project (kanban board):
> 
>       https://github.com/orgs/pharo-project/projects/8
> 


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




Reply via email to