Kermeta Compiler Testing Session
October 08, 2008
17h - 18h00 (Lipari Room): Presentation + demo of the compiler and its environment
20h00 - 00h15: Bugs and Feature requests reporting on compiling issues
Participants of the testing session:
Vincent, Gregory, Didier, Brice (from Lancaster), Olivier, Gilles, Cyril.
A report is available on the Triskell wiki at: http://triskell.wiki.irisa.fr/tiki-index.php?page=KCTS and all the corresponding bugs are on the forge.
Goals:
- bug listing
- known limitation (not implemented) listing
- optimization listing: performance (*), refactoring (design (**))
Installation and materials:
- Download the bundle Kermeta 1.2 and unzip it
- Create a workspace
- Download the psf file dedicated to the main Eclipse and import it in your workspace => all the required plugins will be downloaded from the gforge
- Create an Eclipse Application Run Configuration: "Run Configurations > Eclipse Application > double click to create a new one"
- fill the name of the configuration
- Set the VM arguments in section "Arguments"
- -Xmx512m
-Xss1024k
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith - Run (at the right button)
- A new instance of Eclipse is launched
- Your environement is right for testing the Kermeta Compiler !
- First try: right click on a kmt file: "Compile Kmt to EMF plugin (Experimental)"
- An Eclipse plugin will be generated, after you can try to run one generated main contained in runner Java package.
Challenges:
- standalone version
- test suite integration (interpreted vs compiled)
- (*) generating the reflection file in Java instructions to improve performance
- serialization of traces in a *.traceability model for reusing the traces after the compiling time
- (**) inventory of all Annotations (compiler and others ...): seperate the annotations and the framework
- (**) extracting common helpers between Ecore MDK and the compiler
- UML profile to Ecore transformation compilation (GenModel basePackage)
- State of the art between the Kermeta reflection system and the EMF one (XyzPackage class)
- ...
Current limitations of the compiler:
- recursive function types
- super of function type
- succession of lambda expressions using self as Target
- calling function types from subtype: switch (dynamic linking)
- more information