From 87215d4b17296f3f5ae320d48ad3e366e40e24ec Mon Sep 17 00:00:00 2001 From: manus Date: Tue, 23 Nov 2010 08:24:23 +0000 Subject: [PATCH] Author:manus Date:2010-11-23T08:24:23.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@701 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- ...or-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki | 3 --- ...or-changes-between-ise-eiffel-57-and-ise-eiffel-60.wiki | 6 ------ ...or-changes-between-ise-eiffel-60-and-ise-eiffel-61.wiki | 5 ----- ...or-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki | 7 ------- ...or-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki | 2 +- .../void-safety-background-definition-and-tools.wiki | 2 +- 6 files changed, 2 insertions(+), 23 deletions(-) diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki index 3cc0c7d1..a5d3e0d5 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki @@ -5,9 +5,6 @@ ==What's new== {{seealso|See also: [[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} -* Support for new expanded semantics defined in ECMA-367.==What's new== - -{{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} * Support for new expanded semantics defined in ECMA-367. The current limitations are: no copy semantics in the .NET code generation, and still no generic conformance. * Inline agents as defined in ECMA-367 with the limitation to only accept the do form. * Added possibility to define agents on attributes or externals. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-57-and-ise-eiffel-60.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-57-and-ise-eiffel-60.wiki index 5740fac3..68e1e9ce 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-57-and-ise-eiffel-60.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-57-and-ise-eiffel-60.wiki @@ -8,12 +8,6 @@ * Added support for multiple constraints in formal generic parameters. * The root class can now be a generic class, and thus one can now specify a root type. * The notion of creation readiness according to ECMA Eiffel standard (2nd edition, chapter 8.12.12) is implemented. -* Added experimental option for full class checking. It can be enabled at the system, cluster or class level.==What's new== - -{{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} -* Added support for multiple constraints in formal generic parameters. -* The root class can now be a generic class, and thus one can now specify a root type. -* The notion of creation readiness according to ECMA Eiffel standard (2nd edition, chapter 8.12.12) is implemented. * Added experimental option for full class checking. It can be enabled at the system, cluster or class level. However not all our code has been compiled with this option so don't be surprised if you get errors in our libraries. The next release should fix all the remaining issues. * Integers can now also be specified with binary and octal representation. * Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-60-and-ise-eiffel-61.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-60-and-ise-eiffel-61.wiki index 01cbfe2b..71a16f66 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-60-and-ise-eiffel-61.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-60-and-ise-eiffel-61.wiki @@ -7,11 +7,6 @@ {{seealso|See also: [[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} * Multiple errors are reported for each compilation degree. * Experimental support for Non-conforming Inheritance has been added (Classic only). Classes may now be inherited (using inherit {NONE} but no conformance of that class is implied. -* Attachment marks are supported.==What's new== - -{{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} -* Multiple errors are reported for each compilation degree. -* Experimental support for Non-conforming Inheritance has been added (Classic only). Classes may now be inherited (using inherit {NONE} but no conformance of that class is implied. * Attachment marks are supported. Now it's possible to specify whether an entity is attached or detachable: a: !A -- a cannot be used before it is attached b: ?A -- b can be used before it is attached diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki index d76a3418..5861f93b 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki @@ -9,13 +9,6 @@ * Added support for new ~ operator which can compare 2 objects safely regardless of their type. * Added detection of harmful catcall at runtime (harmless ones are currently ignored). * Added support for `note' keyword with a migration path in case `note' is being used as an identifier in your code. -* Added `-gc_stats' option to get some information on how much CPU==What's new== - -{{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} -* Exceptions as objects are now implemented. -* Added support for new ~ operator which can compare 2 objects safely regardless of their type. -* Added detection of harmful catcall at runtime (harmless ones are currently ignored). -* Added support for `note' keyword with a migration path in case `note' is being used as an identifier in your code. * Added `-gc_stats' option to get some information on how much CPU time is spent in GC during an Eiffel compilation. * Introduced several new much more powerful CAPs that now can be applied not only to read-only entities, but also to local variables (including Result), and can take into account execution paths as well as some obvious void-safe patterns. diff --git a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki index aa3153a0..297c36e9 100644 --- a/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki +++ b/documentation/current/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki @@ -7,7 +7,7 @@ {{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }} * Implemented proper runtime conformance for attached types, that is to say A [!ANY] will conform to A [!ANY] or A [?ANY], but A [?ANY] will only conform to A [?ANY]. -* Added support for the new attriibute keyword (support is enabled when using the standard syntax option, i.e. the same option that allows you to use the note keyword. +* Added support for the new attribute keyword (support is enabled when using the standard syntax option, i.e. the same option that allows you to use the note keyword. ==Improvements== * Improved speed of compiler by about 10% overall. diff --git a/documentation/current/method/void-safe-programming-eiffel/void-safety-background-definition-and-tools.wiki b/documentation/current/method/void-safe-programming-eiffel/void-safety-background-definition-and-tools.wiki index 9c55ef5d..66fce3c0 100644 --- a/documentation/current/method/void-safe-programming-eiffel/void-safety-background-definition-and-tools.wiki +++ b/documentation/current/method/void-safe-programming-eiffel/void-safety-background-definition-and-tools.wiki @@ -176,7 +176,7 @@ Still, it's not too hard to understand the basics of initializing variables of a ===Self-initializing attributes=== -A self-initializing attribute is guaranteed to have a value when accessed at run time. Declarations of self-initializing attributes are characterized by the use of attribute keyword. The code that follows the attribute keyword is executed to initialize the attribute in the case that the attribute is accessed prior to being initialized in any other way. +A self-initializing attribute is guaranteed to have a value when accessed at run time. Declarations of self-initializing attributes are characterized by the use of the attribute keyword. The code that follows the attribute keyword is executed to initialize the attribute in the case that the attribute is accessed prior to being initialized in any other way. So, self-initializing attributes are ordinary attributes, with the restriction that they are of both ''attached'' types and ''reference'' types (i.e., not expanded types or constants). Self-initializing attributes still can be, and typically will be initialized in the traditional ways. The difference is that the code in the attribute part serves as a kind of safety net guaranteeing that a self-initializing attribute will never be void, even if it is accessed prior to being initialized by one of the traditional means.