EiffelStudio 17.01 Releases

Revision as of 23:18, 11 November 2016 by Alexander Kogtenkov (Talk | contribs) (Bug fixes: Added notes on fixing test#attach122 and test#attach123.)

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.11.x Releases

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


New features

  • library: Supported a version of a process library (used to launch external processes) for single-threaded environments. It differs from the full-fledged version by absence of wait for process termination with timeout (no wait_for_exit_with_timeout), asynchronous writing to child process standard input (put_string is blocking) and reading from child process standard output and error streams (redirection to agents is not supported).


  • EiffelStudio: Configuration option "Are types attached by default?" defaults to True when reading non-void-safe projects so that if the project is changed to be void-safe, the recommended default for attachment status of class types without marks is used.
  • compiler: Supported nested inlining of a selected set of features from SPECIAL in finalized mode: base_address, clear_all, copy_data, count, item, overlapping_move, non_overlapping_move, put.
  • compiler: Fix crash in melted code when calling {TYPE}.is_attached, {TYPE}.is_expanded.
  • Library (Base): Add ability to change the start position when storing/retrieving using a SED_MEMORY_READER_WRITER.
  • Library (Base): Add {TYPE}.is_deferred and use this in {REFLECTOR}.new_instance_of to avoid creating abstract type at runtime.
  • Library (Base): Refactored RT_DEBUGGER with breaking changes: rt_worbench_for_for_debugger renamed into wait_for_debugger and discard_debug into disable_debug.
  • EiffelStudio: Grouped options in target/library/precompile/cluster/class tabs in Project settings dialog in sections by their purpose.
  • EiffelStudio: Supported multiline descriptions in an option tab of Project settings dialog and in Customized formatters dialog.

Feature removed

  • EiffelStudio: Removed option "Are types attached by default?" from project settings dialog. Potential incompatibility: old Eiffel configuration files (ECF) that rely on "class types are detachable by default" policy and migrate to "attached by default" policy will need to be changed directly by editing the file, not from EiffelStudio.

Bug fixes

  • runtime: Fixed a bug in the CECIL macro eif_attribute_type that always returned EIF_POINTER_TYPE instead of the type code corresponding to the actual attribute type.
  • Library (Net): Properly handle `BCC` recipients by really hiding them.
  • compiler: Fix C compilation errors when using the profiler in final mode on strict C compilers (fix bug#19193 and eweasel test#final16, test#ccomp070)
  • compiler: test#melt108, test#melt109 - Fixed a bug that led to an incorrect type of a boxed object of a sized variant of NATURAL obtained as a result of two reattachments: manifest constant to a variable of this NATURAL type and this variable to a reference entity.
  • compiler: bug#19264 (test#attach121) - Fixed a bug that caused an exception trace when reporting a bug about uninitialized attributes for an inline agent in presence of other bug reports.
  • runtime: bug#18952 (test#melt106) - Fixed a bug that might cause a program crash in a precondition with an object test with an explicitly specified expanded type.
  • library (Base): bug#19278 (test#store044) - Fixed a bug that might cause failure to retrieve objects stored by a different system if some reference attributes or SPECIAL storage were attached to expanded objects.
  • compiler: test#attach122 - Fixed a regression bug that might cause incorrect optimization of an object test when its expression is a local variable declared as attached or a result of a feature of an attached type leading to access on void target during execution.
  • compiler: test#attach123 - Avoided optimizing away object tests when their expressions are of attached types unless the whole system is compiled in complete void safety mode.

User changes

  • library: Marked {ANY}.as_attached as obsolete to simplify removal of calls to it when transition to void-safe code is finished.

Developer changes