Version
Release notes for EiffelStudio 5.3
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 compiler release notes for more info).
- Recoverable storable (See 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
orprefix
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 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
andtype_name_of_type
. - Added
truncated_to_integer_64
inREAL
andDOUBLE
. - Added
to_integer_64
inSTRING
. - Added new classes
MEMORY_STRUCTURE
,MANAGED_POINTER
andC_STRING
to better manage access to C and C++ memory structure. - Fixed incorrect implementation of
area
andsubstring
forSTRING
in dotnet mode. - Fixed bug in
copy
fromSTRING
where following code was violatingvalid_count
invariant fromSTRING
:
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
fromLIST
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
andcreate_read_write
inFILE
. They were not resetting the file size to zero if file already existed. - Added
correct_mismatch
onANY
used forrecoverable storable
. - Added
correct_mismatch
onHASH_TABLE
to enable retrieval of the 5.1 and older version ofHASH_TABLE
. - Fixed bug in implementation of
copy
andis_equal
forTREE
and descendant classes. Now descendants ofTREE
that would like to compare additional attributes of their class needs to redefinenode_is_equal
whose default implementation will always result in a true value. - Changed default semantic of
make
andput_child
fromFIXED_TREE
, to preserve existing semantic, you should usemake_filled
andreplace_child
instead.
Eiffel2Java
- Updated library so that it works both in classic and dotnet mode.
EiffelCOM
- Fixed crash in
ccom_set_name
fromFONT_IMPL_PROXY
.
EiffelNet
- Fixed assertion violation of call to
to_integer
in featureget_content_length
fromHTTP_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
fromEXT_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
WEL
- Removed inheritance to
WEL_STRUCTURE
inWEL_STRING
, it now inherits from newC_STRING
class. In the process removed the following features which were inherited fromWEL_STRUCTURE
and did not make sense toWEL_STRING
memory_copy
,structure_size
,dispose
,set_item
,set_shared
,set_unshared
,shared
,to_integer
. No replacements have been provided for those features. Madeinitialize
andinitialize_with_character
obsolete, instead we now provide two features inherited fromC_STRING
fill_blank
andfill_value
.
Back to 5.x
cached: 10/30/2024 7:46:20.000 PM