Monday, October 05, 2009

Helios M2 of Xtext, Xpand and MWE


The M2 builds are promoted (with Athena!). And here's the promised update on what we've already done for the M2 of Helios.

You can find the details in the bugzilla links. Here I'll only mention new big features.

Xtext (fixed bugzillas)

Quickfix Support

It is now possible to register quickfixes for validation rules. The feature is documented as part of the validation section.

JVM - EMF bridge
This one allows referencing Java elements from EMF models, as it is desired in most DSLs which are used in a JVM context. We already wrote a small MWE prototype (without XML syntax), which makes use of this new component. It took us a day to come up with a neat MWE editor. Our upcoming base language will be based on top of this type system.
Sebastian is going to blog about the details soon.

EMF Index integration
We made some good progress with regards to the index integration. However, as it was not finished by M2 and the changes were too big we decided to hold it back. It will be shipped with M3 and I will write a separate blog about it soon.

Xpand (fixed bugzillas)

Incremental Generation
There's support for incremental generation now. It leverages EMFCompare to find out what has changed and only triggers those parts in a generator which could possibly be affected by the changes. In typical scenarios where one has big models and only very little changes between the builds this can yield a significant performance boost. The implementation is there and the unit tests should be a good starting point (org.eclipse.xpand.incremental.tests). Documentation and an example workflow will follow.

Xpand Profiler
If you want to improve the overall execution performance of your generator, the new Xpand profiler comes in handy. Heiko already blogged about it. There's also documentation available.

MWE (fixed bugzillas)

For MWE only some bugs were fixed. The new MWE syntax we're working on has not yet been checked in. It is primarily meant as a test language for the Java EMF bridge. In order to replace the current parser and infrastructure we need to implement an XML based reader (for backward compatibility) and of course the interpreter needs to work on EMF models. This is not planned for M3 as we have little resources and want to focus on the EMF Index integration as well as the Java EMF bridge. But I'm pretty sure we'll do this during one of the next milestones.

Disclaimer: We encourage everybody to use and test our milestones. It really helps to get as much feedback as possible. However, note that every API we introduce between M1 to M5 might be changed or even be removed completely in future milestones. Also milestones are usually not as stable as releases.

If you want to test the milestones just take the composite updates site from itemis:
http://download.itemis.com/updates/milestones/
Check the Antlr feature ("Xtext Antlr Support 0.8.0 M2" -> "Xtext Antlr Feature") and p2 will do the rest.

Just in case you're interested in what is planned for M3. Here are the bugzilla queries:
  1. Xtext M3 bugzillas
  2. Xpand M3 bugzillas
  3. MWE M3 bugzillas

4 comments:

Michael Scharf said...

Will the xtext/xpand/MWE milestones work with eclipse Galileo (3.5)? Or does it depend on Helios features?

I'd love to use it with Galileo...

Michael

Sven Efftinge said...

So far they do work with Galileo. However, we might decide to use new features in future milestones.

nickb said...

Just curious... why are you publishing to itemis.com instead of eclipse.org? And when you say "composite update sites" do you mean in the sense of a p2 composite repo, or the hacky thing I put together to bridge the gap last year for Modeling (before p2 had composite repos) ? I'm wondering how you're compositing these repos - might be something we could port to Athena.

Sven Efftinge said...

we of course publish to Eclipse updates sites. However, due to an IP issue with Antlr's generator there is opne bundle which is not developed and published under Eclipse.
As we don't want to force people to collect everything together on their own, we provide a one-stop-shop at itemis.
It's a p2 composite repository, which points to the eclipse update sites as well as our Antlr generator update site.