Release notes for EiffelStudio 7.1

  1. Graphical environment
    1. What's new
    2. Improvements
    3. Changes
    4. Bug fixes
  2. Compiler
  3. Debugger
    1. Graphical environment
  4. EiffelBuild
  5. Libraries
    1. EiffelBase
    2. EiffelStore
    3. EiffelThread
    4. EiffelTime
    5. EiffelVision2
    6. Web Browser Library
    7. WEL

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 as default Source when creating a new entry.
    • Added completion list for available variables in Source.


  • 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.


  • 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.


  • Click here for the compiler release notes.


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).


  • Click here for the EiffelBuild release notes.



  • 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 <code>area</code> is shared between an ARRAY and an ARRAYED_LIST created via conversion.
  • Fixed improper implementation of <code>copy</code> 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).


  • 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.


  • 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.


  • Fixed improper parsing of 2 digit hours.


Web Browser Library

  • Fixed a C compilation issue when finalizing a project using this library.


  • 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.

Click here to check out what was new in other versions