EiffelStudio 17.11 Releases

(Redirected from EiffelStudio ChangeLog)

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 red. 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 17.11.x Releases

Beta download: https://ftp.eiffel.com/pub/beta/17.11/


New features

  • EiffelStudio: Added commands (available in the IDE as menu entries and toolbar buttons) to launch code analysis on a class in the current editor window, on a previously analyzed item, on a parent cluster of a selected item, on a currently selected target. The results of the analysis go to the error list similar to compilation results.
  • compiler: Supported typed manifest arrays of the form {ARRAY [FOO]} <<bar, qux>> that allow for explicit specification on the array type (see more at eiffel.org).
  • compiler: Changed how a type of a manifest array is computed when no explicit type is specified, it no longer depends on the type of the target of a reattachment where the array is used as a source (see more at eiffel.org).


  • EiffelStudio: Used colored background in error list to distinguish between different kinds of messages: error, warning, hint, success. The color can be set in the preferences.
  • EiffelStudio: Moved error code in the error list to a dedicated column.
  • EiffelStudio: Supported filtering of error messages by free text.
  • library (Base): Updated CHARACTER_PROPERTIES to use Unicode 10.0.0 instead of 6.2.0.
  • compiler: test#bench021 - Optimized code generation for old expressions when they are known to not raise an exception.
  • compiler: test#unicode007 - Supported Unicode white space characters in source code as token delimiters. This might be useful when copying code from the internet where some servers/browsers replace ASCII white space and tab characters with no-break spaces.
  • compiler: Provided precise location in error messages for VPIR(1), VRLE(1), VREG, VRFA.
  • compiler, EiffelStudio: Used the preferences of the code analyzer to control when obsolete feature calls are reported by the compiler as warnings that can be suppressed, when as warnings that cannot be suppressed, and when as errors.
  • EiffelStudio: Improved style of the documentation generated with a filter for HTML with stylesheets.

Feature removed

Bug fixes

  • compiler: test#exec091 - Fixed code generation and run-time to make sure class invariant checks on expanded objects are done only after creation procedure is executed and only once.
  • compiler: test#exec370 - Fixed a bug that might cause a crash of a program because of incorrect code generation for conditional expressions involving values of reference and expanded types (e.g., if foo then "bar" else 5 end).
  • library (Base): test#lib046 - Fixed an bug when argument 0 (program name) returned by ARGUMENTS_32 started with a white space.
  • EiffelStudio: Changed sorting of error messages by position to use ordering by number values rather than by their textual representation.
  • EiffelStudio: test#codeanalysis026 - avoided spurious code analyzer message CA050 when a local is used only to initialize Result, but the local type is different from the type of Result: if the types are different (modulo attachment marks), the issue is not reported.
  • compiler: bug#15822 (test#valid252), test#valid294, test#valid295 - Fixed bugs when the name of an existing entity could be used in a nested scope for an inline separate local, an object test local, an iteration cursor, an inline agent argument or an inline agent local.
  • library, EiffelStudio: bug#19373 - Fixed a bug that might cause an integer division by zero in {EV_GRID_IMP}.recompute_vertical_scroll_bar.
  • library (Vision): bug#19388 - Fixed a bug that prevented caching images by EV_SCALED_PIXMAP_FACTORY and increased the number of such images up to 200.
  • library (Vision): Fixed bugs in EV_POSTSCRIPT_DRAWABLE_IMP that caused generation of invalid postscript: font names are normalized by removing any white space characters, an excessive parenthesis is not generated after the command "show".
  • EiffelStudio: Fixed a bug that did not allow for pick&drop on non-ASCII alias feature names.
  • EiffelStudio: Fixed a bug that caused identifiers with non-ASCII characters to be displayed incorrectly (with null/empty characters) in a basic text view of the feature tool.
  • EiffelStudio: Used inherited class source code to position a cursor in the editor when navigating to an error reported for the inherited code.
  • EiffelStudio: Avoided copying a feature clause comment from the previous feature clause in the features tool if the comment is absent in the current feature clause.

User changes

  • compiler: Changed an algorithm to compute a type of a conditional expression, now it does not depend on the order of expressions used in the branches, and always exists, i.e. there is no VWCE error anymore (more details are available at eiffel.org).
  • compiler: Added a warning reported when a manifest array type is computed using a target type of the reattachment the array is involved in as a source. The warning can be disabled in the project settings during the first year after the release, cannot be disabled afterwards, and becomes an error after 1.5 year after the release.
  • EiffelStudio: Disallowed application of automatic fixes to modified classes (changed either by external tools or in the editor). The project needs to be recompiled to apply the fixes. Application of several fixes to the same class is possible in one go.

Developer changes