Any call graph generator out there? I mean something where you can actually see selector names in the graph (without hover) like these: http://phpcallgraph.sourceforge.net/ http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
I wrote a simple PlantUML sequence diagram generator when I was debugging some issue… I can try to dig it up (if I still have it stashed somewhere). Peter On Fri, Sep 30, 2016 at 5:53 AM, Hernán Morales Durand <[hidden email]> wrote:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by hernanmd
Hi,
The closest layout that you can use is RTDominanceTreeLayout. What kind of call graph do you want to visualize? From you Pharo code or something else? Cheers, Doru > On Sep 30, 2016, at 5:53 AM, Hernán Morales Durand <[hidden email]> wrote: > > > Any call graph generator out there? > > I mean something where you can actually see selector names in the graph (without hover) like these: > > http://phpcallgraph.sourceforge.net/ > http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool > > Hernán > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev -- www.tudorgirba.com www.feenk.com "Next time you see your life passing by, say 'hi' and get to know her." _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by hernanmd
Hi Hernán,
I am currently developing an addon for Moose Roassal to display customizable graphs that have the names of methods and attributes in the graph. I want to use it for various languages and applications. The example in the link contains for instance database tables (green). Not shown in this example are comments.
See http://www.smalltalkhub.com/#!/~RainerWinkler/RW-Moose-Diagram and https://github.com/RainerWinkler/Moose-Diagram/blob/master/README.md.
It is an early alpha version, but I use it regularly.
I invested most time in making the graph helpful for a developer not in improving the layout. But I plan to improve the layout.
Best regards,
Rainer
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by hernanmd
Hi Hernán,
once again now with a working link :-)
I am currently developing an addon for Moose Roassal to display customizable graphs that have the names of methods and attributes in the graph. I want to use it for various languages and applications. The example in the link contains for instance database tables (green). Not shown in this example are comments.
It is an early alpha version, but I use it regularly.
I invested most time in making the graph helpful for a developer not in improving the layout. But I plan to improve the layout.
Best regards,
Rainer
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by Peter Uhnak
Hi Peter, UML Sequence diagram is not exactly what I am looking for, but I think it is an essential tool to have it in Moose or Pharo (I always thought it is difficult to implement).2016-09-30 6:21 GMT-03:00 Peter Uhnák <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by Tudor Girba-2
Hi Tudor, Thank you for the suggestion, I want to visualize one of my projects. I tried to use RTDominanceTreeLayout from Moose with "Compression" package in Moose Panel, and found it is used in "All famixnamespaces" and "All famixpackages" (this one is giving a MessageNotUnderstood: FAMIXClass>>FAMIXPackage). I always get 2 namespaces so I couldn't check how close enough is RTDominanceTreeLayout from Moose. However, I checked the mailing list and found a script using RTDominanceTreeLayout so I would start from there. 2016-09-30 6:37 GMT-03:00 Tudor Girba <[hidden email]>: Hi, _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by rainer.winkler
Hi Rainer, I installed your tool (seems very nice work!) but I cannot see how to start using it.2016-09-30 8:35 GMT-03:00 <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi Hernán,
You should select more than one class or all classes. Then you have in the context menu a menu point with a name like RW Dependency graph (or so, I am currently not at a computer to check). It should work with a mse import of a Small talk program. There should be a parent Package. It might work with Java (no packages), but I have to check again. Best regards, Rainer PS Sorry I forgot the statement about the class group. PPS there is one (or more) methods at FAMIXClassGroup. Look for methods under *RWD... This is the starting points PPPS Thanks to Alexandre Bergel for providing the initial logic Am 30. September 2016 21:28:47 MESZ, schrieb "Hernán Morales Durand" <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi Rainer, I found the menu item. Thank you.Just a quick note: When analysing PhyloclassTalk with RW Dependency I got: "prevent Overlapping stoped after 100000 steps. Call RWDiagram lCPOMaxChecks: x. where x is a higher number if needed. Runtime may be long!" where x is > 100000 if needed Runtime may be long! ? Cheers, Hernán 2016-09-30 17:01 GMT-03:00 Rainer Winkler <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi Hernán,
for the diagram that displays only connected elements, there is a function to shift positions of elements that they do not overlap. But it is not needed for the first diagrams. You will see some methods or attributes that moved a lot in vertical direction. The reason is that the elements are quite close and the function "RWDiagram allowOverlapping." is preconfigured for a higher separation. You should deactivate it by calling " RWDiagram allowOverlapping. " in the playground.
I will deactive this logic for the startup settings. It is mainly required for arranging elements by layers, "RWDiagram readLayers: ...".
Best regards,
Rainer
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by hernanmd
I was using metalinks to hook into the code execution and observe the runtime behavior… I will try to clean it up & publish next week. On Fri, Sep 30, 2016 at 7:26 PM, Hernán Morales Durand <[hidden email]> wrote:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by hernanmd
Hi,
Thanks for the report. I could reproduce the problem. Could you detail your specific requirements? What nodes would you expect to see: Methods, Classes, Packages? For example, we can have one method and show all transitive dependencies starting from that. Is this what you are looking for? Cheers, Doru > On Sep 30, 2016, at 8:11 PM, Hernán Morales Durand <[hidden email]> wrote: > > Hi Tudor, > > Thank you for the suggestion, I want to visualize one of my projects. I tried to use RTDominanceTreeLayout from Moose with "Compression" package in Moose Panel, and found it is used in "All famixnamespaces" and "All famixpackages" (this one is giving a MessageNotUnderstood: FAMIXClass>>FAMIXPackage). I always get 2 namespaces so I couldn't check how close enough is RTDominanceTreeLayout from Moose. > However, I checked the mailing list and found a script using RTDominanceTreeLayout so I would start from there. > > Cheers, > > Hernán > > > > > > 2016-09-30 6:37 GMT-03:00 Tudor Girba <[hidden email]>: > Hi, > > The closest layout that you can use is RTDominanceTreeLayout. > > What kind of call graph do you want to visualize? From you Pharo code or something else? > > Cheers, > Doru > > > > On Sep 30, 2016, at 5:53 AM, Hernán Morales Durand <[hidden email]> wrote: > > > > > > Any call graph generator out there? > > > > I mean something where you can actually see selector names in the graph (without hover) like these: > > > > http://phpcallgraph.sourceforge.net/ > > http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool > > > > Hernán > > > > _______________________________________________ > > Moose-dev mailing list > > [hidden email] > > https://www.list.inf.unibe.ch/listinfo/moose-dev > > -- > www.tudorgirba.com > www.feenk.com > > "Next time you see your life passing by, say 'hi' and get to know her." > > > > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev -- www.tudorgirba.com www.feenk.com "We can create beautiful models in a vacuum. But, to get them effective we have to deal with the inconvenience of reality." _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi Tudor, Maybe you have experimented this situation before: When you face a new class with many methods you want to understand the message flow, specially with those I call the "main()" classes, where there is mostly one or two methods which trigger execution of other "private" methods. My interest is then to quickly explore the call graph at the method level, at a single class scope.2016-10-05 7:24 GMT-03:00 Tudor Girba <[hidden email]>: Hi, _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi,
In that case, you want to use the Class Blueprint: Cheers, Doru On Oct 5, 2016, at 5:27 PM, Hernán Morales Durand <[hidden email]> wrote: -- www.tudorgirba.com www.feenk.com "If you interrupt the barber while he is cutting your hair, you will end up with a messy haircut." _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Yes I known, but it doesn't display the method (selector) names without mouse over - Or I didn't discovered how to. Cheers,Besides I think that would need a new layout to make enough space between boxes or ellipses. See how clear is the PHPCallGraph http://phpcallgraph.sourceforge.net/ 2016-10-05 17:57 GMT-03:00 Tudor Girba <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi,
Ok. Try this: view := RTMondrian new. view shape label text: #name. view nodes: self methods. view shape line color: (Color lightGray alpha: 0.3). view edges connectToAll: #invokedMethods. view layout horizontalDominanceTree. view view pushBackEdges. view Does this fit better? Cheers, Doru On Oct 5, 2016, at 11:16 PM, Hernán Morales Durand <[hidden email]> wrote: _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Amazing! I am already playing with it :) Thank you Tudor,| view | view := RTMondrian new. view shape label text: #name. view nodes: self methods. view shape line color: (Color blue alpha: 0.3); width: [ :each | each key numberOfStatements ]. view edges connectToAll: #invokedMethods. view layout horizontalDominanceTree. view view pushBackEdges. view 2016-10-05 18:29 GMT-03:00 Tudor Girba <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi,
Great :). I forgot to mention that you should use “layered” for a better layout: view := RTMondrian new. view shape label text: #name. view nodes: self methods. view shape line color: (Color lightGray alpha: 0.3). view edges connectToAll: #invokedMethods. view layout horizontalDominanceTree layered. view view pushBackEdges. view Cheers, Doru On Oct 5, 2016, at 11:53 PM, Hernán Morales Durand <[hidden email]> wrote: _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by hernanmd
Hi Hernán, why not use the message flow browser[1] with a scope restricted to a class?Scoped browsing with implementors / senders search is what I do in your situation. [1] https://pharoweekly.wordpress.com/2015/09/09/new-tool-flow-message-browser/ 2016-10-05 17:27 GMT+02:00 Hernán Morales Durand <[hidden email]>:
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Free forum by Nabble | Edit this page |