Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "ATL/VM Comparison"

< ATL
Line 98: Line 98:
 
! EMFVM
 
! EMFVM
 
! EMFTVM
 
! EMFTVM
 +
! Comment
 
! Proposed difference resolution
 
! Proposed difference resolution
 
|-
 
|-
Line 105: Line 106:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| Ant2Maven/Ant2Maven
 
| Ant2Maven/Ant2Maven
Line 111: Line 113:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| "foreach - distinct" not supported on EMFTVM
 
| "foreach - distinct" not supported on EMFTVM
 +
|
 
|-
 
|-
 
| Ant2Maven/Maven2XML
 
| Ant2Maven/Maven2XML
Line 117: Line 120:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| depends on Ant2Maven
 
| depends on Ant2Maven
 +
|
 
|-
 
|-
 
| Ant2Maven/XML2Ant
 
| Ant2Maven/XML2Ant
Line 123: Line 127:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| depends on Ant2Maven
 
| depends on Ant2Maven
 +
|
 
|-
 
|-
 
| AssertionModification
 
| AssertionModification
Line 129: Line 134:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| AssignementTest/DeclarativeTest
 
| AssignementTest/DeclarativeTest
Line 135: Line 141:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| EMFTVM assumes SET semantics for all properties, not ADD for collections
 
| EMFTVM assumes SET semantics for all properties, not ADD for collections
 +
|
 
|-
 
|-
 
| AssignementTest/ImperativeTest
 
| AssignementTest/ImperativeTest
Line 141: Line 148:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| EMFTVM assumes SET semantics for all properties, not ADD for collections
 
| EMFTVM assumes SET semantics for all properties, not ADD for collections
 +
|
 
|-
 
|-
 
| AssignementTest/RefiningTest
 
| AssignementTest/RefiningTest
Line 147: Line 155:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| EMFTVM assumes SET semantics for all properties, not ADD for collections
 
| EMFTVM assumes SET semantics for all properties, not ADD for collections
 +
|
 
|-
 
|-
 
| atl2010/CreateManyTraceElements
 
| atl2010/CreateManyTraceElements
Line 153: Line 162:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Refining trace mode not supported
 
| Refining trace mode not supported
 +
|
 
|-
 
|-
 
| atl2010/RemoveClass2010
 
| atl2010/RemoveClass2010
Line 159: Line 169:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Refining trace mode not supported
 
| Refining trace mode not supported
 +
|
 
|-
 
|-
 
| atl2010/RemoveClassAndCreate2010
 
| atl2010/RemoveClassAndCreate2010
Line 165: Line 176:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Refining trace mode not supported
 
| Refining trace mode not supported
 +
|
 
|-
 
|-
 
| atl2010/RemoveClassAndMoveProperty2010
 
| atl2010/RemoveClassAndMoveProperty2010
Line 171: Line 183:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Refining trace mode not supported
 
| Refining trace mode not supported
 +
|
 
|-
 
|-
 
| atl2010/RemoveClassAndMovePropertyRB2010
 
| atl2010/RemoveClassAndMovePropertyRB2010
Line 177: Line 190:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Refining trace mode not supported
 
| Refining trace mode not supported
 +
|
 
|-
 
|-
 
| atl2010/RemoveProperty2010
 
| atl2010/RemoveProperty2010
Line 183: Line 197:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Refining trace mode not supported
 
| Refining trace mode not supported
 +
|
 
|-
 
|-
 
| ATL2Problem
 
| ATL2Problem
Line 189: Line 204:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Overlapping matches for default rules
 
| Overlapping matches for default rules
 +
|
 
|-
 
|-
 
| BibTeX2DocBook
 
| BibTeX2DocBook
Line 195: Line 211:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Invalid Ecore models
 
| Invalid Ecore models
 +
|
 
|-
 
|-
 
| Book2Publication/Book2Publication
 
| Book2Publication/Book2Publication
Line 201: Line 218:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Invalid Ecore models
 
| Invalid Ecore models
 +
|
 
|-
 
|-
 
| Book2Publication/XML2Book
 
| Book2Publication/XML2Book
Line 207: Line 225:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| depends on Book2Publication
 
| depends on Book2Publication
 +
|
 
|-
 
|-
 
| Class2Relational/Class2Relational
 
| Class2Relational/Class2Relational
Line 213: Line 232:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Invalid Ecore models
 
| Invalid Ecore models
 +
|
 
|-
 
|-
 
| Class2Relational/Ecore2Class
 
| Class2Relational/Ecore2Class
Line 219: Line 239:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| depends on Class2Relational
 
| depends on Class2Relational
 +
|
 
|-
 
|-
 
| DSLBridge/MetamodelBridge/DSL2EMF/DSL2KM3
 
| DSLBridge/MetamodelBridge/DSL2EMF/DSL2KM3
Line 225: Line 246:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Assigning a Sequence of Sequences to a Collection property
 
| Assigning a Sequence of Sequences to a Collection property
 +
|
 
|-
 
|-
 
| DSLBridge/MetamodelBridge/DSL2EMF/XML2DSL
 
| DSLBridge/MetamodelBridge/DSL2EMF/XML2DSL
Line 231: Line 253:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Assigning a Sequence of Sequences to a Collection property
 
| Assigning a Sequence of Sequences to a Collection property
 +
|
 
|-
 
|-
 
| DSLBridge/MetamodelBridge/EMF2DSL/DSL2XML
 
| DSLBridge/MetamodelBridge/EMF2DSL/DSL2XML
Line 237: Line 260:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Assigning a single value to a Collection property
 
| Assigning a single value to a Collection property
 +
|
 
|-
 
|-
 
| DSLBridge/MetamodelBridge/EMF2DSL/KM32DSL
 
| DSLBridge/MetamodelBridge/EMF2DSL/KM32DSL
Line 243: Line 267:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Use of "self" in helper without context declaration
 
| Use of "self" in helper without context declaration
 +
|
 
|-
 
|-
 
| DSLBridge/ModelBridge/DSLModel2KM2
 
| DSLBridge/ModelBridge/DSLModel2KM2
Line 249: Line 274:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| foreach - distinct not supported on EMFTVM
 
| foreach - distinct not supported on EMFTVM
 +
|
 
|-
 
|-
 
| DSLBridge/ModelBridge/KM32ATL_KM22MM
 
| DSLBridge/ModelBridge/KM32ATL_KM22MM
Line 255: Line 281:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Assigning a single value to a Collection property
 
| Assigning a single value to a Collection property
 +
|
 
|-
 
|-
 
| DSLBridge/ModelBridge/XML2DSLModel
 
| DSLBridge/ModelBridge/XML2DSLModel
Line 261: Line 288:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| foreach - distinct not supported
 
| foreach - distinct not supported
 +
|
 
|-
 
|-
 
| Enumerations/Ecore
 
| Enumerations/Ecore
Line 267: Line 295:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| Enumerations/UML
 
| Enumerations/UML
Line 273: Line 302:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| Families2Persons
 
| Families2Persons
Line 279: Line 309:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Invalid Ecore models
 
| Invalid Ecore models
 +
|
 
|-
 
|-
 
| FlattenTest
 
| FlattenTest
Line 285: Line 316:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| InterModelReferences
 
| InterModelReferences
Line 291: Line 323:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| IteratorsTests
 
| IteratorsTests
Line 297: Line 330:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| MultipleOutputs
 
| MultipleOutputs
Line 303: Line 337:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| OverflowOperandStack
 
| OverflowOperandStack
Line 308: Line 343:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 +
|
 
|  
 
|  
 
|-
 
|-
Line 315: Line 351:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| ReverseBindings/NonRefiningMode
 
| ReverseBindings/NonRefiningMode
Line 321: Line 358:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Misconfigured test
 
| Misconfigured test
 +
|
 
|-
 
|-
 
| ReverseBindings/NonRefiningMode
 
| ReverseBindings/NonRefiningMode
Line 327: Line 365:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Misconfigured test
 
| Misconfigured test
 +
|
 
|-
 
|-
 
| RSM2TPC
 
| RSM2TPC
Line 333: Line 372:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Long execution time
 
| Long execution time
 +
|
 
|-
 
|-
 
| Sildex2Sam
 
| Sildex2Sam
Line 339: Line 379:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Invalid Ecore models + invalid rule inheritance + invalid module name
 
| Invalid Ecore models + invalid rule inheritance + invalid module name
 +
|
 
|-
 
|-
 
| SpreadSheetML2PerformanceUMLStateChart/SpreadsheetMLSimplified2Trace
 
| SpreadSheetML2PerformanceUMLStateChart/SpreadsheetMLSimplified2Trace
Line 345: Line 386:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| SpreadSheetML2PerformanceUMLStateChart/Trace2PerformanceMetrics
 
| SpreadSheetML2PerformanceUMLStateChart/Trace2PerformanceMetrics
Line 351: Line 393:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| SpreadSheetML2PerformanceUMLStateChart/UMLStateChart2PerformanceAnnotatedUMLStateChart
 
| SpreadSheetML2PerformanceUMLStateChart/UMLStateChart2PerformanceAnnotatedUMLStateChart
Line 357: Line 400:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| UML2Relational
 
| UML2Relational
Line 363: Line 407:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Releng issue
 
| Releng issue
 +
|
 
|-
 
|-
 
| UniqueLazyRule
 
| UniqueLazyRule
Line 369: Line 414:
 
| style="color:red;" | FAIL
 
| style="color:red;" | FAIL
 
| Invalid Ecore model, Module name does not match file name
 
| Invalid Ecore model, Module name does not match file name
 +
|
 
|}
 
|}

Revision as of 16:34, 16 April 2015

The objective of this page is to gather a list of features that are implemented differently in the three ATL Virtual Machines (VMs). Note that the recommended VM is EMFVM. RegularVM should only be used when EMFVM does not do what you want (increasingly rare). EMFTVM should only be used when you need the new experimental research features.

This table does not contain all features that are working similarly on all VMs.

Feature RegularVM EMFVM EMFTVM Proposed difference resolution
supercall yes no yes fix EMFVM
superget (e.g. "super.attribute") no no yes EMFTVM improvement (i.e., no modification of older VMs)
attribute helper on OclUndefined no yes yes
debugger yes partially (does not stop on errors, variable inspection may not always work, especially stack in disassembly mode) yes, but without stack inspection
.debug(<no argument>) no yes yes (commit) EMFVM & EMFTVM improvement (i.e., no modification on Regular VM)
OCL collections yes, eager yes, eager yes, lazy if laziness is never problematic then EMFTVM improvement (i.e., no modification on older VMs) else make it configurable
Rule inheritance yes, single yes, single yes, multiple (via "-- @extends") EMFTVM improvement (i.e., no modification on older VMs), consider ATL syntax extension
Method dispatch virtual virtual multiple virtual EMFTVM improvement (i.e., no modification on older VMs)
Closures no no yes (but ATL syntax does not support defining Lambda parameters) EMFTVM improvement (i.e., no modification on older VMs), consider ATL syntax extension
Helper on Collection context  ?  ? yes, with element type erasure EMFTVM improvement (i.e., no modification on older VMs)
Refining mode In-place In-place In-place, without explicit "drop"
OclUndefined pretty printed as 'OclUndefined' 'OclUndefined' 'OclUndefined' (bug)
self instead of thisModule in context-less helpers and rules yes yes no report error for EMFTVM and deprecated for other VMs (see corresponding discussion on m2m-atl-dev)

The following table lists the status of the ATL non-regression tests for each VM:

Test RegularVM EMFVM EMFTVM Comment Proposed difference resolution
291626 FAIL FAIL FAIL Releng issue
Ant2Maven/Ant2Maven PASS PASS FAIL "foreach - distinct" not supported on EMFTVM
Ant2Maven/Maven2XML PASS PASS FAIL depends on Ant2Maven
Ant2Maven/XML2Ant PASS PASS FAIL depends on Ant2Maven
AssertionModification FAIL FAIL FAIL Releng issue
AssignementTest/DeclarativeTest PASS PASS FAIL EMFTVM assumes SET semantics for all properties, not ADD for collections
AssignementTest/ImperativeTest PASS PASS FAIL EMFTVM assumes SET semantics for all properties, not ADD for collections
AssignementTest/RefiningTest PASS PASS FAIL EMFTVM assumes SET semantics for all properties, not ADD for collections
atl2010/CreateManyTraceElements FAIL PASS FAIL Refining trace mode not supported
atl2010/RemoveClass2010 FAIL PASS FAIL Refining trace mode not supported
atl2010/RemoveClassAndCreate2010 FAIL PASS FAIL Refining trace mode not supported
atl2010/RemoveClassAndMoveProperty2010 FAIL PASS FAIL Refining trace mode not supported
atl2010/RemoveClassAndMovePropertyRB2010 FAIL PASS FAIL Refining trace mode not supported
atl2010/RemoveProperty2010 FAIL PASS FAIL Refining trace mode not supported
ATL2Problem PASS PASS FAIL Overlapping matches for default rules
BibTeX2DocBook PASS PASS FAIL Invalid Ecore models
Book2Publication/Book2Publication PASS PASS FAIL Invalid Ecore models
Book2Publication/XML2Book PASS PASS FAIL depends on Book2Publication
Class2Relational/Class2Relational PASS PASS FAIL Invalid Ecore models
Class2Relational/Ecore2Class PASS PASS FAIL depends on Class2Relational
DSLBridge/MetamodelBridge/DSL2EMF/DSL2KM3 PASS PASS FAIL Assigning a Sequence of Sequences to a Collection property
DSLBridge/MetamodelBridge/DSL2EMF/XML2DSL PASS PASS FAIL Assigning a Sequence of Sequences to a Collection property
DSLBridge/MetamodelBridge/EMF2DSL/DSL2XML PASS PASS FAIL Assigning a single value to a Collection property
DSLBridge/MetamodelBridge/EMF2DSL/KM32DSL PASS PASS FAIL Use of "self" in helper without context declaration
DSLBridge/ModelBridge/DSLModel2KM2 PASS PASS FAIL foreach - distinct not supported on EMFTVM
DSLBridge/ModelBridge/KM32ATL_KM22MM PASS PASS FAIL Assigning a single value to a Collection property
DSLBridge/ModelBridge/XML2DSLModel PASS PASS FAIL foreach - distinct not supported
Enumerations/Ecore FAIL FAIL FAIL Releng issue
Enumerations/UML FAIL FAIL FAIL Releng issue
Families2Persons PASS PASS FAIL Invalid Ecore models
FlattenTest FAIL FAIL FAIL Releng issue
InterModelReferences FAIL FAIL FAIL Releng issue
IteratorsTests FAIL FAIL FAIL Releng issue
MultipleOutputs FAIL FAIL FAIL Releng issue
OverflowOperandStack FAIL FAIL FAIL
Relational2UML FAIL FAIL FAIL Releng issue
ReverseBindings/NonRefiningMode FAIL FAIL FAIL Misconfigured test
ReverseBindings/NonRefiningMode FAIL FAIL FAIL Misconfigured test
RSM2TPC FAIL FAIL FAIL Long execution time
Sildex2Sam PASS PASS FAIL Invalid Ecore models + invalid rule inheritance + invalid module name
SpreadSheetML2PerformanceUMLStateChart/SpreadsheetMLSimplified2Trace FAIL FAIL FAIL Releng issue
SpreadSheetML2PerformanceUMLStateChart/Trace2PerformanceMetrics FAIL FAIL FAIL Releng issue
SpreadSheetML2PerformanceUMLStateChart/UMLStateChart2PerformanceAnnotatedUMLStateChart FAIL FAIL FAIL Releng issue
UML2Relational FAIL FAIL FAIL Releng issue
UniqueLazyRule PASS PASS FAIL Invalid Ecore model, Module name does not match file name

Copyright © Eclipse Foundation, Inc. All Rights Reserved.