Difference between revisions of "ECMA"
Jump to navigation
Jump to search
(exchanged issue links to github to tasklinks to savannah) |
|||
Line 10: | Line 10: | ||
==These features are planned:== |
==These features are planned:== |
||
− | * [[ |
+ | * [[task:12662|generic inheritance]] |
− | * [[ |
+ | * [[task:12661|generic creation]] |
− | * [[ |
+ | * [[task:12660|conversions]] - maybe with a slightly stricter interpretation |
− | * [[ |
+ | * [[task:12653|named TUPLE elements]] |
− | * [[ |
+ | * [[task:12664|void-safety]] (Liberty implementation will probably differ from ECMA) |
− | * [[ |
+ | * [[task:12666|small syntax changes]] - the old syntax will be kept for compatibility for quite some time. |
==These ECMA features are not planned in Liberty:== |
==These ECMA features are not planned in Liberty:== |
||
Line 21: | Line 21: | ||
==These features are not in ECMA but implemented in Liberty:== |
==These features are not in ECMA but implemented in Liberty:== |
||
− | * inline agents are closures |
+ | * [[task:12671|inline agents are closures]] |
* explicit agent conformance rules (see [http://www.jot.fm/issues/issue_2004_04/article7/ this JOT paper]) |
* explicit agent conformance rules (see [http://www.jot.fm/issues/issue_2004_04/article7/ this JOT paper]) |
||
Revision as of 22:37, 24 July 2013
In ECMA-367 the ECMA committee TC39-TG4 defines an Eiffel standard. Liberty is not committed to fully implement this standard, but there will be much more of the improvements as in SmartEiffel. Liberty will implement those parts of ECMA that match the effective, efficient and simple design of previous versions of Eiffel. The parts requiring an extensive run-time model will not be currently implemented; those that needlessly complicates the language to comply to widespread programming conventions will be evaluated case-by-case
These ECMA features are already implemented:
With small deviations:
- Non-conforming inheritance (insert instead of inherit {NONE}) see Typing policy
- Assigners with the following deviations:
- VFAC is not enforced (let the standard rules of the replacing procedure call play instead)
- assigners are inherited with proper renames (ECMA does not explicit the rules in either way)
These features are planned:
- generic inheritance
- generic creation
- conversions - maybe with a slightly stricter interpretation
- named TUPLE elements
- void-safety (Liberty implementation will probably differ from ECMA)
- small syntax changes - the old syntax will be kept for compatibility for quite some time.
These ECMA features are not planned in Liberty:
- No-variant agent arguments.
These features are not in ECMA but implemented in Liberty:
- inline agents are closures
- explicit agent conformance rules (see this JOT paper)
Not yet decided:
- Bracket indexing
TYPE[G]
and explicit conversion
See also Compatibility.