Difference between revisions of "Language Roadmap"

(<font color="#006000">6.1 (November 2007)</font>)
(Added UnderConstruction template. Removed HTML specific code since it is against wiki practices)
Line 1: Line 1:
(Page under construction.)
+
[[Category:Releases]]__NOTOC__
 +
 
 +
{{UnderConstruction}}
  
 
= Road map to ISO/ECMA Eiffel =
 
= Road map to ISO/ECMA Eiffel =
[[Category:Releases]]__NOTOC__
 
  
 
The Eiffel language is described by an international standard, ECMA standard 367, <i>Eiffel: Analysis, Design and Programming Language</i>. The first version was published in June of 2005; the current revision (revision 2) is from June, 2006. In November 2006 this standard was adopted by the International Standards Organization (ISO). The text of the ISO standard is identical to the text of the ECMA standard except for a few differences in front matter and typography. "ECMA/ISO Eiffel" denotes here the language defined by these standards.
 
The Eiffel language is described by an international standard, ECMA standard 367, <i>Eiffel: Analysis, Design and Programming Language</i>. The first version was published in June of 2005; the current revision (revision 2) is from June, 2006. In November 2006 this standard was adopted by the International Standards Organization (ISO). The text of the ISO standard is identical to the text of the ECMA standard except for a few differences in front matter and typography. "ECMA/ISO Eiffel" denotes here the language defined by these standards.
Line 12: Line 13:
 
The following sections present the plan for integration of all novelties, both in past versions and in future ones. The future part is for informative purposes only and subject to revision as the implementation work progresses.
 
The following sections present the plan for integration of all novelties, both in past versions and in future ones. The future part is for informative purposes only and subject to revision as the implementation work progresses.
  
==<font color="#a00000">PAST RELEASES</font>==
+
==PAST RELEASES==
  
==<font color="#006000">x.y (date)</font>==
+
==x.y (date)==
 
Precursor mechanism
 
Precursor mechanism
  
==<font color="#a00000">FUTURE RELEASES</font>==
+
==FUTURE RELEASES==
  
==<font color="#006000">6.0 (June 2007)</font>==
+
==6.0 (June 2007)==
 
*"Flat" class checking: type checking of features performed in every class, even for inherited features. (For example x := y in a routine r could be valid in a class C, but in a descendant of C that redefines the type of x or y it might become invalid. The type policy of ECMA/ISO Eiffel explicitly specifies that every feature must be valid in every class that has it.)
 
*"Flat" class checking: type checking of features performed in every class, even for inherited features. (For example x := y in a routine r could be valid in a class C, but in a descendant of C that redefines the type of x or y it might become invalid. The type policy of ECMA/ISO Eiffel explicitly specifies that every feature must be valid in every class that has it.)
  
 
*`~' symbol for object equality. `a ~ b' means a.is_equal (b) (or equal (a, b)) and follows the redefinitions of is_equal. This goes with a change of signature for is_equal, reducing the risk of catcalls: is_equal (x: ANY) rather than with an argument of type `like Current'.
 
*`~' symbol for object equality. `a ~ b' means a.is_equal (b) (or equal (a, b)) and follows the redefinitions of is_equal. This goes with a change of signature for is_equal, reducing the risk of catcalls: is_equal (x: ANY) rather than with an argument of type `like Current'.
  
==<font color="#006000">6.1 (November 2007)</font>==
+
==6.1 (November 2007)==
 
*To be completed
 
*To be completed

Revision as of 02:04, 11 April 2007


Construction.png Not Ready for Review: This Page is Under Development!

Road map to ISO/ECMA Eiffel

The Eiffel language is described by an international standard, ECMA standard 367, Eiffel: Analysis, Design and Programming Language. The first version was published in June of 2005; the current revision (revision 2) is from June, 2006. In November 2006 this standard was adopted by the International Standards Organization (ISO). The text of the ISO standard is identical to the text of the ECMA standard except for a few differences in front matter and typography. "ECMA/ISO Eiffel" denotes here the language defined by these standards.

The text can be found, among other places, at this location on the ECMA site.

While ECMA/ISO Eiffel for a large part consolidates the current language as implemented by Eiffel compilers, a number of innovative aspects have preceded actual releases of the environment, and some are not implemented yet. Eiffel Software is committed to implementing the full ECMA/ISO Eiffel specification. Each successive release of the compiler brings the implementation closer to that goal. This effort started several years before the completion of the ECMA standard, with the experimental introduction of language revisions as they were being refined by the committee.

The following sections present the plan for integration of all novelties, both in past versions and in future ones. The future part is for informative purposes only and subject to revision as the implementation work progresses.

PAST RELEASES

x.y (date)

Precursor mechanism

FUTURE RELEASES

6.0 (June 2007)

  • "Flat" class checking: type checking of features performed in every class, even for inherited features. (For example x := y in a routine r could be valid in a class C, but in a descendant of C that redefines the type of x or y it might become invalid. The type policy of ECMA/ISO Eiffel explicitly specifies that every feature must be valid in every class that has it.)
  • `~' symbol for object equality. `a ~ b' means a.is_equal (b) (or equal (a, b)) and follows the redefinitions of is_equal. This goes with a change of signature for is_equal, reducing the risk of catcalls: is_equal (x: ANY) rather than with an argument of type `like Current'.

6.1 (November 2007)

  • To be completed