EiffelStudio 6.6 Releases

Revision as of 08:29, 12 April 2010 by Jfiat (Talk | contribs) (6.6.x)

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

  • library: Added a feature trim to the class RESIZABLE and its descendants to allow for minimazing the use of allocated storage.
  • studio: Allows users to double left click on the editor tab ribbon to create a new tab. The tab is created on the right, as that is where users click. Once the tab is opened then the address bar is focused and the contents removed. It's ready for editing.
  • studio: Implemented "Ctrl+ Enter" on address bar to open the class/feature in a new tab editor (if editor with current class/feature not already exists)
  • studio: Handled mouse-middle-click to close pointed editor tab
  • compiler: support new once per object
  • debugger: support new once per object

Improvements

  • library: Modified ARRAYED_QUEUE to avoid using an extra slot that did not keep any value and was used only for implementation purposes.

Feature removed

Bug fixes

  • compiler: Fixed test#incr168 when recompilation did not regenerate the code in some complex cases when features are modified deep in inheritance tree. It also fixes eweasel test#exec283 and addresses a consistency issue with the order of merging inherited assertion clause that would not trigger the same output if recompiled from scratch after some incrementality changes (see eweasel test#incr124).
  • compiler: Allowed manifest real constants to be assigned to REAL_32 entities without having the need to type the constant, that is to say `r_32 := 4.5' will now be accepted whereas before one had to do `r_32 := {REAL_32} 4.5'.

User changes

Developer changes

6.6.8.2636 (March 22nd 2010)

New features

  • base: Added support for correct mismatch in the SED serialization cluster.

Improvements

  • runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.
  • studio: added new Error List tool preference "tools.error_list.show_tooltip", so end users can specify if rich tooltip window should be shown automatically in the Error List tool.

Feature removed

Bug fixes

  • compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).
  • compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).
  • studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio
  • studio: Fixed bug#16543 Searching in feature Implementers or Descendants does not scroll to show match
  • compiler: Fixed recompilation bugs (bug#14525, bug#16052) that caused compiler crash or incorrect error message when checking inherited code of a client that refers to a feature that is (re)moved (see test#incr293, test#incr338).
  • delivery: Ensured that the void-safe versions of precompiled libraries are indeed included.

User changes

  • studio: The experimental mode is now gone, it has become the default. To have access to the default mode of 6.5, one has to use the compatible version.

Developer changes

6.6.8.2484 (March 1st 2010)

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
  • runtime: Fixed eweasel test#exec323 where comparison using <= or >= in melted mode which involved NaN was not yielding the same result as in workbench mode.

User changes

  • studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.

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