diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.12-and-ISE-Eiffel-16.05.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.12-and-ISE-Eiffel-16.05.wiki index 43832704..a98ea212 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.12-and-ISE-Eiffel-16.05.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.12-and-ISE-Eiffel-16.05.wiki @@ -16,36 +16,36 @@ This is achieved as follows: The change allows dropping explicit detachable marks in local declarations and simplifying the code that uses Result, e.g. -foo: X - local - r: detachable X - do - r := something - if not attached r then - r := something_else_attached - end - Result := r - end + foo: X + local + r: detachable X + do + r := something + if not attached r then + r := something_else_attached + end + Result := r + end -foo: X - do - if attached something as r then - Result := r - else - Result := something_else_attached - end - end + foo: X + do + if attached something as r then + Result := r + else + Result := something_else_attached + end + end into -foo: X - do - Result := something - if not attached Result then - Result := something_else_attached - end - end + foo: X + do + Result := something + if not attached Result then + Result := something_else_attached + end + end The change does not allow previously void-unsafe code to be treated as void-safe, but may affect errors reported by the compiler, in particular: @@ -58,11 +58,11 @@ The change does not allow previously void-unsafe code to be treated as void-safe * Improve performance of code using across iterator.
Breaking change causes you to the need of add a redefinition of index_set to have code compatible with both 15.12 and 16.05. * Optimized code generation for iteration instruction calls to after and forth by rechecking the code with the actual type of a cursor variable. -* Added lower and upper to {READABLE_INDEXABLE} to be used instead of index_set by iteration cursor. +* Added lower and upper to READABLE_INDEXABLE to be used instead of index_set by iteration cursor. * Marked {READABLE_INDEXABLE}.index_set as obsolete in favor of lower and upper to avoid object creation, especially when implementing external cursors for iterative forms of a loop. -* Provided implementation of index_set in {READABLE_INDEXABLE} so that it can be removed in descendants. -* Made lower_defined and upper_defined in {INTEGER_INTERVAL} always True because this was the case for all created objects and clients almost never checked if boundaries were defined. -* Provided specialized versions of iteration cursors for SPECIAL, ARRAY, ARRAYED_LIST, READABLE_STRING_8, READABLE_STRING_32 to improve performance of across loops for these containers. +* Provided implementation of index_set in READABLE_INDEXABLE so that it can be removed in descendants. +* Made lower_defined and upper_defined in INTEGER_INTERVAL always True because this was the case for all created objects and clients almost never checked if boundaries were defined. +* Provided specialized versions of iteration cursors for SPECIAL, ARRAY, ARRAYED_LIST, READABLE_STRING_8, READABLE_STRING_32 to improve performance of across loops for these containers. ==Changes== @@ -98,8 +98,8 @@ failure end -* Fix .NET code generation to generate verifiable code when converting a manifest integer constant compatible with a NATURAL_64 (see eweasel test#dotnet118) -* Fix invalid .NET code generation when you inherit from a .NET class where one of the following routines is frozen: Equals, Finalize, ToString and/or GetHashCode (see eweasel test#dotnet119) +* Fix .NET code generation to generate verifiable code when converting a manifest integer constant compatible with a NATURAL_64 (see eweasel test#dotnet118) +* Fix invalid .NET code generation when you inherit from a .NET class where one of the following routines is frozen: Equals, Finalize, ToString and/or GetHashCode (see eweasel test#dotnet119) * Fix invalid inlining of routine involving an object test local, an iteration cursor or a separate instruction local (see bug#18028, test#final114, test#final123, test#bench019). * Fix test#scoop077 by applying SCOOP semantics rules and checking SCOOP validity rules for iteration cursors. * Fix an issue when extracting a type ID from a string involving the separate keyword.