Version
Release notes for EiffelStudio 5.6
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 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
assign
.
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
infix
andprefix
in editor and different views.
Compiler
- Click 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 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
serialization cluster of EiffelBase. -
ARRAY :- Changed signature of
subarray to match ELKS specification. It now returns anARRAY [G] instead oflike Current
. - Fixed
has to returnTrue
when searching forVoid
when comparing objects in an array containing aVoid
element. - Fixed issue on .NET with
clone /copy 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
occurences
that returned0
when called withvoid
argument andobject_comparision
istrue
. - Fixed a bug in feature
is_equal
that caused stack overflow when some array item is the array itself andobject_comparision
istrue
.
- Changed signature of
-
ARRAYED_LIST :- Removed
array_valid_index fromARRAYED_LIST . Descendants ofARRAYED_LIST may need to update their inheritance clause. This fixes ability to useput_i_th with indexes that may violate the invariant ofARRAYED_LIST , for example the code below should trigger a precondition and not violate the invariant ofARRAYED_LIST :
- Removed
list: ARRAYED_LIST [INTEGER]
create list.make (5)
list.put_i_th (3, 3)
- Added implementation query
new_filled_list inARRAYED_LIST . Descendants ofARRAYED_LIST may need to update their inheritance clause.
-
HASH_TABLE :- Added
merge toHASH_TABLE . - Now
remove will resetfound_item when an element is removed.
- Added
-
INTERNAL :- Implemented all the routines in the .NET version.
- Added support for creating
TUPLE types indynamic_type_from_string . - Added precondition to
set_reference_field to ensure validity of reattachement to attributes.
-
STRING :- Changed signature of
infix "+" to match ELKS specification. It now returnslike Current
instead ofSTRING . - Added implementation query
new_string . Descendants ofSTRING may need to update their inheritance clause. - Fixed a bug in .NET implementation of feature
replace_substring
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
center_justify that would corrupt memory on classic. - Changed
character_justify ,left_justify ,right_justify andcenter_justify so that justification is now done oncount instead ofcapacity . You might expect different results after upgrading, thus check all callers of those routines. - Added
is_case_insenstive_equal to compare two strings regardless of their case. - Rewrote routines
is_integer ,is_real ,is_double ,to_integer ,to_real andto_double so that they do not rely on C externals. This could breeak some existing code relying on specific locale to read floating numbers.
- Changed signature of
- Changed behavior of
item andeval inFUNCTION . They will not setlast_result with their result. If you want to uselast_result you should usecall instead. - Added new set of classes
NATURAL_8 ,NATURAL_16 ,NATURAL_32 andNATURAL_64 to perform unsigned integer operations. - Made implementations of
cursor in descendants ofCURSOR_STRUCTURE return a preciseCURSOR type. - Reduced feature exportation of routines also used as creation procedures of
CURSOR descendants toNONE - Removed
make_sublist fromTWO_WAY_LIST public creation procedures. - Made
file_prunable fromFILE obsolete. Useprunable instead. - Implemented features
collect andfull_collect of classMEMORY for .NET. - Changed type of feature
sign in classesINTEGER_8 andINTEGER_16 toINTEGER_8 andINTEGER_16 respectively. - Added a subcluster
refactoring with classes that can be helpful for performing code refactoring. - Augmented many features that are used to access items by their index (such as
ARRAY .item andTABLE .item ) 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
sleep
to classTHREAD_CONTROL
. - Provided inheritance link between classes
THREAD
andTHREAD_CONTROL
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
DATE_SET to useordered_compact_date as storage.
- Added support for [0]hh12 hour format.
- Added support for specifying hh12 as a standalone format string.
- Fixed a bug where calling
TIME .make_by_fine_seconds would setfractional_second to zero rather than to the expected value. - In
TIME , comparison offractional_second is done using a precision of 1.0e-10. - Fixed
is_positive inDATE_TIME_DURATION so that it is true when either the date or time is zero but the other is positive. - Fixed incorrect postcondition of
set_origine_date_time inDATE_TIME_DURATION which would fail when argument wasVoid
. - Fixed
is_correct_date inDATE_VALIDITY_CHECKER to check that year is less than 65535. - Fixed
DATE_TIME_PARSER when handling time in 12h format, but internally we would convert it into 24h format thus makingis_time andis_date_time returnFalse
whereTrue
was expected.
EiffelVision2
WEL
- Made WEL 64 bits compliant. This required a breaking change in signatures. Some routines were actually using an
INTEGER to represent aPOINTER . On 64 bits platform this is not working asINTEGER is 32 bits andPOINTER is 64 bits. As a consequence if you are using low level facilities of WEL your code might not compile anymore. Simply replaceINTEGER byPOINTER to make it compile.
Back to 5.x