[[Property:title|Release notes for EiffelStudio 6.6]]
[[Property:link_title|6.6]]
[[Property:weight|-13]]
[[Property:uuid|16d03e3f-d0ff-c56e-6e77-232087ec3bfb]]
==Graphical environment==

===What's new===
* Added the parent clauses of a class in the "Features tool" making it easier to navigate/edit parent classes.

===Improvements===
* Double clicking in the editor tab ribbon will create a new tab of the editor.
* Pressing "Ctrl+Enter" while typing a class name in the address bar will open the class or feature in a new tab of the editor.
* Pressing the middle mouse button on a tab will now close that tab.
* Added shortcuts for "Run workbench system" and "Run finalized system"

===Changes===
* The experimental mode available in 6.5 and earlier version has become the default mode. To have access to the default mode of 6.5, one has to use the compatible version. It can be accessed on Windows via the Start menu shortcut or by using "-compat" on the command line.
* Gobo had its ECF removed and replaced by several corresponding to sub-libraries of the Gobo framework. This change was already present in 6.4 and 6.5 under the experimental mode. To upgrade, you need to adapt your project configuration file to use the right sub-library of the Gobo framework.
* The libraries (formerly the experimental mode of 6.4 and 6.5) contains some breaking changes to the compatible libraries. Those breaking changes were already part of 6.4 and 6.5. It affects the following classes: ARRAY, ARRAYED_LIST, HASH_TABLE, SPECIAL and TO_SPECIAL. It is possible to adjust your code so that a single version compiles against both sets of libraries. See below under EiffelBase how to adapt your code to those breaking changes.

===Bug fixes===
* Fixed an issue in which the error tooltip would keep flashing when the cursor is outside the EiffelStudio environment.
* Fixed an issue while searching text in the implementers or descendants view it would not scroll to the found text.
* Fixed an issue with the Error List pane in which the Error List would come up blank on error if it had been auto-hidden when EiffelStudio started.

==Compiler==
* Click [[Major changes between ISE Eiffel 6.5 and ISE Eiffel 6.6|here]]  for the compiler release notes.

== AutoTest==
* Changed AutoTest Tool to store testing results permanently, and added the ability to export results to a text file.
* Added tool for displaying the result details of a single test execution.
* Added tool for comparing the current testing results to a previously exported set of results, highlighting tests for which the latest execution revealed a different result.
* Improved wizard/preferences dialog for creating and executing tests, also allowing the user to skip the wizard and create new tests from default settings.

==Debugger==
===Graphical environment===
* Now, only one breakpoint dialog is opened on the same breakpoint (avoid conflict).
* Moving a breakpoint within the same routine is now done using Drag & Dropping the breakable slot icon (red bullet).
* Object Viewer selector no longer auto-selects  XML Viewer when the string looks like XML content.
* Added a context menu entry to "unset" an environment variable in the "Execution parameters" tool.
* Fixed issue with remaining popup window for grid's cell.
* Fixed regression "Keep Assertions Checking" settings for expression evaluation.
* Added an option in the "Edit Expression" dialog to show the "full error message" (i.e: include the exception trace) when an exception occurs during expression evaluation. By default, now only the short description is shown (to improve performance), but the full error message is available upon request.
* Added the capability of copying to the clipboard the text representation of selected call stack elements (from the call stack tool) using Ctrl+C or Ctrl+Ins (this also includes representations of local+arguments)

===Debugger engine===
* Fixed an issue in which EiffelStudio could hang when inspecting threads other than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux).
* Fixed issue related to setting conditional breakpoint resulting in unconditional breakpoint.
* Fixed issue in which execution is stopped in melted invariant.
* Added support for new [[ET: Other Mechanisms#Adjusting once semantics with "once keys"|once per object]].

==EiffelBuild==
* Click [[EiffelBuild Version History|here]]  for the EiffelBuild release notes.

==Libraries==

===EiffelBase===
* Added ability to traverse most containers in EiffelBase using the new iteration (<e>across</e>) [[ET: Instructions#A closer look at the iteration form| form of the loop construct]].
* Added a new feature <e>trim</e> to the <e>RESIZABLE</e> class and its decendants to allow for minimizing the allocated storage.
* Modified <e>ARRAYED_QUEUE</e> to avoid using an extra slot that did not keep any value and was used only for implementation purposes.
* Added support for correct mismatch in the SED serialization cluster.
* Fixed <e>ARRAY2</e> so that it can be used in void-safe mode too. Improved <e>ARRAY2</e> resizing efficiency.
* Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.
* Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.
* Adaptation of ARRAY, ARRAYED_LIST, HASH_TABLE and SPECIAL from the 6.5 to 6.6:
** {ARRAY}.make_from_special had its signature changed and only take a SPECIAL argument and the created array would have a range from 1 to the number of elements in the SPECIAL
** ARRAY: Some preconditions have been added for void-safety. In non-void-safe mode they are equivalent to the previous ARRAY behavior.
** {ARRAY}.auto_resize: a private routine has been removed.
** {ARRAYED_LIST}.count and {ARRAYED_LIST}.area are not an attribute anymore
** ARRAYED_LIST does not conform to ARRAY. One has to use {ARRAYED_LIST}.to_array to convert it to an ARRAY.
** HASH_TABLE internals have been changed so that order of traversal will be different from what it used to be.
** The non-void safe routine {SPECIAL}.make has been removed. Instead one has to use either {SPECIAL}.make_empty (which is not available in compatible mode) or {SPECIAL}.make_filled (which is available in both)
** To reflect the change in SPECIAL, TO_SPECIAL was also modified and `make_area` was replaced by `make_empty_area`. Again to have compatible code between both mode use `make_filled_area` instead.

===EiffelThread===
* Made the <e>THREAD</e> class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition <e>is_launchable</e> and a status report <e>is_last_launch_successful</e> to help in determining whether a thread was actually launched.

===EiffelNet===
* Fixed precondition violation in <e>{ARRAY}.force</e> when compiling EiffelNet in void-safe mode.
* Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries <e>read_command_list</e>, <e>write_command_list</e> and <e>exception_command_list</e> are now obsolete and should not be used.

===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]] 

[[EiffelStudio release notes|Click here to check out what was new in other versions]]  

