Release notes for EiffelStudio 14.05

Graphical environment

What's new

  • Eiffel Inspector: A static analysis tool to help you maintain a high code quality. Currently there are 35 rules that can detect coding style, performance, or runtime issues.
  • Automatic Fixing: EiffelStudio can fix some class of errors automatically. Currently we fix unused local variables and missing types to the declaration of local variables.
  • Added support for SSL to EiffelNet.


  • Made sure to show the groups content very early in the compilation process.
  • Reduced size of project file in EIFGENs directory to speed up loading and saving of Eiffel projects after each compilation.
  • Better handling of multiple monitor to ensure EiffelStudio is opened on the same screen as it was at last launch.
  • AutoTest: Made it possible to run test cases outside of the AutoTest framework by simply calling them from a normal class.
  • compile_all: Made it easier to compile a project for the various platforms we support. This is done by using the new -platform option where a platform name can be either unix, windows, macintosh, or vxworks. If you suffix the platform name with ! it will only compile projects that are sets for this platform. If a project specify a platform and the -platform has been set and is different, the project will be ignored.


  • Support for .ACE and .EPR files have been dropped from EiffelStudio. A tool ace2ecf is now available to convert .ACE to .ECF if needed.
  • AutoTest: EiffelStudio will never saved generated test classes in the EIFGENs directory, user will have to specify a directory. This is to avoid losing tests after deleting an EIFGENs directory.
  • New created projects are set to the complete void-safety level.

Bug fixes

  • Fixed slow formatting of classes/features after editing the corresponding class.
  • Made sure to show the feature comment when showing the contracts during code completion.
  • Fixed improper display of conditions in task and external nodes of the Eiffel Project Settings dialog.
  • Fixed an issue with preferences where setting them to a value, you will never be able to set it back to its default value.
  • Fixed an editor issue where saving a class would force a refresh of the editor instead of just saving.
  • Fixed an editor where copy/pasting code containing new lines with some leading tabs, the cursor would be improperly positioned after pasting.
  • Fixed crash when searching for a feature while the editor hasn't finished loading (bug#18792, bug#18501, and bug#17626)
  • Fixed wrong newline characters on Windows when creating a new class from our templates.
  • Fixed the "Evaluator Died" error when running AutoTest on Unix systems (bug#18078).
  • Prevented a crash when trying to run AutoTest and no executable is present (e.g. case of compiling a project as a library instead of as an application) (bug#18838).
  • Fixed crash when you start running a test that was just renamed it (bug#18686).


  • Click here for the compiler release notes.




  • Click here for the EiffelBuild release notes.



Most libraries do now compile in the highest level of void-safety except the following ones:

  • docking
  • editor
  • edk
  • graph
  • memory_analyzer


  • Changed the default display of help by showing first the option arguments and then the non-switched arguments.


  • Added {READABLE_STRING_GENERAL}.is_whitespace and {READABLE_STRING_GENERAL}.is_substring_whitespace.
  • Added epsilon and machine_epsilon queries as requested by users in REAL_32 and REAL_64.
  • Added missing min_value and max_value from the .NET version of REAL_32 and REAL_64.
  • Removed obsolete feature {TUPLE}.make.
  • Fixed {FILE_UTILITIES}.files_end_with to respect the depth level specified in argument.
  • Fixed issues with the handling of the Unicode escape character. If the escaped UTF-32 string contains the escape sequence and it is trying to escape something that could fit the UTF-16 or UTF-8 encoding, then we store the content as is. This is to avoid the case for UTF-16 where if you have: ?61 it would yield a after round-tripping. Now if the UTF-16 or UTF-8, contains the escape character, the resulting string would have it twice, which again preventing proper roundtriping.


  • Removed get_locale and get_language from I18N_FILE_SCOPE_INFORMATION to use the Eiffel naming convention locale and language and also changed the types to be detachable. This requires updating callers to the new names and to also perform a check that the request yields an attached entity.


  • Renamed CHARACTER_SET and BYTE_CODE into PCRE_CHARACTER_SET and PCRE_BYTE_CODE to avoid name conflicts with libraries that have the same class names.


  • Added ability to assign hot keys to ribbon elements.


  • Improved the behavior of storing binary data by not imposing the user to convert its binary stream to hexadecimal in the case of stored procedures and prepared statements. This is a breaking change as now it will store whatever you provide as is. For traditional SQL statements it remains the same and binary data needs to be converted.
  • Better handling of conversion of REAL_32 and REAL_64 to decimal when the associated column is a decimal.
  • Removed precondition is_allocatable, descriptor_available, or descriptor_is_available to many EiffelStore routines. If a descriptor cannot be allocated, the execution of the routine will fail and an error code and message will be reported.
  • Fixed issue with ODBC when storing large strings when using a prepared statement or a stored procedure, only the first 4000 bytes would be stored.
  • Fixed issue with ODBC when storing a string into a binary column of the database which would fail with a mismatch.
  • Fixed issue when the length of a table or column name is more than 50 characters.
  • Fixed issue with ODBC where a large ASCII data would have their first byte missing.
  • Added support for handling NULL values in a database using ODBC when using a mapping in DB_SELECTION, DB_DYN_SELECTION, DB_CHANGE or DB_DYN_CHANGE.



  • Optimized performance of WEL_RICH_EDIT_BUFFER_SAVER.
  • Fixed issue in {WEL_STRING}.set_string_with_newline_conversion with Unicode characters above the 65535 range, the result of the conversion to UTF-16 requires more space and when you have to replace %N into %R%N we forgot to resize the content before inserting the %R%N characters.
  • Fixed issue in {WEL_STRING}.set_string_with_newline_conversion where if the input string had only one character after the last %N, that character would be discarded. That is to say "%Na" would yield "%R%N" instead of "%R%Na" (bug#18783).
  • Fixed incorrect signatures for the wrapping of PostMessage, GetCurrentProcessId and GetWindowThreadProcessID which do not return a pointer but an integer type.


  • Fixed XML parser when the input file is exactly the same size as the xml file input stream chunk size (default 4096 bytes).

Click here to check out what was new in other versions

cached: 06/19/2024 11:18:42.000 PM