EiffelStudio 17.01 Releases
Revision as of 06:03, 16 January 2017 by Alexander Kogtenkov (Talk | contribs) (→Feature removed: Added a note on removal of individual void safety levels for classes and clusters.)
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/
16.11.x.x
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). Performance-wise, a combination of{BASE_PROCESS}.launch
/{BASE_PROCESS}.wait_for_exit
runs faster than a call to{EXECUTION_ENVIRONMENT}.system
.
Improvements
- 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 intowait_for_debugger
anddiscard_debug
intodisable_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.
- library: Removed support for automatic retrieval of data by
SED_STORABLE_FACILITIES
usingSED_INDEPENDENT_DESERIALIZER
that was obsolete for several releases.SED_INDEPENDENT_DESERIALIZER
will be removed from the library in a later release. - EiffelStudio: Removed a possibility to set void safety level for a specific class or cluster, it can be done only for a whole library or project.
Bug fixes
- runtime: Fixed a bug in the CECIL macro
eif_attribute_type
that always returnedEIF_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 thisNATURAL
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. - compiler: Changing a concurrency setting for a compiled project causes a compiler error instead of a warning.