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 a3261de7..b8945f76 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
@@ -17,35 +17,35 @@ 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
+ 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
+ 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
+ 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:
@@ -56,7 +56,7 @@ The change does not allow previously void-unsafe code to be treated as void-safe
==Improvements==
* Improve reporting for errors in regular expressions used in include and exclude file rules in ECF by adding position information and providing error description all the time.
-* 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. 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.
+* 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. 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.
==Changes==
@@ -77,16 +77,16 @@ The change does not allow previously void-unsafe code to be treated as void-safe
failure
- local
- i: INTEGER
- do
- bar (Void).make_from_array (Void) -- Comment out this line to fix the bug.
- across
- <<1, 2, 3>> as c_i
- loop
- i := c_i.item -- Error here.
- end
- end
+ local
+ i: INTEGER
+ do
+ bar (Void).make_from_array (Void) -- Comment out this line to fix the bug.
+ across
+ <<1, 2, 3>> as c_i
+ loop
+ i := c_i.item -- Error here.
+ end
+ end
* Fix .NET code generation to generate verifiable code when converting a manifest integer constant compatible with a NATURAL_64 (see eweasel test#dotnet118)
@@ -94,3 +94,4 @@ failure
* 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.
+