[[Property:title|Release notes for EiffelStudio 5.3]] [[Property:link_title|5.3]] [[Property:weight|-11]] [[Property:uuid|dd116cc7-40cf-b317-b9c0-b05d4fe0edf7]] ==Graphical environment== ===Changes=== * In project settings, we now accept a root class without creation procedure. * In .NET code generation, we do not force the C compilation at each compilation. It is only done when necessary (for example when a C external has been added). * Incremental .NET code generation (See [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|compiler release notes]] for more info). * Recoverable storable (See [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|compiler release notes]] for more info). ===Bug fixes=== * Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]` character. * Fixed issue with working directories where only the first one ever set was used even if new ones have been set afterwards. * Fixed issue where generating documentation for all/library cluster would stop during generation without completing. * Fixed crash in diagram tool when moving label on client/supplier link between two classes. * Fixed resource leak on Windows 98 and Windows Me. * Fixed issue in projects where clusters are specified with relative path would not compile after adding a local assembly. * Fixed problem with cluster tool management where moving classes around or looking up a class will generate an error box instead of performing the requested operation. * Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng` but should not. * Fixed disappearance of EiffelStudio when debugging a routine `infix` or `prefix` in which an exception was raised. This issue was only occurring with melted code (usually noticeable when using a precompiled library). * Changing the project specific command line arguments will not touch the project settings configuration file (ace file). ==Compiler== * Click [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|here]] for the compiler release notes. ==Libraries== ===CECIL=== * Enforced definition of EIF_OBJECT so that it is different from EIF_REFERENCE to better catch errors when passing a protected reference to a feature accepting an unprotected reference and vice versa. Because of this change some C code might not compile anymore which is good as it points out that code was doing something wrong that could corrupt the Eiffel memory. ===EiffelBase=== * Added in INTERNAL the following new features: field_static_type_of_type , class_name_of_type , type_name and type_name_of_type . * Added truncated_to_integer_64 in REAL and DOUBLE . * Added to_integer_64 in STRING . * Added new classes MEMORY_STRUCTURE , MANAGED_POINTER and C_STRING to better manage access to C and C++ memory structure. * Fixed incorrect implementation of area and substring for STRING in dotnet mode. * Fixed bug in copy from STRING where following code was violating valid_count invariant from STRING : local s, t: STRING do create s.make (9) create t.make (10) t.append ("1234567890") s.copy (t) end * Added support for storable in .NET. However .NET and classic implementation are completely different and independent_store will not be able to retrieve a storable file if not made using the same code generation. * Fixed a bug in is_equal from LIST where comparing two lists of different counts could break the comparison:
make is local a, b: LIST [INTEGER] do create {ARRAYED_LIST [INTEGER]} a.make (2) a.extend (10) create {ARRAYED_LIST [INTEGER]} b.make (2) b.extend (10) b.extend (11) print (equal (b, a)) end * Fixed .NET implementation of open_write and create_read_write in FILE . They were not resetting the file size to zero if file already existed. * Added correct_mismatch on ANY used for `recoverable storable`. * Added correct_mismatch on HASH_TABLE to enable retrieval of the 5.1 and older version of HASH_TABLE. * Fixed bug in implementation of copy and is_equal for TREE and descendant classes. Now descendants of TREE that would like to compare additional attributes of their class needs to redefine node_is_equal whose default implementation will always result in a true value. * Changed default semantic of make and put_child from FIXED_TREE, to preserve existing semantic, you should use make_filled and replace_child instead. ===Eiffel2Java=== * Updated library so that it works both in classic and dotnet mode. ===EiffelCOM=== * Fixed crash in ccom_set_name from FONT_IMPL_PROXY. ===EiffelNet=== * Fixed assertion violation of call to to_integer in feature get_content_length from HTTP_PROTOCOL if assertions are enabled on EiffelBase. ===EiffelStore=== * Updated library so that it works both in classic and dotnet mode. * Fixed issue with oracle handle which did not work with the included Borland C compiler. * Removed nb_classes from EXT_INTERNAL . * Removed need for additional object file (`support.lib' on Windows and `libsupport.a` on Unix platforms), so make sure to remove it from your project configurations. ===EiffelVision2=== * [[Revisions and Bug Fixes|Click here to see list of update and modification to Eiffel Vision2]] . ===WEL=== * Removed inheritance to WEL_STRUCTURE in WEL_STRING, it now inherits from new C_STRING class. In the process removed the following features which were inherited from WEL_STRUCTURE and did not make sense to WEL_STRING memory_copy, structure_size, dispose, set_item, set_shared, set_unshared, shared, to_integer. No replacements have been provided for those features. Made initialize and initialize_with_character obsolete, instead we now provide two features inherited from C_STRING fill_blank and fill_value. [[EiffelStudio release notes|Click here to check out what was new in other versions]]