I agree with Stef, do not be afraid to put it out there.

 

Nobody else knows your exact situation and hence the decisions you had to make to get to a certain design or implementation. Nobody is perfect. Worse things have been released but are still useful.

 

<rant>Look for example at the design of Roslyn. That thing is so hard to use and it's so unclear why things go wrong when they do. Yet it's supposed to be built by people who know very well what they are doing. Good luck if you want to use it and get it to work 100%. I still have some cases where it cannot give me receiver type information even though it is trivial to deduce (and visual studio does it without problems).</rant>

 

--

Johan Fabry,  Senior Software Engineer. 

johan@raincode.com | Email too brief? Here's whyhttp://emailcharter.org

 

From: Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] On Behalf Of Stéphane Ducasse
Sent: Wednesday, May 16, 2018 10:20 PM
To: Moose-related development <moose-dev@list.inf.unibe.ch>
Subject: [Moose-dev] Re: C# importer ?

 

Hi thomas

 

Do the best that you can. 

Now you see if you open-source a badly implemented solution (and say to the guys that it is in bad shape then we know it), people in need may even do a pass on it. 

This is not like certain tools full of getClass.equal() everywhere that pretend that this is the correct design :) They believe that they know object-oriented programming. 

 

We are waiting that Synectique situation clarifies (it will probably die) and from that day we will open-source everything we did. 

The C++, C importers are already open-source and we should structure the moose git repo. 

 

Stef

 

Hi Stef,

thanks for the info.

 

My famix generator is using a "proprietary" model to generate the FAMIX file. 

My IL "analysis engine", which based on Microsoft CCI to create the "proprietary" is not really in a shape to be open sourced (I fear I would ruine my professional career if somebody sees how badly it is implemented ;-). Yes I am not proud but it does the job and it was build in my rare spare time).

 

But I could offer to open source the famix generator and place it under the MIT license as an intermediate step. The long term goal for me would be to switch to Roslyn and have a sound implementation which can also be open sourced. 

 

The question to you is if such a (half-hearted) solution would be ok for you?

If so then I would put the code into my github repo

 

Cheers

Thomas

 

 


Von: "Stéphane Ducasse" <stephane.ducasse@inria.fr>
An: "Moose-related development" <moose-dev@list.inf.unibe.ch>
Gesendet: Mittwoch, 16. Mai 2018 20:17:20
Betreff: [Moose-dev] Re: C# importer ?

 

Thanks Thomas. 

Our objectives now is to put all the importer under MIT license. 

 

Stef

 

On 16 May 2018, at 17:59, Thomas Haug <thomas.haug@mathema.de> wrote:

 

Hi Johan,

 

you might take a look at my famix generator for IL code:

 

At the moment I am using Microsoft CCI but I have also begun to use Roslyn to generate Famix models. 

During the upcoming weeks I will release a new version of the generator and my other tool (also change the license to that everything can be also used for commerical use). 

 

Cheers

Thomas

 

 

 


Von: "Usman Bhatti" <usman.bhatti@gmail.com>
An: "Moose-related development" <moose-dev@list.inf.unibe.ch>
Gesendet: Montag, 16. April 2018 10:21:46
Betreff: [Moose-dev] Re: C# importer ?

 

 

 

On Mon, Apr 16, 2018 at 10:07 AM, Johan Fabry <Johan@raincode.com> wrote:

Hi Usman,

 

Thanks for the reply! In the mean time I have been looking at using Roslyn: the .NET reflection API's, to make a XML dump of the structure of the code. I am almost there so I will keep going this route.

 

Excellent!

 

 

Now I can write a basic class structure with simple call information, and it's only 160 LOC of C# code. But the thing is that parsing is not enough, I also want the semantic analysis that gives type information (argument types, receiver type) and I don’t want to write that myself. Roslyn is supposed to give me that as well so I am investigating that now.

 

I hope it does.

Now, Mono.Cecil also does name resolution but sometimes I encountered limitations with it hence I would also support that you go for a solution provided by MS.

 

regards.

Usman

 

 

--

Johan Fabry,  Senior Software Engineer. 

johan@raincode.com | Email too brief? Here's whyhttp://emailcharter.org

 

From: Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] On Behalf Of Usman Bhatti
Sent: Monday, April 16, 2018 9:59 AM
To: Moose-related development <moose-dev@list.inf.unibe.ch>
Subject: [Moose-dev] Re: C# importer ?

 

Hi John,

 

Sorry for the late reply.

 

I worked on a C# (MSIL) importer a few years back while I was working in Inria.

 

This parser was based on Mono project and a library Mono.Cecil that provides API to access MSIL.

 

The importer I wrote was able to extract the basic information required  to create FAMIX model (Classes, Namespaces, methods, attributes, invocations, accesses, params).

I think it might also have started to extract Generics but that part might not be complete. I didn't rewrite FAME/FAMIX for C# but used a library to transform FAME/FAMIX in Java to C#.

That meant that I could reuse the meta-model + MSE import/export from existing code. 

 

But I haven't been able to work on it since 6 years now. But if you are interested, you may have a look here at the code here:

 

One day when I get some time I would like to replace Mono.Cecil with Microsoft's parser that has been opensourced since.

 

HTH,

 

regards.

Usman

 

 

 

 

 

 

 

On Thu, Apr 12, 2018 at 12:09 PM, Johan Fabry <Johan@raincode.com> wrote:

Hi all,

And now it looks like I will need to analyze a part of our own code, written in C#. Is there a parser for C# in Moose and if so, how extensive/solid is it?

TIA
--
Johan Fabry,  Senior Software Engineer. 
johan@raincode.com | Email too brief? Here's why! http://emailcharter.org

_______________________________________________
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev

 


_______________________________________________
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev

 

_______________________________________________
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev

 

--------------------------------------------

Stéphane Ducasse

03 59 35 87 52

Assistant: Julie Jonas 

FAX 03 59 57 78 50

TEL 03 59 35 86 16

S. Ducasse - Inria

40, avenue Halley, 

Parc Scientifique de la Haute Borne, Bât.A, Park Plaza

Villeneuve d'Ascq 59650

France

 


_______________________________________________
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev

 

--------------------------------------------

Stéphane Ducasse

03 59 35 87 52

Assistant: Julie Jonas 

FAX 03 59 57 78 50

TEL 03 59 35 86 16

S. Ducasse - Inria

40, avenue Halley, 

Parc Scientifique de la Haute Borne, Bât.A, Park Plaza

Villeneuve d'Ascq 59650

France