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.
Difference between revisions of "ATL/VM Comparison"
< ATL
m |
(added links to commits or bugs to follow resolution of issues) |
||
Line 35: | Line 35: | ||
| no | | no | ||
| yes | | yes | ||
− | | yes | + | | yes ([http://git.eclipse.org/c/mmt/org.eclipse.atl.git/commit/?id=66dca3c34f35cffbd41905020fc6351b024cddb8 commit]) |
|- | |- | ||
| OCL collections | | OCL collections | ||
Line 70: | Line 70: | ||
| 'OclUndefined' | | 'OclUndefined' | ||
| 'OclUndefined' | | 'OclUndefined' | ||
− | | 'null' | + | | 'null' ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=406457 bug]) |
|} | |} |
Revision as of 11:44, 24 April 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 |
---|---|---|---|
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 |
.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) |