Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "ATL/VM Comparison"
< ATL
(updated EMFTVM debugger support) |
(added self vs. thisModule difference and started a new column for proposed resolution) |
||
Line 11: | Line 11: | ||
! EMFVM | ! EMFVM | ||
! EMFTVM | ! EMFTVM | ||
+ | ! Proposed difference resolution | ||
|- | |- | ||
| supercall | | supercall | ||
Line 71: | Line 72: | ||
| 'OclUndefined' | | 'OclUndefined' | ||
| 'null' ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=406457 bug]) | | 'null' ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=406457 bug]) | ||
+ | |- | ||
+ | | self instead of thisModule in context-less helpers and rules | ||
+ | | yes | ||
+ | | yes | ||
+ | | no | ||
+ | | report error for EMFTVM and deprecated for other VMs (see [http://dev.eclipse.org/mhonarc/lists/m2m-atl-dev/msg00210.html corresponding discussion on m2m-atl-dev]) | ||
|} | |} |
Revision as of 06:13, 3 December 2013
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 | |
superget (e.g. "super.attribute") | no | no | yes | |
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) | |
OCL collections | yes, eager | yes, eager | yes, lazy | |
Rule inheritance | yes, single | yes, single | yes, multiple (via "-- @extends") | |
Method dispatch | virtual | virtual | multiple virtual | |
Closures | no | no | yes (but ATL syntax does not support defining Lambda parameters) | |
Helper on Collection context | ? | ? | yes, with element type erasure | |
Refining mode | In-place | In-place | In-place, without explicit "drop" | |
OclUndefined pretty printed as | 'OclUndefined' | 'OclUndefined' | 'null' (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) |