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, without any guarantee that they will ever become stable or be maintained.
This table does not contain all features that are working similarly on all VMs.
|superget (e.g. "super.attribute")||no||no||yes|
|attribute helper on OclUndefined||no||yes||yes|
|debugger||yes||partially (does not stop on errors, does not allow variable inspection)||yes|
|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"|