Cleaning morphic?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Cleaning morphic?

Guillermo Polito
I know morphic is one of the greatest issues Squeak and Pharo have.  And I'm tired of the kilometric morph hierarchies with tons of methods that noone uses, and the impossible traceability of the morphic code...

And I'm sure that a lot of people tried it before...  And this isn't the highest priority.  But I think morphic cleansing should be done.

So, while i'm now in bed beacause of a flu, hehe, I want at least remove unused morph classes and unused methods... Or maybe we can separate some things from the core.  Of course I will be "spamming" in the list asking for the changes I will do :P.

what do you think?  Do I open a ticket?

Guille

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Cleaning morphic?

Levente Uzonyi-2
On Tue, 13 Jul 2010, Guillermo Polito wrote:

> I know morphic is one of the greatest issues Squeak and Pharo have.  And I'm
> tired of the kilometric morph hierarchies with tons of methods that noone
> uses, and the impossible traceability of the morphic code...

You can't be sure that a method or class is not used if you only look
at the senders or users. Morphic uses a lot of automatic generated
selectors combined with #perform:withArguments: (and friends) which makes
it very hard to track down senders. Though checking the senders of
#asSymbol can help.


Levente

>
> And I'm sure that a lot of people tried it before...  And this isn't the
> highest priority.  But I think morphic cleansing should be done.
>
> So, while i'm now in bed beacause of a flu, hehe, I want at least remove
> unused morph classes and unused methods... Or maybe we can separate some
> things from the core.  Of course I will be "spamming" in the list asking for
> the changes I will do :P.
>
> what do you think?  Do I open a ticket?
>
> Guille
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Cleaning morphic?

Stéphane Ducasse
In reply to this post by Guillermo Polito
Hi
I got a flu last week. :)

Now how to proceed: step by step :)
Start little do it often.
So what I suggest is that you go one fix at a time, you send it to the list, open a ticket, people get a chance to argue
and we loop million of times.

For example
        - I would like to understand if they are not things to be changed now that we have true bloclosure - for menu opening...
like PluggableXXXX and fix that
        - I would like to have less subclass of StringHolder :)
        - Something good would be to check the fix Juan did in CUIS for the scrollbars and friends.

Yes cleaning morphic is important.


> I know morphic is one of the greatest issues Squeak and Pharo have.  And I'm tired of the kilometric morph hierarchies with tons of methods that noone uses, and the impossible traceability of the morphic code...
>
> And I'm sure that a lot of people tried it before...  And this isn't the highest priority.  But I think morphic cleansing should be done.
>
> So, while i'm now in bed beacause of a flu, hehe, I want at least remove unused morph classes and unused methods... Or maybe we can separate some things from the core.  Of course I will be "spamming" in the list asking for the changes I will do :P.
>
> what do you think?  Do I open a ticket?
>
> Guille
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Cleaning morphic?

Mariano Martinez Peck
Guille: I developed a couple of tools that may help you.

The first one is a tool to discover the classes that were used for a particular time duration or block.
http://www.squeaksource.com/ClaseUseDiscovery
You should read: http://forum.world.st/ANN-ClaseUseDiscovery-tool-tp1296859p1296859.html

On the other hand, you can also try to replace each CompiledMethod of Morphic by a MethodWrapper that just logs its name or something like that. Then you can know which methods were executed.
In the dev image 1.1 there is already the package MethodsWrapper from the repository: http://www.squeaksource.com/ObjectMetaTools

In the package ObjectMetaTools of the same repository, you have ProtocolCatcher. Check its class comment.

Finally, I think a very good idea is to use Adrian Lienchard  DTrace integration to the VM: http://forum.world.st/ANN-DTrace-for-Squeak-Pharo-td2173422.html#a2173422

So...what I am saying with all these is that probably, search senders is not enough to clean Mprhic, as Levente said. I would take a dev image, and I would load big projects, like Moose (complete complete), Dr Geo2, etc, and I would use the tools, run all the tests, and check on runtime what is being really used.

Good luck

Mariano


On Tue, Jul 13, 2010 at 9:19 PM, Stéphane Ducasse <[hidden email]> wrote:
Hi
I got a flu last week. :)

Now how to proceed: step by step :)
Start little do it often.
So what I suggest is that you go one fix at a time, you send it to the list, open a ticket, people get a chance to argue
and we loop million of times.

For example
       - I would like to understand if they are not things to be changed now that we have true bloclosure - for menu opening...
like PluggableXXXX and fix that
       - I would like to have less subclass of StringHolder :)
       - Something good would be to check the fix Juan did in CUIS for the scrollbars and friends.

Yes cleaning morphic is important.


> I know morphic is one of the greatest issues Squeak and Pharo have.  And I'm tired of the kilometric morph hierarchies with tons of methods that noone uses, and the impossible traceability of the morphic code...
>
> And I'm sure that a lot of people tried it before...  And this isn't the highest priority.  But I think morphic cleansing should be done.
>
> So, while i'm now in bed beacause of a flu, hehe, I want at least remove unused morph classes and unused methods... Or maybe we can separate some things from the core.  Of course I will be "spamming" in the list asking for the changes I will do :P.
>
> what do you think?  Do I open a ticket?
>
> Guille
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Cleaning morphic?

Geert Claes
Administrator
In reply to this post by Guillermo Polito
Guillermo Polito wrote
I know morphic is one of the greatest issues Squeak and Pharo have.  And I'm tired of the kilometric morph hierarchies with tons of methods that noone uses, and the impossible traceability of the morphic code...
Great initiative, I reckon if morphic can be made easier to understand it would encourage more people to contribute code and/or fix bugs.