mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 07:12:25 +01:00
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2393 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
187 lines
13 KiB
Plaintext
187 lines
13 KiB
Plaintext
[[Property:title|Release notes for EiffelStudio 5.6]]
|
|
[[Property:link_title|5.6]]
|
|
[[Property:weight|-14]]
|
|
[[Property:uuid|c0aa1026-8c13-9975-0de4-3412624cf89a]]
|
|
==Graphical environment==
|
|
|
|
===Improvements===
|
|
* New implementation of the diagram tool with enhanced performance and functionalities
|
|
** Support for UML view.
|
|
** Physics: auto-arrangement of classes using force directed graph.
|
|
** Multiple selection of classes.
|
|
** Improved speed/behavior of drawing/scrolling operations especially on large diagram.
|
|
|
|
* Added ability to find features performing an assignment to an attribute, or creating an attribute, as well as features using a procedure as creation procedure.
|
|
* Feature tree is now showing a different icon for frozen and obsolete features.
|
|
* Improved look and feel of applications using the EiffelVision library under Windows XP theme engine.
|
|
* Improved keyboard navigation in EiffelStudio windows/dialogs.
|
|
* Full support for 64 bits operating systems such as Windows, Linux, Solaris, Irix, OpenVMS,...
|
|
* Features tree is also available for classes which are part of the universe, but not yet compiled.
|
|
* New EiffelCOM wizard. Click [[EiffelCOM Wizard|here]] for more details.
|
|
* Improved speed of class completion for large system.
|
|
* Added new toggles for alias names and assigner commands to feature tree.
|
|
|
|
===Changes===
|
|
* Changed the default C compilation flags on Windows when using Visual Studio as a back-end C compiler. It will now compile C code using the -MT option. It may cause some linking problems if you are using C libraries compiled against the static C library. To solve those issues recompile your C code using the -MT option.
|
|
* Provided keyword highlighting in editor and different views for new keyword <code>assign</code>.
|
|
|
|
===Bug fixes===
|
|
* Fixed infinite loop in finish_freezing which could use all the available memory.
|
|
* Fixed some issues with formatting of agent using expressions as target, and display of character and string constants in context tool.
|
|
* Fixed issue where tools that have been externally docked were not properly restored when reopening EiffelStudio.
|
|
* Fixed issue where one could not remove entries added to the list of external commands.
|
|
* Supported keyword highlighting for the keywords <code>infix</code> and <code>prefix</code> in editor and different views.
|
|
|
|
==Compiler==
|
|
* Click [[Major changes between ISE Eiffel 5.5 and ISE Eiffel 5.6|here]] for the compiler release notes.
|
|
|
|
==Debugger==
|
|
===Graphical environment===
|
|
* The stack, objects and evaluator tools now use a grid display instead of simply a tree view
|
|
* A mixed multicolumn list and tree view display which display item only when shown, this make debugger much faster to display values
|
|
* The evaluator tool renamed as "watch tool" has more features than previously, such as browsing the objects value directly in the tool, moving up and down the expression, dopped objects as them self, ....
|
|
* The new watch tool can be used instead of the objects view to display current, and dropped objects (and of course expressions).
|
|
* You can close and create new watch tools
|
|
* Each tool has its hexdecimal/decimal format switch command.
|
|
* Most of the debugging tools are now inside a notebook, and are dockable outside this notebook
|
|
* Various minor bug fixes and improvements regarding the interface
|
|
|
|
===Debugger engine===
|
|
* Fixed a memory leak with the `estudio` process when conditional breakpoints are enabled.
|
|
* Improved speed of execution when conditional breakpoints are enabled (about 20 times faster).
|
|
* Fixed a bug where after killing a debugged process, the debugger could not be launched anymore.
|
|
* Improved speed regarding STRING and SPECIAL manipulation in the debugger
|
|
* Dotnet: fixed memory/handle leak when debugging dotnet system
|
|
* Dotnet: fixed memory corruption while debugging dotnet system
|
|
* Dotnet: EiffelStudio do not hang (100% CPU) anymore during dotnet debugging.
|
|
* Dotnet: make EiffelStudio much more stable while debugging dotnet system.
|
|
* Dotnet: fixed various issues which occurred on killing debugged application
|
|
* Dotnet: improved support for dotnet v2.0.x debugging
|
|
* Dotnet: fixed expression evaluation on pure dotnet object
|
|
* Evaluation: fixed remaining error status on expression (sometimes when an expression has an error, changing the expression to a valid expression was not reseting the error status)
|
|
* Evaluation: improved error message reporting for expression evaluation
|
|
* Evaluation: improved the stability and the result validity of expression
|
|
* Breakpoint: fixed some issues related to setting, removing breakpoints, and remaining hidden breakpoints
|
|
* Breakpoint: now the debugger stops on a condition breakpoint when the condition's result is True, but also if the expression is not supported, or if it raises an exception
|
|
|
|
==EiffelBuild==
|
|
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
|
|
|
|
==Libraries==
|
|
|
|
===CECIL===
|
|
* Due to renaming of EIF_REAL and EIF_DOUBLE into EIF_REAL_32 and EIF_REAL_64, we have also changed the names of some CECIL facilities. Although old names are still valid we may remove their definition in future releases of the compiler. Below is the list of old names and their corresponding new names:
|
|
{|
|
|
|-
|
|
| '''Old name'''
|
|
| '''New name'''
|
|
|-
|
|
| EIF_REAL_FUNCTION
|
|
| EIF_REAL_32_FUNCTION
|
|
|-
|
|
| EIF_DOUBLE_FUNCTION
|
|
| EIF_REAL_64_FUNCTION
|
|
|-
|
|
| eif_real_function
|
|
| eif_real_32_function
|
|
|-
|
|
| eif_double_function
|
|
| eif_real_64_function
|
|
|-
|
|
| EIF_REAL_TYPE
|
|
| EIF_REAL_32_TYPE
|
|
|-
|
|
| EIF_DOUBLE_TYPE
|
|
| EIF_REAL_64_TYPE
|
|
|-
|
|
| EIF_FN_FLOAT
|
|
| EIF_FN_REAL_32
|
|
|-
|
|
| EIF_FN_DOUBLE
|
|
| EIF_FN_REAL_64
|
|
|}
|
|
|
|
|
|
===EiffelBase===
|
|
* Added new storable facility entierly written in Eiffel which enables you to exchange data between classic and .NET. Former version built-in in the Eiffel run-time did not apply for .NET. The classes are located in the new <eiffel>serialization</eiffel> cluster of EiffelBase.
|
|
* <eiffel>ARRAY</eiffel>:
|
|
** Changed signature of <eiffel>subarray</eiffel> to match ELKS specification. It now returns an <eiffel>ARRAY [G]</eiffel> instead of <code>like Current</code>.
|
|
** Fixed <eiffel>has</eiffel> to return <code>True</code> when searching for <code>Void</code> when comparing objects in an array containing a <code>Void</code> element.
|
|
** Fixed issue on .NET with <eiffel>clone</eiffel>/<eiffel>copy</eiffel> which were not really duplicating the internal of the array, and therefore enabling aliasing of its content by more than one array.
|
|
** Fixed a bug in feature <code>occurences </code> that returned <code>0</code> when called with <code>void</code> argument and <code>object_comparision</code> is <code>true</code>.
|
|
** Fixed a bug in feature <code>is_equal</code> that caused stack overflow when some array item is the array itself and <code>object_comparision</code> is <code>true</code>.
|
|
|
|
* <eiffel>ARRAYED_LIST</eiffel>:
|
|
** Removed <eiffel>array_valid_index</eiffel> from <eiffel>ARRAYED_LIST</eiffel>. Descendants of <eiffel>ARRAYED_LIST</eiffel> may need to update their inheritance clause. This fixes ability to use <eiffel>put_i_th</eiffel> with indexes that may violate the invariant of <eiffel>ARRAYED_LIST</eiffel>, for example the code below should trigger a precondition and not violate the invariant of <eiffel>ARRAYED_LIST</eiffel>:
|
|
<code>list: ARRAYED_LIST [INTEGER]
|
|
|
|
create list.make (5)
|
|
list.put_i_th (3, 3)</code>
|
|
|
|
** Added implementation query <eiffel>new_filled_list</eiffel> in <eiffel>ARRAYED_LIST</eiffel>. Descendants of <eiffel>ARRAYED_LIST</eiffel> may need to update their inheritance clause.
|
|
|
|
* <eiffel>HASH_TABLE</eiffel>:
|
|
** Added <eiffel>merge</eiffel> to <eiffel>HASH_TABLE</eiffel>.
|
|
** Now <eiffel>remove</eiffel> will reset <eiffel>found_item</eiffel> when an element is removed.
|
|
|
|
* <eiffel>INTERNAL</eiffel>:
|
|
** Implemented all the routines in the .NET version.
|
|
** Added support for creating <eiffel>TUPLE</eiffel> types in <eiffel>dynamic_type_from_string</eiffel>.
|
|
** Added precondition to <eiffel>set_reference_field</eiffel> to ensure validity of reattachement to attributes.
|
|
|
|
* <eiffel>STRING</eiffel>:
|
|
** Changed signature of <eiffel>infix "+"</eiffel> to match ELKS specification. It now returns <code>like Current</code> instead of <eiffel>STRING</eiffel>.
|
|
** Added implementation query <eiffel>new_string</eiffel>. Descendants of <eiffel>STRING</eiffel> may need to update their inheritance clause.
|
|
** Fixed a bug in .NET implementation of feature <code>replace_substring</code> that might produce incorrect result when argument and target of the call is the same object.
|
|
** Merged .NET and classic implementation of STRING so that all features of STRING are now properly implemented for both platforms.
|
|
** Fixed <eiffel>center_justify</eiffel> that would corrupt memory on classic.
|
|
** Changed <eiffel>character_justify</eiffel>, <eiffel>left_justify</eiffel>, <eiffel>right_justify</eiffel> and <eiffel>center_justify</eiffel> so that justification is now done on <eiffel>count</eiffel> instead of <eiffel>capacity</eiffel>. You might expect different results after upgrading, thus check all callers of those routines.
|
|
** Added <eiffel>is_case_insenstive_equal</eiffel> to compare two strings regardless of their case.
|
|
** Rewrote routines <eiffel>is_integer</eiffel>, <eiffel>is_real</eiffel>, <eiffel>is_double</eiffel>, <eiffel>to_integer</eiffel>, <eiffel>to_real</eiffel> and <eiffel>to_double</eiffel> so that they do not rely on C externals. This could breeak some existing code relying on specific locale to read floating numbers.
|
|
|
|
* Changed behavior of <eiffel>item</eiffel> and <eiffel>eval</eiffel> in <eiffel>FUNCTION</eiffel>. They will not set <eiffel>last_result</eiffel> with their result. If you want to use <eiffel>last_result</eiffel> you should use <eiffel>call</eiffel> instead.
|
|
* Added new set of classes <eiffel>NATURAL_8</eiffel>, <eiffel>NATURAL_16</eiffel>, <eiffel>NATURAL_32</eiffel> and <eiffel>NATURAL_64</eiffel> to perform unsigned integer operations.
|
|
* Made implementations of <eiffel>cursor</eiffel> in descendants of <eiffel>CURSOR_STRUCTURE</eiffel> return a precise <eiffel>CURSOR</eiffel> type.
|
|
* Reduced feature exportation of routines also used as creation procedures of <eiffel>CURSOR</eiffel> descendants to <eiffel>NONE</eiffel>
|
|
* Removed <eiffel>make_sublist</eiffel> from <eiffel>TWO_WAY_LIST</eiffel> public creation procedures.
|
|
* Made <eiffel>file_prunable</eiffel> from <eiffel>FILE</eiffel> obsolete. Use <eiffel>prunable</eiffel> instead.
|
|
* Implemented features <eiffel>collect</eiffel> and <eiffel>full_collect</eiffel> of class <eiffel>MEMORY</eiffel> for .NET.
|
|
* Changed type of feature <eiffel>sign</eiffel> in classes <eiffel>INTEGER_8</eiffel> and <eiffel>INTEGER_16</eiffel> to <eiffel>INTEGER_8</eiffel> and <eiffel>INTEGER_16</eiffel> respectively.
|
|
* Added a subcluster <eiffel>refactoring</eiffel> with classes that can be helpful for performing code refactoring.
|
|
* Augmented many features that are used to access items by their index (such as <eiffel>ARRAY</eiffel>.<eiffel>item</eiffel> and <eiffel>TABLE</eiffel>.<eiffel>item</eiffel>) with a bracket alias and an assigner command.
|
|
|
|
===EiffelNet===
|
|
* Enable to open an URL on a virtual host.
|
|
* Enable to open an URL with login and password (for instance http://login:password@host/path/).
|
|
* Fixed wrong URL analysis.
|
|
|
|
===EiffelThread===
|
|
* Added feature <code>sleep</code> to class <code>THREAD_CONTROL</code>.
|
|
* Provided inheritance link between classes <code>THREAD</code> and <code>THREAD_CONTROL</code> on all platforms.
|
|
|
|
===EiffelTime===
|
|
* Breaking changes:
|
|
** In time format, the use of hh12 alone without specifying AM or PM will default to AM.
|
|
** Changed implementation of <eiffel>DATE_SET</eiffel> to use <eiffel>ordered_compact_date</eiffel> as storage.
|
|
|
|
* Added support for [0]hh12 hour format.
|
|
* Added support for specifying hh12 as a standalone format string.
|
|
* Fixed a bug where calling <eiffel>TIME</eiffel>.<eiffel>make_by_fine_seconds</eiffel> would set <eiffel>fractional_second</eiffel> to zero rather than to the expected value.
|
|
* In <eiffel>TIME</eiffel>, comparison of <eiffel>fractional_second</eiffel> is done using a precision of 1.0e-10.
|
|
* Fixed <eiffel>is_positive</eiffel> in <eiffel>DATE_TIME_DURATION</eiffel> so that it is true when either the date or time is zero but the other is positive.
|
|
* Fixed incorrect postcondition of <eiffel>set_origine_date_time</eiffel> in <eiffel>DATE_TIME_DURATION</eiffel> which would fail when argument was <code>Void</code>.
|
|
* Fixed <eiffel>is_correct_date</eiffel> in <eiffel>DATE_VALIDITY_CHECKER</eiffel> to check that year is less than 65535.
|
|
* Fixed <eiffel>DATE_TIME_PARSER</eiffel> when handling time in 12h format, but internally we would convert it into 24h format thus making <eiffel>is_time</eiffel> and <eiffel>is_date_time</eiffel> return <code>False</code> where <code>True</code> was expected.
|
|
|
|
===EiffelVision2===
|
|
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
|
|
|
|
===WEL===
|
|
* Made WEL 64 bits compliant. This required a breaking change in signatures. Some routines were actually using an <eiffel>INTEGER</eiffel> to represent a <eiffel>POINTER</eiffel>. On 64 bits platform this is not working as <eiffel>INTEGER</eiffel> is 32 bits and <eiffel>POINTER</eiffel> is 64 bits. As a consequence if you are using low level facilities of WEL your code might not compile anymore. Simply replace <eiffel>INTEGER</eiffel> by <eiffel>POINTER</eiffel> to make it compile.
|
|
|
|
[[EiffelStudio release notes|Click here to check out what was new in other versions]]
|
|
|
|
|
|
|
|
|