EiffelStudio 6.6 Releases

Revision as of 14:25, 24 February 2010 by Manus (Talk | contribs) (Bug fixes)

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

6.6.x

Placeholder for new stuff since last intermediate release.

New features

  • Compiler: Added a new option Total Order on REALs which let you have NaN equal to NaN and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.
  • Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. note storable_version: tag. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.

Improvements

  • studio: added the inherit clauses in the "Features tool" (to ease navigation in the edited class)
  • compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.
  • compiler: Fixed in void-safe mode conformance of detachable COMPARABLE to attached ANY. Fixes updated eweasel test#conform001.
  • studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)
  • debugger: fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint

User changes

Developer changes

6.6.8.2214 (February 1st 2010)

New features

  • compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:
check Assertion then
   Compound
end

Improvements

  • runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.
  • runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.
  • base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.
  • base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.
  • compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.
  • studio: Fixed editor refresh issue when saving modifications in the Contract Tool.
  • studio: Fixed catcalls when building the Contract Tool.
  • studio: Fixed bug#14857 Store the external commands in ISE User files
  • studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started
  • debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)
  • runtime: Made sure to use recursive mutexes on all our platforms.
  • runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.
  • net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.
  • net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.
  • net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.
  • base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.

User changes

  • thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.
  • base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.
  • base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.
  • compiler: Now the compiler will report usage of is keyword as obsolete in transitional mode and will reject it in standard mode.

Developer changes