Skip to main content
Jump to: navigation, search

Difference between revisions of "ATL/VM Comparison"

< ATL
(added links to commits or bugs to follow resolution of issues)
(updated EMFTVM debugger support)
Line 30: Line 30:
 
| yes
 
| yes
 
| partially (does not stop on errors, variable inspection may not always work, especially stack in disassembly mode)
 
| partially (does not stop on errors, variable inspection may not always work, especially stack in disassembly mode)
| yes
+
| yes, but without stack inspection
 
|-
 
|-
 
| .debug(<no argument>)
 
| .debug(<no argument>)

Revision as of 02:57, 26 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, 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)

Copyright © Eclipse Foundation, Inc. All Rights Reserved.