What's new in EiffelStudio 5.3
Graphical environment
Improvements
- 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 Ace 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
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
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.
Click here to check out what was new in
Eiffel 5.2
Click here to check out what was new in
Eiffel 5.1
Click here to check out what was new in
Eiffel 5.0