Hi,
I try to do a simple visualization for a demo.
In a MOEasel, the scroll bar is really slow...
I use a pharodev-10505 and the last default version of Moose.
The code I execute is :
=====
"System complexity"
| classes |
classes := Collection withAllSubclasses.
view shape rectangle
width: [:cls | cls instVarNames size * 5];
height: [:cls | cls methods size ];
linearFillColor: [ :cls | cls methods inject: 0 into: [:sum :el | sum + el getSourceFromFile lineCount ]] within: classes.
view nodes: classes.
view edgesFrom: #superclass.
view treeLayout
====
Has someone an idea of the problem ?
Cheers,
---
Jannik Laval
---
Hello,
A thing I want to do when importing C code in moose , is to see if a
function is Private or Public.
After reading some documentations about C, a private function ( A function
that can't be used outside the module in which it's defined) is a function
declared with 'Static'. Am I wrong ?
If this is ok, the first thing is:
=> FAMIXFunction > isPublic just check if the function is called outside the
module. This does not really correspond to the description above.
the secong thing is:
=> How can I see if a function is declared with 'static' ?
For the moment I can have this information in the signatiure of the
function. But to retrieve that, I have to parse the string.
Perhaps this might be of interest to some of you.
Cheers,
Doru
> Call for Papers and Tool Demo Proposals - SCAM 2010
>
> Tenth IEEE International Working Conference
> on Source Code Analysis and Manipulation
>
> 12th-13th September 2010,
> Timisoara, Romania,
> Co-located with ICSM 2010
>
> http://www2010.ieee-scam.org/
>
> Sponsored by IEEE CS (pending)
> In cooperation with:
> - Semantic Designs Inc., Austin, TX, USA
> - Univ. "Politehnica" Timisoara, Romania
> - Centre for Research in Evolution, Search and Testing (CREST),
> King's College London, UK
>
> ----------------
> Conference aims:
> ----------------
> The aim of this working conference is to bring together researchers
> and
> practitioners working on theory, techniques and applications which
> concern analysis and/or manipulation of the source code of computer
> systems. While much attention in the wider software engineering
>
> community is properly directed towards other aspects of systems
> development and evolution, such as specification, design and
> requirements engineering, it is the source code that contains the only
> precise description of the behaviour of the system. The analysis and
>
> manipulation of source code thus remains a pressing concern.
>
> ---------
> Keynotes:
> ---------
> This year SCAM will feature two outstanding keynotes:
> - Mark Harman, King's College London, UK
> - Andreas Zeller, Saarland University, Germany
>
> ---------------------------------
> Covered topics and paper formats:
> ---------------------------------
> We welcome submission of papers that describe original and significant
> work in the field of source code analysis and manipulation. Topics of
> interest include, but are not limited to:
>
> * program transformation
> * abstract interpretation
> * program slicing
> * source level software metrics
> * decompilation
> * source level testing and verification
> * source level optimization
> * program comprehension
>
> Note that SCAM explicitly solicits results from any theoretical or
> technological domain that can be applied to these and similar topics.
>
> Submitted papers should not be longer than 10 pages. We also welcome
> submission of 2 page proposals for tool demonstrations expected to be
> performed live at the conference. All papers submitted should follow
> IEEE Computer Society Press Proceedings Author Guidelines. The
>
> papers should be submitted electronically via the conference web site.
> Submitted papers should not have been previously published, and should
> not have been concurrently submitted elsewhere.
>
> ------------
> Proceedings:
> ------------
> All accepted papers will appear in the proceedings which will be
> published by the IEEE Computer Society Press.
>
> --------------
> Special Issue:
> --------------
> Best papers from SCAM 2010 will be considered for revision, extension,
> and publication in a special issue of the Science of Computer
> Programming journal edited by Elsevier.
>
> ----------------
> Important Dates:
> ----------------
> Deadline for submission:
> Abstract due: 23rd April, 2010
> Full paper due: 30 April, 2010
> Notification: 7th June, 2010
> Working Conference: 12th-13th September 2010
>
> ------------------------
> Conference Organization:
> ------------------------
>
> General Chair
> Massimiliano Di Penta, Research Centre on Software Technology,
> Universita degli Studi del Sannio, Italy
>
>
> Program Co-Chairs
> Jurgen Vinju, Centrum Wiskunde & Informatica, The Netherlands
> Cristina Marinescu, Politehnica University of Timisoara, Romania
>
>
> Publicity Chair
> Zheng Li, CREST Centre, Department of Computer Science, King’s College
> London, UK
>
> Finance Chair
> Dave Binkley, Computer Science Department, Loyola College in
> Maryland, USA
>
> Tool Demonstration Chair
> Pascal Cuoq, CEA-Recherche Technologique, France
>
> Local Arrangements Chair
> Marius Minea, Politehnica University of Timisoara, Romania
>
>
>
> -----------------------------------------
> Steering Committee and Program Committee:
> -----------------------------------------
> See the conference Website
>
>
> --
> Jurgen Vinju
> - Centrum Wiskunde & Informatica - SEN1
> - INRIA Lille - ATEAMS
> - Universiteit van Amsterdam
>
> www: http://jurgen.vinju.org,http://www.cwi.nl, http://www.meta-environment.nl
> ,http://twitter.com/jurgenvinju
> skype: jurgen.vinju
>
--
www.tudorgirba.com
"Being happy is a matter of choice."
Hi,
I am very happy to announce that Alain Plantec produced an excellent
feature to the already rich MorphTreeWidget: you can limit the amount
of items visible in the list and you can expand it either
incrementally or altogether once you get to the bottom of the existing
items.
The idea is that when you have very long lists, you most of the time
do not want to see all details but just want some visual support for
what is in the list. This is at least what we have in Moose.
So, if you expect very long lists, you can always say in Glamour
something like:
a list
...
showOnly: 50
An example, can be seen in GLMBasicExamples>>treeWithAmountFiltering,
and of course in MoosePanel.
Cheers,
Doru
GlamorousHealth shows a significant improvement (aprox 2-3 times
faster):
Report produced on 2010-01-22T21:31:14+00:00
------------------
Opening Browser Benchmark:
15 openings => 2260 ms
------------------
------------------
Selecting Item in Browser Benchmark
100 size and selections => 3615 ms
200 size and selections => 3147 ms
300 size and selections => 3281 ms
400 size and selections => 3249 ms
500 size and selections => 4033 ms
600 size and selections => 3341 ms
700 size and selections => 3364 ms
800 size and selections => 3576 ms
900 size and selections => 3456 ms
1000 size and selections => 3548 ms
1500 size and selections => 3823 ms
2000 size and selections => 4018 ms
------------------
------------------
Selecting in finder item Benchmark
1 size and selections => 142 ms
5 size and selections => 787 ms
10 size and selections => 1631 ms
15 size and selections => 2458 ms
20 size and selections => 3344 ms
25 size and selections => 4206 ms
30 size and selections => 5169 ms
35 size and selections => 6329 ms
40 size and selections => 7226 ms
45 size and selections => 8078 ms
50 size and selections => 9629 ms
------------------
--
www.tudorgirba.com
"Don't give to get. Just give."
Hi all,
another case of DIY from me, so probably to be handled with care
(although it should be cleaner than the last bit of code I sent to the
list).
All my insistance on updating in the other thread is because,
fundamentally I wanted to allow a menu item/button/whatever in pane
#source to trigger the update in pane #dest. Note that 'browser
transmit to: #dest; from: #source' does not achieve this when in
#source you do an update. The one-liner below does. Place it in the
menu item/button/whatever of #source whenever you want to do the
update. (Assuming browser is the instance of GLMTabulator/
GLMFinder/... that you are using).
(browser paneNamed: #mpanel) presentations do: [:pres | pres update].
Doru, any chance of adding this to the API for browsers?
--
Johan Fabry
jfabry(a)dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Hi,
I changed the rendering of System Complexity to be computed like in
the VW version with each hierarchy in a box and all the lonely classes
separately. I still have to add the label on top of each hierarchy.
You can also see a group of classes as selection within system
complexity. This is useful when you want to relate the result of a
query with the hierarchies.
In the process, I also changed a bit the toolbar of the MOBrowser. The
buttons still do not look nice because they need proper icons (and
because buttons just do not look nice in the watery theme), but I
added a menu with export to files.
Cheers,
Doru
--
www.tudorgirba.com
"Relationships are of two kinds: those we choose and those that
happen. They both matter."
Hi guys,
Is it a good idea to use pragmas to make generic menus in Mondrian ?
Another idea is to have a generic pragma which is shared between MooseFinder/Mondrian/Orion...
What are your opinion ?
Cheers
---
Jannik Laval
---
I got in contact with a person doing a lisp (that is generated to C) that is used to script
GCC.
I imagine that we could use it to get information out of GCC for C++, C, Ada
So I will try to get in contact and C.
Stef
Hi all,
I am using a from: transformed: at some point, and I just got the
transformation block being called with a nil value when the from pane
gets a selection of nothing. my showOn: block does not state allowNil,
so I did not expect this to happen. Is it expected that transformation
blocks always check for nil-ness of their arguments?
--
Johan Fabry
jfabry(a)dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
PLEIAD Lab - Computer Science Department (DCC) - University of Chile
Hi Doru
How hard would it to implement this enhancement?
I see two paths, the dirty one and the clean one:
Dirty: make two panes stacked, one for the evaluator, the other a table widget with the history. The history is stored in the moose entity.
Clean: make a custom widget. Problem: where to store the history (if I browse to a parent entity and lose the finder pane of the entity, then I want my query history when coming back in the browser)
What do you think.
--
Simon