Release notes for EiffelStudio 6.0

Graphical environment

What's new

  • New docking facilities which let you control the layout of tools in EiffelStudio. One can also lock the layout to prevent unwanted changes.
  • New tabbed editor.
  • Added configurable pick and drop which lets you choose between traditional context menu or pick and drop for a mouse right click operation.
  • EiffelStudio is now internationalized, it fully supports English, Chinese and German. A partial translation for French and Russian is provided.
  • Shortcuts can now be customized.
  • Added dependency view so supplier/client dependency of a group/folder/class can be investigated. Feature calls are included in dependency view.


  • The combo boxes in the address bar can now be resized to see more text (useful with long class names).
  • Added ability to add new classes/clusters/assemblies early on in the compilation phase instead of waiting for a successful compilation.
  • Faster rendering of EiffelStudio when running it through Remote Desktop.
  • Auto-completion after bracketed expression. i.e. arr [i].*
  • Added preference "Maximum processor usage" to dictate the maximum number of processors/cores to use when compiling c-code.
  • Updated metrics documentation, see for more details .


  • Changed the diagram default color from light yellow to white for consistency with the background color of other tools.
  • Improved history behavior.
  • Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.
  • Favorites are now stored in the user settings.

Bug fixes

  • EiffelStudio and various tools should better handle paths with spaces.
  • Fixed add assemblies dialog not showing assemblies such as mscorlib on 64 bit systems.
  • Fixed bug#12083 where classes in override clusters would not get recompiled properly when automatically saved by EiffelStudio when requesting a compilation.
  • More bug fixes can be seen at the EiffelStudio open source site .


  • Click here for the compiler release notes.


Graphical environment

  • Added auto expressions on watch tools, it suffices to toggle the auto button in any of the watch tool's toolbar.
  • Enhanced breakpoint mechanism by adding print message, hit count (condition), and provide Is True and Has Changed condition.
  • Improved the debugging options dialog with the ability to define the environment variables passed down to the debugged application.
  • Added some configuration of the Objects tool grid. It is now possible to change the order of 'Current, arguments, locals, ...'.
  • Added start workbench and finalized system on Debugging option dialogs.
  • Added a new way to look at objects with the object viewer.
  • Added a rescue clause indicator in call stack tool's grid.
  • One can decide to stay in debugging mode even when compiling.
  • Added possibility to continue on conditional breakpoint evaluation failure.
  • Removed useless Attributes row in debugger's objects tree.
  • The once routines node now shows states of once procedures in addition of the state of once functions.
  • Improved cosmetic of debugger's exception handling dialog.

Debugger engine

  • Added support for creation of instance of class (including generic).
  • Added support for manifest TUPLE, and manifest ARRAY.
  • Added support for static routine evaluation.
  • Added ability to disable/restore assertion checking during debugging.
  • Added evaluation of instructions with the debugger (i.e: procedure call).
  • Fixed bug#12934 where the debugger would cause a memory corruption in a running multithreaded program.
  • Fixed bug#12750 where the stack overflow detection was not working on Linux.
  • Fixed bug#11755 where empty strings with a large capacity were slow to be displayed.


  • Click here for the EiffelBuild release notes.



  • Fixed issue with LINKED_QUEUE.twin which would violate its invariant.
  • Revisited contracts of LINEAR_ITERATOR.
  • Added facilities to read/write REAL_32 and REAL_64 values in big and little endian format in MANAGED_POINTER.
  • Changed INTERNAL so that it does not have the is_pre_ecma_mapping_disabled attribute. If you were setting it to True, you should instead create an instance of ECMA_INTERNAL (fixes bug#11792).
    • Sped up HASH_TABLE iteration and lookup by about 8% or more.
    • Added two new possibilities to detect/prevent catcalls, they can be enabled by enabling assertion checking and enabling the debug clauses prevent_hash_table_catcall and detect_hash_table_catcall.
  • TUPLE can now compare items using reference equality (=) or object comparison (is_equal).
  • Sped up SPECIAL.copy_data which was previously not inlined due to a change of signature preventing the inlining.
  • EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem because now you do not need to set it since the W_code knows where to find it.


  • Updated reading routines of EiffelNet so that for all basic types they would read all the required bytes, not just stop after reading the first. This is important as in some very bad network situation or if you have some signals you could mess up the reading by only reading half of the expected bytes.


  • Fixed bug#12838 where on Linux you could not create more than 2^15 threads even if they all exited. Now we force creation of threads in a detached mode to allow more than 2^15 thread creations.



  • Raised compatibility bar to Windows 2000 or greater. No more support for Windows 98 or NT 4.0.
  • Added ability to convert image formats among all image formats on Windows (using WEL_GDIP_BITMAP).

Click here to check out what was new in other versions