Ok! Let us know how it goes! This looks exciting!
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
On Aug 7, 2015, at 7:27 AM, Tudor Girba
<tudor(a)tudorgirba.com <mailto:tudor@tudorgirba.com>> wrote:
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
<mailto:alexandre.bergel@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 <http://www.bergel.eu/>
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Aug 2, 2015, at 6:26 PM, Tudor Girba
<tudor(a)tudorgirba.com <mailto:tudor@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
<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 <http://www.tudorgirba.com/>
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
<https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
<https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
--
www.tudorgirba.com <http://www.tudorgirba.com/>
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev