|
In one word, release 2.1 is better and better, with much more static checks in order to help you to produce safer and faster code.
More details about changes from 2.0
insert ANY
is automatically
added.
The architecture of the compiler has been completely revisited during this long period of hard work (more than one year since previous release). The most important goal of this new architecture is to improve compilation time of very large systems and to take into account repeated inheritance as well as the new non-conforming inheritance mechanism. For the latest point, please note that the SmartEiffel compiler is the very first one to implement such Eiffel novelties. Implementation of non-conforming inheritance is not a piece of cake and we think we made a great job to experiment this new feature of the Eiffel language (see after for details).
Also, and not the least, the new vision library, our graphical Eiffel toolkit, is now part of the standard release. The vision library makes intensive usage of the new agent mechanism and allow you to write graphical applications in pure Eiffel. The generated C code can run both on X windows and Windows api without any modification.
More details about changes from 1.1
insert ANY
is automatically
added.
Finally, the latest thing to know is that, at time being, only one conforming path (i.e.
an inherit
path) is allowed between two points of the inheritance graph.
The new organization splits the classes by logical topics. Note that each cluster may contain two special clusters: "low_level", containing classes that you might use if you need better performance (generally when you build some utility or library classes); "internal" containing support classes, and not meant to be used directly.
Now, the organization itself:
You should update all your create instructions by selecting HASHED_DICTIONARY or AVL_DICTIONARY. In order to ease this code update, the compiler will warn you that HASHED_DICTIONARY is selected by default. Please update your code because this is a temporary warning of the compiler.
Some more DICTIONARY classes were also added (among them: DOUBLE_DICTIONARY can be of interest).
Provided features:
This is the very first release with the name SmartEiffel!
(Previous releases
were named SmallEiffel.)
The main changes between SmallEiffel -0.74 and SmartEiffel 1.0 are:
|
loadpath.se
"
files the ${SmallEiffelDirectory}
environment variable is
automatically defined using the value of the
${SmallEiffel}
environment variable.
obsolete
warnings.
For obvious uniformity reasons, some other classes of the library
have also been modified (ARRAY, LINKED_LIST, DICTIONARY, etc.).
As an example, nb_occurrences of ARRAY is now obsolete
and the obsolete
warning tells you that occurrences
is the new name to be used.
This work is still a work in progress.
Please, contact Arno Wagner (in charge of the STRING class
modification) on our mailing list.
obsolete
warnings.
For obvious uniformity reasons, some other classes of the library
have also been modified. As an example, empty is always
replaced with is_empty in all classes.
The name all_cleared is always replaced with
all_default.
The most difficult problem is due to the fact that is_equal
in ARRAY no longer uses the elements is_equal to compare them,
but the basic '=' infix operator.
For uniformity reasons, this has also been done for all
COLLECTIONs as well as class DICTIONARY.
install.e
with a precompiled
install.exe
for Windows).
This install.e
class is the code for the installer of the
SmallEiffel distribution it comes with, and is designed to be as
portable as possible.
This automatic installation program has already been tested for
Windows/lcc-win32, Windows/bcc32, Linux/gcc, Solaris/gcc,
DEC-Alpha/gcc and FreeBSD/gcc, ...
make
in the SmallEiffel directory.
install.exe
.
install.c
file.
obsolete
keyword) now supported.
${SOME_VAR}
"sys"
sub-directory (more on
system customization).
"system.se"
which is
in the sub-directory "sys"
of the installation directory.
/usr/lib/SmallEiffel/sys/system.se
is_connected
for all features
put_*
of class OUTPUT_STREAM.
Mcn
).