Ok! Let us know how it goes! This looks exciting!
On Aug 7, 2015, at 7:27 AM, Tudor Girba <tudor(a)tudorgirba.com
Thanks for asking :).
Indeed, the first thing is to have an open-source solution for Java. The main reason for
this is that there are people that would like to play with Moose, and within the context
of Java, I often get the feedback that people expect the availability of open-source
solutions. I know that VerveineJ is available if you ask, but this step of asking looks
expensive in the eye of a casual visitor. I would like to achieve a solution that can
provide a one-click experience (or something close to that).
Besides being open-source, the main technical difference is that the concrete visiting
and model building code is built in Pharo, not in Java. It relies on JNIPort to
communicate with the JDT parser, and the visitor on the Java side just forwards the calls
to the Pharo code. This implies that we can do live analysis without the intermediary step
of generating a large MSE file. However, we are still at the beginning, and it can be that
at the end it will prove that there are technical impediments. In that case, we will fall
back to a Java-based implementation similar to VerveineJ.
I want to focus this month on getting far enough to understand the limits. There are many
details to explore, and that is why I would benefit from help from the community.
If it works, the side-effect benefit of this project is that it will document that Pharo
is actually able to communicate with a Java library for real use cases.
On Thu, Aug 6, 2015 at 7:19 PM, Alexandre Bergel <alexandre.bergel(a)me.com
Just wondering, how does it compare with VerveineJ? Is it just because it is open
Alexandre Bergel http://www.bergel.eu
> On Aug 2, 2015, at 6:26 PM, Tudor Girba <tudor(a)tudorgirba.com
> I would like to announce the jdt2famix project. This aims to be an open-source
solution for importing Java projects into Moose:
> The project is based on:
> - JDT for raw parsing. This is implemented in Java.
> - JNIPort for delegating to Pharo the Java methods that visit the Java AST.
> Installation details can be found on the main project page.
> The current importing logic is rudimentary, but the first goal was to setup the whole
ping-pong between Pharo and Java. This one works, and I am quite happy about that. You can
take a look at the JdtImporterTest.
> - Due to a problem in JNIPort, currently, this project only works in Moose 5.0.
> - Also, for now it works out of the box only for Mac OS X.
> - And, on top of that, it requires Java 1.6 for now (until we will get the Spur VM on
> There are still quite some challenges left, but once we get this going, we would also
be able to use deep AST analysis live, and to do incremental model update when something
changes on disk. Furthermore, if it scales, this would not be based on an intermediary MSE
> I would like to ask for help in several directions:
> 1. Implement the full model import. This would require diving into JDT and
implementing the corresponding mapping logic. I spent a few days on this. It is hairy, but
it is not that impossible (only it has a ton of edge cases). This should be test driven,
in that, for each case, we need to have a corresponding sample.
> 2. Fix JNIPort to work in Pharo 5.
> 3. Get the whole thing to work out of the box for Linux and Windows.
> 4. Check scalability.
> Please let me know your opinions, and let me know if you would like to participate.
> "Every thing has its own flow"
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch <mailto:Mooseemail@example.com>
Moose-dev mailing list
"Every thing has its own flow"
Moose-dev mailing list