Hi,
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.
Cheers,
Doru
On Thu, Aug 6, 2015 at 7:19 PM, Alexandre Bergel <alexandre.bergel(a)me.com>
wrote:
Just wondering, how does it compare with VerveineJ? Is
it just because it
is open source?
cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Aug 2, 2015, at 6:26 PM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
Hi,
I would like to announce the jdt2famix project. This aims to be an
open-source solution for importing Java projects into Moose:
http://www.smalltalkhub.com/#!/~Moose/Jdt2Famix
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.
CAVEATS:
- 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 64 bits).
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 file anymore.
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.
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"Every thing has its own flow"