INRIA/spoon

Paid support on Spoon

monperrus opened this issue · 7 comments

If you need professional, paid support on Spoon, post to this issue, the community members who are available will contact you afterwards.

Please do not post general questions about how to use Spoon in this issue, the sole intention for this issue is to provide a means of requesting professional support.

To simply ask a question, create a new issue

Dear SPOON contributors,

we have analyzed refactoring pull requests in INRIA/spoon GitHub repository and are looking for developers for a short 5-10 min survey (https://usi.eu.qualtrics.com/jfe/form/SV_cO6Ayah0D6q4eSF). Would you please spare your time by answering some questions about refactoring-related contributions? We would greatly appreciate your input — it would help us understand how developers can improve the quality of refactoring contributions, and benefit the development process. The responses will be anonymized and handled confidentially! Thank you a lot!

Hello SPOON contributors,

Thanks for this fantastic library. I would like to use Spoon to generate a control flow diagram and basic data flow diagram for intra-procedural analysis. As an example, given a method for a given variable, I want to extract all the def-use relationships.

In a similar spirit, I have seen a tool called TinyPDG which can generate control flow and data flow though TinyPDG seems to be outdated.

I am interested to know whether I can do the same with Spoon. I have seen the control-flow and data-flow modules. However, the adoption of these modules is not clear to me. I would like to get pointers/feedback from your end.

Hello Spoon team,

I am new to Spoon and have collected all the documentations on this and going one by one and even made few sample POC's for the same.

One curious query if the team could please help us on :

Does Spoon helps to finds the lineage (call hierarchy) of a variable ?

For Example:

If in a java code we have ResultSet rs = stmt.executeQuery(QUERY);

Then declaration and initialization of QUERY might be from one of the below ways :

  1. Direct static query - ResultSet rs = stmt.executeQuery("SELECT id, first, last, age FROM Employees");

  2. As a passed parameter/variable - ResultSet rs = stmt.executeQuery(QUERY);

and QUERY can be even made dynamically such as :

query1 = SELECT;

col1 = id;
col2 = first;
col3 = last;
col4 = age;
query2 = col1 + "," + col2 + "," + col3 + "," + col4; (id,first,last,age)

query3 = FROM;
query4 = Employees; (tbl_name)

clause1 = WHERE;
clause2 = BETWEEN;
query5 = clause1 or clause 2 based on condition;

QUERY= query1 + query2 + query3 + query4 + query5; (SELECT id, first, last, age FROM Employees)

So please suggest if there is a provision to find the linear of a variable/parameter (QUERY in this case) so that it could be transformed later.

Hello SPOON contributors,

Thanks for this fantastic library. I would like to use Spoon to generate a control flow diagram and basic data flow diagram for intra-procedural analysis. As an example, given a method for a given variable, I want to extract all the def-use relationships.

In a similar spirit, I have seen a tool called TinyPDG which can generate control flow and data flow though TinyPDG seems to be outdated.

I am interested to know whether I can do the same with Spoon. I have seen the control-flow and data-flow modules. However, the adoption of these modules is not clear to me. I would like to get pointers/feedback from your end.

Hi Nashid,

Can you please let me know if your requirement which you met through TinyPDG tool is same as mine (Please look my comment stating my requirement) ?

Hi @bhatnagar444 !

I am unsure what you mean by the call hierarchy of a variable. I am assuming it means the same as how the variable changed over the execution of the program. For example, consider the following code snippet:

int addAfterMultiplying() {
    int x = 2;
    x = 2*x;
    return x + x;
}

If you would like to know how the value of x evolves through the execution (it is 2 and then becomes 4), you may be able to do that with spoon because you have all the values during static analysis. However, if the snippet becomes:

1 int addAfterMultiplying(int y) {
2   int x = 2;
3   x = 2*y;
4   return x + y;
5 }

You cannot know the value of x after it is multiplied by y because y's value is only known at runtime so Spoon cannot do that.

We, at SpoonLabs, have started working on a tool to collect runtime context. It is called collector-sahab. It takes a list of classname and breakpoints and gives you the state of the program at those points. So you could pass 2 and 3 as breakpoints to the program at it will tell you what were the values of x exactly at that time of execution. Its usage is not documented well, but I can put it on priority if you want to play around with it.

@algomaster99 @bhatnagar444 This issue is for paid support on Spoon. For anything not related to getting professional, paid support, please open a new issue :)

@monperrus I have edited the opening post of this issue to clarify its purpose.