ISE EiffelBench 4.5
ISE Eiffel version 4.5 (Build 020)
New products
- Brand new EiffelCOM library. Supports the client side
(accessing COM components from Eiffel) and the server side (producing COM components
from Eiffel). Built-in wizard takes care of all tedious tasks. Design by Contract(TM) applied for the first time
to the world of COM: assertion violations are notified to clients;
takes the pain out of COM debugging. (Details.)
- New EiffelStore library handles ODBC v.3.0, Oracle 8.0.4 and 8i.
- New Support Web Pages and knowledge base where you can find a lot of useful information about ISE's products. (The support pages are here.)
Performance
- Faster C compilation on all platforms. The compilation is 5 to 10 times faster than it used to be in previous versions of ISE EiffelBench! The
exact improvement varies with the C compiler you are using.
- Improved ANSI C and C++ code generation.
- Finalizing when using a precompiled library does not cost any speed
performance to the finalized application, just a small memory overhead
due to larger static data.
- Improved runtime performance when inserting Eiffel objects into large arrays.
- Improved STRING performance: reduced memory allocation request for calls to make (0).
New ISE EiffelBench functionalities
- Recursive cluster specification through a new Lace keyword. Just add all next to a cluster name, and all the subdirectories will be included!
Simplifies the writing of Ace files and their readability. For an
example look at
$EIFFEL5\precomp\spec\$PLATFORM\base for an example of its use.
(Details.)
- More powerful shared library mechanism: new Lace option shared_library_definition simplifies the generation process of a system into a shared library. No user intervention
required. (Details.)
- The parser is now completely written in Eiffel, permitting removal of all length limitations:
- Number of generic parameters
- Length of identifiers
- Length of manifest strings
- New way to look at STRING objects in the debugger:
- When the size of the STRING object is bigger than 50 characters, three dots will appear at the end.
- The following Eiffel STRING object "Hello,%N%THow are
you?%N%TRegards,%N%TJill"
will appear now appear like:
"Hello,
How
are you?
Regards
Jill"
This makes it easier for those manipulating long strings, such as large SQL queries in EiffelStore, through the debugger.
- New output behavior on Windows when executing your program from ISE EiffelBench:
if your application produces some output, the message Press Return to finish
execution... will appear, so that you can see the output. However, when
launched outside of ISE EiffelBench this message won't appear.
- New finish_freezing.exe on Windows:
- finish_freezing now offers a silent mode, so that you can launch it in a batch file without any user intervention. To use it simply add
-silent as a command line argument.
- Another new command-line option to finish_freezing.exe is -location, which will let you launch
finish_freezing.exe on a specific directory.
For example: finish_freezing -silent -location $MY_PROJECT\F_code.
- New dll32 and dllwin32 implementation for Windows. Now, dll32 is used to call C functions exported in a DLL, whereas dllwin32 is used to call C functions exported in a DLL with the __stdcall mechanism, mostly used by the Win32 API . (Details).
- DLL facilities: dll16 as a recognized sublanguage name; if you were using this,
you will have to switch to dll32. (Details.)
C/C++ interface
- New C/C++ macro encapsulation: you can now use the following
"C [macro <fd.h>]" to generate a macro defined in a C++ header
which requires to be compiled with the C++ flags. Therefore,
you can now write "C++ [macro <fd.h>]" and it will be correctly
handled by the Eiffel compiler. (Details).
- New C/C++ struct encapsulation: you can now encapsulate a C struct without having to write any C/C++ code in a header file.
(Details.)
- New CECIL features make CECIL (the library for calling Eiffel from C and other languages) easier to use for novice and non-novice CECIL programmers. (Details.)
EiffelBase developments
- Simplifications: removed consistent and setup from GENERAL for compatibility
with the ELKS 95 standard.
- Profiler control: new EiffelBase class PROFILING_SETTING helps you
configure the Eiffel profiler and to the best out of it. (Details.)
- New class to describe contiguous integer intervals: class INTEGER_INTERVAL. Features include for_all and other iterators, useful to express advanced contracts.
- New feature in INDEXABLE and descendants: index_set: INTEGER_INTERVAL. (This may result in
incompatibilities with existing code if you are using the
name index_set or if you have some repeated inheritance where index_set
from INDEXABLE has been redefined in two different ways. If you have such
problems, please use the old version of the EiffelBase library
in $EIFFEL5|library|compatible_base, which does not contain this feature.)
- Improved STRING class:
- New infix "+" function in class STRING to concatenate two strings.
- STRING may now have more than once creation procedure.
Two new ones are provided: make_from_string and make_from_c.
- set_count is now exported to the new added class STRING_HANDLER,
so that classes who need access to this feature can simply
inherits from the new class. (This gives you internal access, so use with caution.)
- Improved performance (see above).
- Pointer class extensions: two new features in class POINTER:
- infix "+" (offset: INTEGER): POINTER which returns the current
pointer moved by an offset of offset bytes.
- memory_copy and memory_move which corresponds to the ANSI C
functions memcpy and memmove.
Bug fixes
- Fixed a very old appearance bug on Windows 95 and 98: when creating a new project all directory names were shown in their DOS format and not in their long name format.
- Fixed some crashes when displaying the flat-short or the debuggable format
of certain features.
- Fixed a crash that occurred when you requested the clickable format of a class that was not part of your system.
- ISE EiffelBench runs smoothly on the Windows 2000 Release Candidate 2.
- Fixed a bug which was making ISE EiffelBench to reject the following code:
When redefining in class B a feature f: like Current from class A as Result := Precursor, ISE EiffelBench will generate a validity error
because it thinks that the source and the target do not have the same type where it should be valid.
- Changing the assertion level will not freeze your system anymore.
- Assertion checkings are now threaded-safe.
- Fixed a problem with once functions which were not initialized correctly if their return type was a basic type.
- Fixed a bug in the implementation of conforms_to in class GENERAL.
- Fixed some memory corruption due to the use of Agents.
- Reallocating an array, a string or a special object with a size bigger than 2^26 would crash the run-time, now you it won't but
there is still a limitation to a size of "(2^27) - 1" for Eiffel objects. When we try to allocate more than "(2^27) -1" it will
raise an out-of-memory exception.
- Fixed a wrong implementation in class UNIX_FILE_INFO of the following features:
- is_access_readable
- is_access_writable
- is_access_executable
- Calling generator or generating_type on basic types will now returns the correct value, i.e. the basic type class and not its counterpart
reference class (for example, INTEGER instead of INTEGER_REF.)
- Fixed a bug where calling default from GENERAL on a basic type was causing a crash of your application if the code was melted.
- Fixed the implementation of WEL_RICH_EDIT with the incorrect use of the WEL_RICH_EDIT_STREAM. This was making some of the ISE applications to
crash when opening a window containing a Rich-Edit control.
- Fixed in WEL: the features move and move_absolute from WEL_COMPOSITE_WINDOW has been changed to fix a bug where
move_absolute was not doing what we expect to do. Therefore, programs that are using them have to make sure to update accordingly.
We have updated the EiffelVision library.
- Fixed runtime memory leaks for Embedded Eiffel.
C compilers
Read the page regarding C compilers in order to learn how to configure your
C compiler.
|
Copyright (c) Interactive Software Engineering Inc., 1994-2000
Use subject to restrictions of customer license.
Duplication prohibited except under terms of customer license.
|