[[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 {ARRAY}.force when the new lower index is less than the old lower index - count. * Fixed a bug with {ARRAY}.force where if the items had to move, the newly allocated area was not reset. * Corrected precondition of {ARRAY}.force that did not allow storing elements at existing indexes. * Added {PLATFORM}.is_scoop_capable 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. is_real, is_integer, ...) to class READABLE_STRING_GENERAL to make it easier to handle all the various kinds of strings. * Added {HASH_TABLE}.disjoint to find out if 2 tables have some common elements or not based on the key comparison criteria. * Made explicit that the `area` is shared between an ARRAY and an ARRAYED_LIST created via conversion. * Fixed improper implementation of `copy` for UNIX_FILE_INFO and BOOL_STRING which caused for the former a sharing of some FILE specific information. * Fixed {STRING_32}.left_adjust that did not work properly when the string contained only white spaces. * Fixed an issue with {FILE}.exists 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 {DATABASE_MANAGER}.execute_query_without_commit. * Properly handled {DB_CHANGE}.reset. * Improved SQL string escaping. Fixed bug escaping ''' for ODBC. * Added capability to enable multi-statements execution for MySQL. ===EiffelThread=== * Breaking change in class THREAD, descendants should now call {THREAD}.make 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 WEL_GDIP_METAFILE. * Fixed an issue with WEL_DISK_SPACE that was not working in 64-bit mode. The fix implies a breaking change in that now a NATURAL_64 is returned instead of an INTEGER_32. * Added SCOOP support. [[EiffelStudio release notes|Click here to check out what was new in other versions]]