[[Property:title|Release notes for EiffelStudio 14.05]] [[Property:link_title|14.05]] [[Property:weight|8]] [[Property:uuid|f82eb6d2-c4ee-7243-7295-80dcdc584db7]] ==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. ===Improvements=== * 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. ===Changes=== * 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). ==Compiler== * Click [[Major changes between ISE Eiffel 13.11 and ISE Eiffel 14.05|here]] for the compiler release notes. ==Debugger== N/A ==EiffelBuild== * Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes. ==Libraries== ===General=== Most libraries do now compile in the highest level of void-safety except the following ones: * docking * editor * edk * graph * memory_analyzer ===Arguments === * Changed the default display of help by showing first the option arguments and then the non-switched arguments. ===Base=== * 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. ===Internationalization=== * 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. ===Regexp=== * 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. ===Ribbon=== * Added ability to assign hot keys to ribbon elements. ===Store=== * 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. ===Vision2=== * [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]] ===WEL=== * 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. ===XML=== * Fixed XML parser when the input file is exactly the same size as the xml file input stream chunk size (default 4096 bytes). [[EiffelStudio release notes|Click here to check out what was new in other versions]]