Difference between revisions of "EiffelStudio 16.05 Releases"
m (→Improvements: Added a note on adding more details in code analysis command-line error reports.) |
(→16.05.9.8969 (July 8th 2016)) |
||
(36 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}} | [[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}} | ||
− | = EiffelStudio 16.05 | + | = EiffelStudio 16.05 Releases= |
Beta download: https://ftp.eiffel.com/pub/beta/16.05/ | Beta download: https://ftp.eiffel.com/pub/beta/16.05/ | ||
− | ==16.05. | + | ==16.05.9.8969 (July 8th 2016)== |
===New features=== | ===New features=== | ||
+ | *EiffelStudio: Add VS 15 in addition of VS 2015 as backend C compiler. | ||
===Improvements=== | ===Improvements=== | ||
− | |||
− | |||
===Feature removed=== | ===Feature removed=== | ||
===Bug fixes=== | ===Bug fixes=== | ||
+ | *EiffelStudio: Fix EiffelWeb wizards | ||
+ | *EiffelStudio: Fix inability in project settings to add .NET assemblies. | ||
+ | *EiffelBuild: Fixed a bug causing incompletely initialized application and environment objects to be used when showing a window in a project generated by EiffelBuild. | ||
+ | *library (Vision): bug#19241 - Fixed a non-critical bug in the feature <e>{EV_DIALOG_IMP_COMMON}.show</e> that might lead to infinite recursion on Windows, though the feature is never called because it is always redefined except in classes for modal dialogs where a different feature is used for display. | ||
+ | *library (Base): test#agent015 - Fixed a regression bug in .NET version of <e>ROUTINE</e> that may cause an incorrect result or an exception when calling <e>{ROUTINE}.valid_operands</e> on an agent with reference arguments or when invoking such an agent with preconditions turned on. | ||
+ | *library (Base): bug#19245 (test#directory002) - Fixed a bug preventing directory contents with non-ASCII entry names to be recursively deleted when using <e>{DIRECTORY}.recursive_delete</e>, <e>{DIRECTORY}.delete_content</e>, <e>{DIRECTORY}.recursive_delete_with_action</e> or <e>{DIRECTORY}.delete_contents_with_action</e>. | ||
+ | *library (Base): Fixed a bug when <e>{DIRECTORY}.delete_content_with_action</e> could call an action agent even when the argument <e>file_number</e> was not positive that should have prevented any agent calls. | ||
+ | *runtime: test#runtime020 - Fixed a bug that may cause a Windows application to crash when it attempts to use standard input/output. | ||
+ | |||
===User changes=== | ===User changes=== | ||
− | * | + | *library (Base): test#directory002 - Avoided calls to an action agent from <e>{DIRECTORY}.delete_content_with_action</e> with the same arguments twice when processing nested directories. |
+ | *library (Base): test#directory002 - Changed <e>{DIRECTORY}.recursive_delete_with_action</e> to avoid calling an action agent when the argument <e>file_number</e> is not positive so that the behavior is similar to <e>{DIRECTORY}.delete_content_with_action</e>. | ||
===Developer changes=== | ===Developer changes=== | ||
+ | |||
+ | ==16.05.9.8814 (May 31st 2016)== | ||
+ | |||
+ | ===Improvements=== | ||
+ | *compiler: Provided more details (such as option name, rule name, kind of syntax error) for errors in code analysis command-line options. | ||
+ | *compiler: Supported position-independent code analysis options (temporary retaining old code analysis options) that act like regular EiffelStudio command-line options: | ||
+ | <code> | ||
+ | -ca_class (-all | <class_name>) | ||
+ | -ca_default | ||
+ | -ca_rule <rule_name_with_optional_setting> | ||
+ | -ca_setting <preference_file_name> | ||
+ | </code> | ||
+ | *compiler: Relaxed void safety rules for local variables and <e>Result</e> by allowing assigning of detachable values to them even when their type is attached. The change allows dropping explicit detachable marks in local declarations and simplifying code that uses Result, e.g., | ||
+ | <e> | ||
+ | foo: X | ||
+ | local | ||
+ | r: detachable X | ||
+ | do | ||
+ | r := something | ||
+ | if not attached r then | ||
+ | r := something_else_attached | ||
+ | end | ||
+ | Result := r | ||
+ | end | ||
+ | </e> | ||
+ | or | ||
+ | <e> | ||
+ | foo: X | ||
+ | do | ||
+ | if attached something as r then | ||
+ | Result := r | ||
+ | else | ||
+ | Result := something_else_attached | ||
+ | end | ||
+ | end | ||
+ | </e> | ||
+ | can now be rewritten as | ||
+ | <e> | ||
+ | foo: X | ||
+ | do | ||
+ | Result := something | ||
+ | if not attached Result then | ||
+ | Result := something_else_attached | ||
+ | end | ||
+ | end | ||
+ | </e> | ||
+ | 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: | ||
+ | # VEVI errors may be now reported as VUTA(2) when a local of an attached type is used as a target of call before it is attached. | ||
+ | # VEVI errors may be now reported as VJAR or VUAR when a local of an attached type is used as a source expression before it is attached. | ||
+ | # VJAR errors may now be reported as VUTA(2) when a local of an attached type is assigned a detachable value and is later used as a target of a call. | ||
+ | # VJAR errors may now be reported as VEVI when <e>Result</e> of an attached type is assigned a detachable value. | ||
+ | *compiler: Improved code generation for iterative form of loops in finalized mode by taking into account cursor types provided by iterable classes. | ||
+ | *compiler: Avoided object creation when accessing an attribute (usually <e>item</e>) on an expression of a basic type. | ||
+ | *compiler: Slightly improved performance of feature call on void target checks in finalized mode. | ||
+ | *compiler: Supported nested inlining of <e>{SPECIAL}.item</e> in finalized mode. | ||
+ | *library: Improved performance of iteration forms of loops for targets of the following classes: <e>ARRAY</e>, <e>ARRAYED_LIST</e>, <e>SPECIAL</e>, <e>READABLE_STRING_32</e>, <e>READABLE_STRING_8</e>. | ||
+ | *EiffelStudio: Improved 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. | ||
+ | |||
+ | ===Bug fixes=== | ||
+ | *EiffelStudio: bug#19173 - Fixed a bug that caused an exception when requesting to generate documentation or XMI for a target with a library disabled by a condition. | ||
+ | *compiler: test#codeanalysis019 - Fixed a bug that caused duplicate reports for CA020 rule (unused assigned variable) inside one class or spurious reports for this rule on several classes. | ||
+ | *compiler: bug#18028 (test#final114), test#final123 - Fixed a bug that caused incorrect code generation when inlining <e>across</e> loops or <e>separate</e> instructions. | ||
+ | *compiler: test#scoop077 - Fixed a bug in applying SCOOP semantics rules and checking SCOOP validity rules for iteration forms of loops with a target of a separate type. | ||
+ | *EiffelStudio: bug#19212 - Fixed a bug that caused an exception when using metrics tool and affected [[EiffelStudio 15.12 Releases]]. | ||
+ | *library: bug#19213 - Fixed a bug in an external signature of one of WEL features that might cause a crash when compiled with Gobo compiler. | ||
+ | *compiler: test#attach118 - Fixed a bug that might cause incorrect error reports for inherited code when target of reattachment involving conversion is of a detachable type. | ||
+ | *EiffelStudio: Added checks for validity of regular expressions used in include and exclude file rules specified in the project settings dialog with rejection of invalid regular expression using the corresponding error dialog to avoid a possibility to store ECF that cannot be retrieved. | ||
+ | |||
+ | ===User changes=== | ||
+ | *EiffelStudio: Changed order of processing of arguments taken from the command line and from the environment variable <code>ISE_EC_FLAGS</code>. Now arguments are first read from the environment variable and then from the command line. | ||
+ | *compiler: Marked old code analysis command-line options as obsolete. | ||
+ | *library: Changed interface and implementation of cursor classes used to implement <e>across</e> loops to get better performance. | ||
+ | *library: Added protection of window objects (of type <e>EV_WINDOW</e> and descendants) from garbage collection when there are no references to them or to objects holding such references and the associated windows become visible by using a feature <e>show</e> or its modifications (<e>show_modal_to_window</e> and <e>show_relative_to_window</e>) until the windows become hidden using <e>hide</e> or <e>destroy</e>. The protection should not affect any existing applications, but allows for easier window management in user's code especially in SCOOP mode. |
Latest revision as of 22:28, 8 July 2016
Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases and the most important changes are highlighted in green or in red (for breaking changes). The release notes of EiffelStudio can be found at the following URL. You can also download the latest revision here. Information about other version can be found under Category:Releases.
EiffelStudio 16.05 Releases
Beta download: https://ftp.eiffel.com/pub/beta/16.05/
16.05.9.8969 (July 8th 2016)
New features
- EiffelStudio: Add VS 15 in addition of VS 2015 as backend C compiler.
Improvements
Feature removed
Bug fixes
- EiffelStudio: Fix EiffelWeb wizards
- EiffelStudio: Fix inability in project settings to add .NET assemblies.
- EiffelBuild: Fixed a bug causing incompletely initialized application and environment objects to be used when showing a window in a project generated by EiffelBuild.
- library (Vision): bug#19241 - Fixed a non-critical bug in the feature
{EV_DIALOG_IMP_COMMON}.show
that might lead to infinite recursion on Windows, though the feature is never called because it is always redefined except in classes for modal dialogs where a different feature is used for display. - library (Base): test#agent015 - Fixed a regression bug in .NET version of
ROUTINE
that may cause an incorrect result or an exception when calling{ROUTINE}.valid_operands
on an agent with reference arguments or when invoking such an agent with preconditions turned on. - library (Base): bug#19245 (test#directory002) - Fixed a bug preventing directory contents with non-ASCII entry names to be recursively deleted when using
{DIRECTORY}.recursive_delete
,{DIRECTORY}.delete_content
,{DIRECTORY}.recursive_delete_with_action
or{DIRECTORY}.delete_contents_with_action
. - library (Base): Fixed a bug when
{DIRECTORY}.delete_content_with_action
could call an action agent even when the argumentfile_number
was not positive that should have prevented any agent calls. - runtime: test#runtime020 - Fixed a bug that may cause a Windows application to crash when it attempts to use standard input/output.
User changes
- library (Base): test#directory002 - Avoided calls to an action agent from
{DIRECTORY}.delete_content_with_action
with the same arguments twice when processing nested directories. - library (Base): test#directory002 - Changed
{DIRECTORY}.recursive_delete_with_action
to avoid calling an action agent when the argumentfile_number
is not positive so that the behavior is similar to{DIRECTORY}.delete_content_with_action
.
Developer changes
16.05.9.8814 (May 31st 2016)
Improvements
- compiler: Provided more details (such as option name, rule name, kind of syntax error) for errors in code analysis command-line options.
- compiler: Supported position-independent code analysis options (temporary retaining old code analysis options) that act like regular EiffelStudio command-line options:
-ca_class (-all | <class_name>) -ca_default -ca_rule <rule_name_with_optional_setting> -ca_setting <preference_file_name>
- compiler: Relaxed void safety rules for local variables and
Result
by allowing assigning of detachable values to them even when their type is attached. The change allows dropping explicit detachable marks in local declarations and simplifying 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
or
foo: X do if attached something as r then Result := r else Result := something_else_attached end end
can now be rewritten as
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:
- VEVI errors may be now reported as VUTA(2) when a local of an attached type is used as a target of call before it is attached.
- VEVI errors may be now reported as VJAR or VUAR when a local of an attached type is used as a source expression before it is attached.
- VJAR errors may now be reported as VUTA(2) when a local of an attached type is assigned a detachable value and is later used as a target of a call.
- VJAR errors may now be reported as VEVI when
Result
of an attached type is assigned a detachable value.
- compiler: Improved code generation for iterative form of loops in finalized mode by taking into account cursor types provided by iterable classes.
- compiler: Avoided object creation when accessing an attribute (usually
item
) on an expression of a basic type. - compiler: Slightly improved performance of feature call on void target checks in finalized mode.
- compiler: Supported nested inlining of
{SPECIAL}.item
in finalized mode. - library: Improved performance of iteration forms of loops for targets of the following classes:
ARRAY
,ARRAYED_LIST
,SPECIAL
,READABLE_STRING_32
,READABLE_STRING_8
. - EiffelStudio: Improved 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.
Bug fixes
- EiffelStudio: bug#19173 - Fixed a bug that caused an exception when requesting to generate documentation or XMI for a target with a library disabled by a condition.
- compiler: test#codeanalysis019 - Fixed a bug that caused duplicate reports for CA020 rule (unused assigned variable) inside one class or spurious reports for this rule on several classes.
- compiler: bug#18028 (test#final114), test#final123 - Fixed a bug that caused incorrect code generation when inlining
across
loops orseparate
instructions. - compiler: test#scoop077 - Fixed a bug in applying SCOOP semantics rules and checking SCOOP validity rules for iteration forms of loops with a target of a separate type.
- EiffelStudio: bug#19212 - Fixed a bug that caused an exception when using metrics tool and affected EiffelStudio 15.12 Releases.
- library: bug#19213 - Fixed a bug in an external signature of one of WEL features that might cause a crash when compiled with Gobo compiler.
- compiler: test#attach118 - Fixed a bug that might cause incorrect error reports for inherited code when target of reattachment involving conversion is of a detachable type.
- EiffelStudio: Added checks for validity of regular expressions used in include and exclude file rules specified in the project settings dialog with rejection of invalid regular expression using the corresponding error dialog to avoid a possibility to store ECF that cannot be retrieved.
User changes
- EiffelStudio: Changed order of processing of arguments taken from the command line and from the environment variable
ISE_EC_FLAGS
. Now arguments are first read from the environment variable and then from the command line. - compiler: Marked old code analysis command-line options as obsolete.
- library: Changed interface and implementation of cursor classes used to implement
across
loops to get better performance. - library: Added protection of window objects (of type
EV_WINDOW
and descendants) from garbage collection when there are no references to them or to objects holding such references and the associated windows become visible by using a featureshow
or its modifications (show_modal_to_window
andshow_relative_to_window
) until the windows become hidden usinghide
ordestroy
. The protection should not affect any existing applications, but allows for easier window management in user's code especially in SCOOP mode.