Closed thSoft closed 6 years ago
No, migrating isn't necessary at all. Maybe there are performance improvements that may be relevant, but I don't think either it's worth the compatibility issues.
Performance was improved indeed - for Xbase/Xtend - I do not think that there are any framework improvements immediately paying off. In Elysium, I know two bottlenecks a) the backtracking parser b) parsing and indexing the default imports over and over again
The first can be solved only with a complete grammar review (if at all). The second is caused by the importUri-Concept. Simply speaking each file to be compiled gets its own resource set and all transitively imported files are added (again and again). Switching to namespace imports and qualified names is not quite trivial, though. Here is how it could be done: The qualified name of an assignment is [fullFilePathUri].[SimpleName] and includes are translated into a namespace import [fullFilePathUri].* plus includes of that file.
Deferring this until really necessary. Thanks for the performance improvement tips!
I have started the migration to Xtext 2.10 and will create a corresponding branch in my clone soon. The first goal will be to keep all the current functionality. The maven build will not work out of the box as that would require the (snapshot) eclipse commons plugins to be available from an update site (tycho build) as they are not part of the Elysium build.
@thSoft: I have pushed an Xtext 2.10 branch to my clone. If you want to try it out, you can use the following setup URI: https://raw.githubusercontent.com/nittka/elysium/Xtext210/org.elysium.parent/Elysium.setup Chose the 2.10 branch (not the master). As the Elysium clone location you have to use https://github.com/nittka/elysium.git For me the setup works including starting the MWE file.
I have not yet adapted the formatter (new API; it's the next thing on my list), so the corresponding test fails. Other than that all the original functionality should have stayed the same.
I'd like the 2.10-Migration and mavenization of the entire project to be finished (stable), before I start working on the grammar issues. What's your release plan? (I would not really like to address the other issues that came up in two branches, as the project structure changes quite a bit)
Thank you, I tried your branch, it works fine! The release plan is to release 0.5.3 from the current master as soon as https://github.com/thSoft/eclipse-commons/issues/22 is resolved, then merge this branch to master as soon as possible.
Before merging it might make sense to update the Xtext branch to 2.13!? I have not had a closer look, but it is possible that with the internal restructurings started with 2.11, simply upgrading the 2.10-branch to 2.13 might not work. My suggestion would be to go up to 2.13 without any intermediate steps. Would that be OK for you? I will check out the project layout differences between 2.10 and 2.13. Either the the existing 2.10-branch can be used or I'll migrate the master branch to 2.13 again... but not right away.
I have tried to merge/rebase the Xtext210-branch with master locally and failed. What I did was manually add the changes made on master and pushe an additional xtext210merge branch. A few modifications will be necessary to get the Maven build working. Adding the eclipse commons update site is necessary, the feature project needs some modifications in order to get the licence included, tests will have to be dealt with.
Contrary to my previous comment, I would like to migrate to 2.10 first, get the tycho build running and migrate to 2.13 later (as the project layout seems not to have changed).
Should I create a PR for the xtext210merge branch? It would be great to get the new project layout into master before doing any more work on Elysium related issues.
Yes, please create the PR and I’ll review and merge it. Building with Tycho will be a huge added value!
I consider this issue closed. Migration has been done. Grammar refactoring etc. should be done in a separate ticket.
Could you briefly describe, why the update to 2.8 should be done? If we do not use any 2.8-features staying with 2.7 is no problem at all (Elysium would work with both Xtext versions). Also it will not force users to update to 2.8 without any reason (possible Xtext version conflicts with other plugins).