Version
Release notes for EiffelStudio 5.4
Graphical environment
Improvements
- Added support for mouse wheel in editor and associated parameterization in preferences.
- Cluster tree is not collapsed anymore between compilation.
- All callers will not show empty entries.
Bug fixes
- Fixed issue where setting the string background color to
auto
in the preferences will set it to a black color next time your relaunch EiffelStudio. - Fixed issue where typing in an empty features tree will close down EiffelStudio.
- Fixed issue with BON diagram where expanded client links were not properly displayed (the expanded bar was drawn on top of classes instead of on the link itself).
Debugger
Improvements
- Ability to debug .NET applications from EiffelStudio. It behaves like the traditional debugger except with the current limitations:
- no conditional breakpoints
- no expression evaluation
- no expansion to see attributes of non-Eiffel objects
Bug fixes
- Fixed issue on Unix platforms where passing more than 5 arguments will disable debugging and ultimately crash the environment.
EiffelBuild
- Click here for the EiffelBuild release notes.
Compiler
- Click here for the compiler release notes.
Libraries
Eiffel2Java
- Fixed incorrect memory freeing in
get_string
inJNI_ENVIRONMENT
that could cause some memory corruption. - Fixed
VDRD
error in method_id fromJAVA_OBJECT
.
EiffelBase
- Optimized
i_th
fromPRIMES
for the first 200 prime numbers. - Fixed bug in
generic_typecode
fromTUPLE
in .NET implementation which fixed an issue withis_reference_item
. - Made
TUPLE
a descendant ofHASHABLE
and definedhash_code
(based on the hash_codes of the elements of aTUPLE
). - Added
default_create
as creation procedure ofTUPLE
and mademake
obsolete. - Added convenience features to
TUPLE
:put_XX_item
whereXX
can be replaced bycharacter, boolean, integer, double,...
. - Optimized
ROUTINE
,PROCEDURE
andFUNCTION
implementation to speed up agent calls by a factor of 2 to 3. Removedopen_operand_type
fromROUTINE
as its specification was only used internally and specification was not precise enough to be used by clients ofROUTINE
. - Fixed
append
fromSEQUENCE
to not perform adeep_clone
when passed argument is the same reference as Current. This was a problem when the base class of the type of the elements inherited fromMEMORY
and redefineddispose
. You could possibly end up freeing twice an external resource. - Changed implementation of
INTERACTIVE_LIST
to be based onARRAYED_LIST
rather than onLINKED_LIST
. - Added efficient implementation of
append
inARRAYED_LIST
. - Fixed bug in multithreaded mode when you open in two different threads a different file with a different mode. For example one is in read mode, the other one is in write mode. If the operation happens at the same time, you could end up with two files open in read mode or two files open in write mode, which is not the expected behavior.
EiffelNet
- Fixed bug in
set_delay
andset_nodelay
inNETWORK_STREAM_SOCKET
, because their implementations were inverted. - Fixed incorrect spelling of
maximum_seg_size
inNETWORK_STREAM_SOCKET
. - Added recoverable storable to EiffelNet (was not included in previous version although recoverable storable was available for files).
- Fixed
SMTP_PROTOCOL
to follow more closely SMTP RFCs. - Added support for multi-line error codes in
SMTP_PROTOCOL
.
EiffelTime
- Improved speed of
DATE
andTIME
comparison. - In
DATE_VALUE
addedordered_compact_date
and madecompact_date
obsolete. - In
DATE
addedmake_by_ordered_compact_date
andmake_by_compact_date
obsolete. - In
DATE_VALIDITY_CHECKER
addedordered_compact_date_valid
. - Fixed
C_DATE
to buffer the current time rather than querying it for each of the time components. Not doing that was causing a bug inDATE
,DATE_TIME
andTIME
where if the computation was done on December 31st at 23:59:59 2003, we could end up with a date of January 1st 2003, therefore being one year off. This is a breaking change from before and if you are usingC_DATE
, useupdate
before each call to the *_now queries if you expected to reflect the time at the time of the query.
EiffelThread
- Added support for .NET
- Made
OBJECT_OWNER
obsolete - Added
wait_with_timeout
inCONDITION_VARIABLE
- Added
READ_WRITE_LOCK
class to be used in a system where few writes are done compare to reads. A typical example of its use would be to have a thread safe lookup table where few insertions are done. - Now a C externals that might block the execution of a system, should be marked
blocking
. See compiler changes for more details .
EiffelVision2
EiffelWeb
- Fixed issue when sending exception trace to browser. On most servers you were getting an internal error rather than the exception trace.
- Fixed issue with
cookies
fromCGI_ENVIRONMENT
as keys were stored as items, now the keys are stored as keys, items as items.
WEL
- Renamed
convert
fromCONVERTER
class intoextract_definition
. - Renamed
convert
fromWEL_FONT_FAMILY_ENUMERATOR
class intoupdate_current
. - In
WEL_TREE_VIEW
, callingdeselect_item
will now really deselect the item, whereas previously, it only caused the item to be redrawn without selection. - In
WEL_REGISTRY
,open_value_key
will now accept an empty string so that the default key value can be read. - Fixed issue with
dword_value
inWEL_REGISTRY_KEY_VALUE
which returned incorrect values. - Made
make
inWEL_REGISTRY_KEY_VALUE
accepts only string values, if you want to create a new instance with a value of a different type you need to use the new creation proceduremake_with_value
.
.NET libraries
- Renamed
THREAD
andMUTEX
intoSYSTEM_THREAD
andSYSTEM_MUTEX
to avoid name conflicts with EiffelThread.
Back to 5.x