[[Property:title|Release notes for EiffelStudio 7.1]]
[[Property:link_title|7.1]]
[[Property:weight|12]]
[[Property:uuid|551e30c1-395c-27cb-e81f-d57204e68cc5]]
==Graphical environment==

===What's new===
* New SCOOP processor garbage collection which now lets you create more than 1500 processors during one execution. There is still a limit on the number of concurrent processors you might have.
* Added the Eiffel Web Framework contribution to build web applications or services in Eiffel.
* Added support for specifying C compiler flags and linker flags.
* Preview of GTK3 support which includes a HTML5 back-end for EiffelVision applications.
* Added support for EIFFEL_LIBRARY environment variable, if set and ISE_LIBRARY is not set by the current user, the former will be used to locate libraries.
* Info tool:
** Added a new Add button and Go To button. Rearranged the position of Delete button.
** Added a new built-in variable SYSTEM_PATH that refers to the location of system in which current entry is written.
** Added new contextual menu "Info" and sub menus Add Info to and Copy URI from.
** Implemented "DOC" protocol, supporting "bookmark" parameter, as long as Word is installed and available.
** Synchronize stones into Into Tool when clicking "Synchronize Context Tool"
** Improved acceptance of stones in the tool.
** Remember selected item when the tree is rebuilt (for recompilation and so on)
** Added a button to choose a file from a dialog for "Source".
** Added a dropdown list of choices for protocols.
** Changed names and sequence of columns as following: Target Source Parameters Protocol Name Tags Override
** Drew signs on icons to show there is information related to a tree node.
** In addition to "Unnamed" as default name, put "URI" as default protocol and http://www.yourwebsite.com as default Source when creating a new entry.
** Added completion list for available variables in Source.

===Improvements===
* Better copy/paste of code to avoid useless reformatting after copying and pasting a block of text. The smart behavior is available via Ctrl+V or Shift+Ins. If the new behavior is not adequate, Ctrl+Shift+V will paste as is.
* Better formatting of Eiffel source code when using the pretty printer.
* Better performance of SCOOP runtime for certain types of concurrent calls.
* Printing in postscript mode now allowed on Unix (previously, printing always defaulted to RTF); added `use_postscript` preference.
* Take into account mice with high resolution wheels.
* Avoid flashing when completion window is updated at each keystroke.
* Avoid resizing the grid all the time in Info tool when grid items are recreated for sorting, or other operations.
* Avoid adding empty attributes in code like EIS: "name=" when editing EIS entries.

===Changes===
* Removed addition of .NET targets in our project configuration templates to make it easier on new users to compile a project out of the box.

===Bug fixes===
* Fixed support of non-ASCII keyboard characters on Unix platforms.
* Fixed issue with automatically generated tests which included tests that should have been excluded because they represented invalid tests (e.g. precondition failures). 
* Fixed issue where EiffelStudio would fail while trying to generate tests for a generic type whose generic derivation doesn't exist in the system.
* Fixed a runtime issue when testing automatically generated tests for a void-safe program, they would always fail instead of passing (when they should be passing).
* Fixed a failure of EiffelStudio when trying to display the help of a compiler error.
* Fixed disappearance of dashed pick and drop lines on Windows.
* Fixed an issue where trying to perform a diff inside the console tool would crash EiffelStudio.
* Fixed a bug in EIS tool, when target was changed from class to feature or back, the column "Override" was not updated correctly.

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

==Debugger==
===Graphical environment===
* Improved speed for multiple rows selection in watch tool.
* Disable "ignore breakpoints" when launching debug session from "autotest" tool, or from execution parameters dialog.
* Fixed a "Call on Void target" due to missing dynamic type information (Grid item crash in debugger).
* Allowed evaluation of expressions which would not be valid if void-safety rules were applied (for example using a local that is detachable but the expression does not tell if at the evaluation time the local is attached or not).

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

==Libraries==

===EiffelBase===
* Fixed a bug with <code>{ARRAY}.force</code> when the new lower index is less than the old lower index - count.
* Fixed a bug with <code>{ARRAY}.force</code> where if the items had to move, the newly allocated area was not reset.
* Corrected precondition of <code>{ARRAY}.force</code> that did not allow storing elements at existing indexes.
* Added <code>{PLATFORM}.is_scoop_capable</code> to find out if a system is compiled using a SCOOP capable runtime.
* Added ability to create a local string using a separate string.
* Moved most of the queries of strings descendants (e.g. <code>is_real</code>, <code>is_integer</code>, ...) to class <code>READABLE_STRING_GENERAL</code> to make it easier to handle all the various kinds of strings.
* Added <code>{HASH_TABLE}.disjoint</code> to find out if 2 tables have some common elements or not based on the key comparison criteria.
* Made explicit that the `<code>area</code>` is shared between an <code>ARRAY</code> and an <code>ARRAYED_LIST</code> created via conversion.
* Fixed improper implementation of `<code>copy</code>` for <code>UNIX_FILE_INFO</code> and <code>BOOL_STRING</code> which caused for the former a sharing of some <code>FILE</code> specific information.
* Fixed <code>{STRING_32}.left_adjust</code> that did not work properly when the string contained only white spaces. 
* Fixed an issue with <code>{FILE}.exists</code> on Windows 32-bit when files are larger than 2GB. It only occurs with the latest version of the Microsoft C++ compiler (VS2010 or later).

===EiffelStore===
* Added support for XML data in ODBC.
* Fixed an issue with retrieving blob of null-size.
* Added ability to connect to several databases at once for the same database handle.
* Added ability to connect to an ODBC database using a connection string.
* Improved support for MySQL.
* Added query to find out how many rows have been affected by the last query.
* Made sure that errors are properly propagated when calling <code>{DATABASE_MANAGER}.execute_query_without_commit</code>.
* Properly handled <code>{DB_CHANGE}.reset</code>.
* Improved SQL string escaping. Fixed bug escaping ''' for ODBC.
* Added capability to enable multi-statements execution for MySQL.

===EiffelThread===
* Breaking change in class <code>THREAD</code>, descendants should now call <code>{THREAD}.make</code> in order to initialize threads properly. This change was required to have a project using SCOOP be able to use libraries that are only aware of multithreading.
* Fixed a memory corruption issue occurring when many threads are exiting at once, or that a child thread exits immediately after its parent but the parent is not yet finished in its termination.

===EiffelTime===
* Fixed improper parsing of 2 digit hours.

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

===Web Browser Library===
* Fixed a C compilation issue when finalizing a project using this library.

===WEL===
* Added ability to print to a specific printer or the default printer without having to show the printer dialog.
* Added support for loading EMF files through <code>WEL_GDIP_METAFILE</code>.
* Fixed an issue with <code>WEL_DISK_SPACE</code> that was not working in 64-bit mode. The fix implies a breaking change in that now a <code>NATURAL_64</code> is returned instead of an <code>INTEGER_32</code>.
* Added SCOOP support.



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

