Lastest version first.
For a note on version numbering, see the
SmallEiffel FAQ.
Release - 0.78 - Saturday June 05th, 1999.
-
New -html2 flag for command short generates a colorized
HTML short form for classes.
-
The garbage collector now takes into account feature dispose
of class MEMORY for reference objects.
-
Obsolete classes (
obsolete
keyword) now supported.
-
Assertion tags are now displayed when an assertion fails.
-
Added environment variable in loadpath files. Syntax:
${SOME_VAR}
-
Added the -no_style_warning flag to suppress warnings when
the recommended styles guidelines for Eiffel are not strictly followed.
-
Added the -version flag to show SmallEiffel's version.
-
Enhanced ease of use with and adaptability to various C compilers
(SYSTEM_TOOLS). Files compiler.system,
linker.system and o_suffix.system are
now obsolete and replaced by a unique file compiler.se common
to all systems. See the System configuration
page for more information.
-
Class LINKED_LIST now replaces obsolete class LINK_LIST (simple renaming).
Class TWO_WAY_LINKED_LIST now replaces obsolete class LINK2_LIST
(simple renaming).
-
Fixed "implicit renaming" bug.
-
Cleaned all source code of tabulations at beginning of line (made
code look ugly when using an editor whose tabs were not 8).
-
Some new ELKS'95 features implemented.
-
Validity rule VEEN fixed.
-
Added class COLLECTION_SORTER and REVERSE_COLLECTION_SORTER to the library.
-
Fixed file renaming portability bug (".d files bug").
-
Validity rule VCFG.1 is now enforced.
-
Validity rule VAPE is now enforced.
-
Classes mentioned in a cecil.se file are now automatically made live.
Makes it easier to link with external libraries.
-
Various other bug fixes.
Release - 0.79 - Tuesday December 22nd, 1998.
-
The new Eiffel construct Precursor as described OOSC2 is
now implemented.
-
The Eiffel expression strip is now implemented.
-
Nested loadpath files now allowed.
-
Extended anchored definition to accept infix and prefix feature names.
For example, this kind of declaration is now accepted :
foo: like infix "+".
-
Classes COLLECTION2, ARRAY2 and FIXED_ARRAY2 of lib_std completely
revisited.
-
Fixed a bug related to calls of the form f.g.h; on expanded objects.
-
Fixed a bug related to inheritance of generic classes.
-
Fixed bugs related to assertions checking in case of exceptions
(rescue clause, retry). Improved cycle detection in assertions.
-
Fixed bug in GC related to recycling of "monsters" (very large
resizable objets).
-
Fixed an incredible bug in the implementation of the like Current
type mark. ;-).
-
Fixed many others bugs ($ operator, GC for alpha DEC, ...).
-
System customization file for the BeOS system added in the
"sys"
sub-directory (more on
system customization).
-
Contents of the environment variable SmallEiffel must be now
set with the absolute path of the file
"system.se"
which is
in the sub-directory "sys"
of the installation directory.
Under a UNIX-like system, the value of the SmallEiffel
environment variable may be for example:
/usr/lib/SmallEiffel/sys/system.se
Commands are also more robust when this environment variable
contains non-alphanumeric characters.
-
No more ensure assertion in GENERAL.get_environment_variable.
-
Commands compile_to_jvm
and print_jvm_class
completely revisited. Java byte-code can be now used with the
-verify Java option).
-
Validity rule VDRD.6 is now enforced.
-
Balancing rule (automatic promotion) for INTEGER, DOUBLE and REAL is now implemented.
-
Recursive once routines now work correctly.
-
Unmodified generated C files are not touched anymore.
-
Assertions correctly checked for all external C routines.
-
Exception handling now works when an exception occurs in external C code.
-
Cleaned the compiler and decreased its memory footprint.
Release - 0.80 - Thursday July 9th, 1998.
-
Exception handling implemented. Class EXCEPTIONS added
in lib_std.
-
Execution trace stack implementation completely revisited:
more comprehensive information is now available, and the overhead
incurred by this stack is greatly reduced (executables are about
3 times faster when running in -all_check mode).
-
Added option -no_main in command
compile_to_c
to avoid generation of the C main function. This is useful when one
wants to start execution from outside before calling some Eiffel routines
via the cecil interface.
-
Behavior of compilation flag
-trace of command
compile_to_c changed to allow step-by-step execution
(embryo of Eiffel source code debugger).
-
Feature ARRAY.resize completely revisited (added two
features in class NATIVE_ARRAY: clear and move).
-
Garbage Collector optimized (the GC should be more agressive and some
benchmarks are included in directory
SmallEiffel/misc/benchmarks/gc/*/bench.e).
-
Associativity of infix operator "^" is now correctly handled.
-
Fixed bugs in PLATFORM for Minimum_double, Minimum_real
and Minimum_character_code.
-
Fixed some others bugs about export rules, about expanded objects with expanded
attributes.
-
Fixed bugs in pretty.
Release - 0.81 - Thursday April 9th, 1998
-
First finalized version of the garbage collector. Currently supported
architectures are SPARC Solaris, HP-UX, Linux, MacOS, Windows 95 and NT
(see file
SmallEiffel/sys/gc for details).
Added flag -no_gc to suppress the GC (see
man/compile_to_c).
-
Changed the default for the generation of C code. Now, the C code and
object files are kept by default. (This previously required using option
-c_code, which becomes obsolete.)
Added flag -clean which removes all the C and object files of the system.
(This corresponds to the old default behavior.)
-
Fixed a bug related to buffered input under Windows/MS VC.
-
Fixed a bug in misc/INSTALL.SH script.
-
Added require
is_connected
for all features
put_*
of class OUTPUT_STREAM.
-
Fixed a bug in command
short (require/ensure
assertion of deferred routines are now printed).
-
Added one useful hook for mode -html1 in command
short (see hook
Mcn
).
-
Added directory SmallEiffel/sys/runtime which contains the C runtime.
-
Fixed a bug about instanciation of class ANY itself (not so common !).
-
Fixed a bug about inlining of operator $.
-
Fixed a bug about cyclic anchored definitions.
Release - 0.82 - Friday January 16th, 1998
-
Became the official GNU Eiffel compiler.
-
Added first HTML mode to command short.
Flag -html1. Thanks to Matthias Klause.
-
Fixed bugs in command pretty.
-
It is now possible to rename/redefine external "SmallEiffel" features.
-
Files *.hlp of directory SmallEiffel/man no longer exists. All
the documentation is now in *.html files plus corresponding automatically
generated *.txt files.
-
Manifest arrays creation has been optimized.
-
Validity rule VHRC.2 is now enforced.
-
Fixed bugs about export clause.
-
Feature GENERAL.hash_code no longer exists. Added ELKS class HASHABLE
in order to be compatible with others compilers/libraries.
-
Fixed a bug in pre-computed once functions.
-
Fixed a bug in REAL/DOUBLE keybord input.
-
Reintroduced left hand side cast in C code for better performances (allowed
by the C ANSI standard).
-
Obsolete features (obsolete keyword) now generate a Warning.
Release - 0.83 - Friday September 19th, 1997
-
Added command short to the distribution.
-
Added directory contrib in the distribution. This directory contains
some scripts to use gdb as source level debugger for SmallEiffel.
-
Added flag -no_warning to commands: compile_to_c, pretty,
and compile_to_jvm.
-
Added flag -case_insensitive to command compile_to_c.
-
Fixed a bug for inherit/select.
-
Fixed a bug for some pre-computed once function.
Release - 0.84 - Monday August 18th, 1997
-
Class BIT is now implemented in Java bytecode (command compile_to_jvm).
-
Added external specification to call Java code (when using compile_to_jvm).
-
To fit on a single 3.5 inches disk, unsplitted C code for large commands
(compile_to_c and compile_to_jvm) is no longer in the
distribution as well as the old lib_test directory.
-
Changed the algorithm to load classes in order to allow upper case letters
in files names (priority is always given to lower case file names).
-
Added STRING.substring_index (from ELKS written by Fridtjof SIEBERT).
-
Added one more file in SmallEiffel/sys/ directory in order to customize
object files suffix (thus, using Borland C compiler on Windows is now possible).
-
Changed the behavior of end_of_input of INPUT_STREAM (this flag
is true _after_ last character has been read).
-
Fixed a bug in manifest arrays (mixed objects including Void).
-
Fixed a bug dealing with some statically computed expressions.
-
Fixed a bug in repeated inheritance.
Release - 0.85 - Thursday July 3rd, 1997
-
First beta-release of commands compile_to_jvm and
print_jvm_class!
-
The new name for class C_ARRAY is now NATIVE_ARRAY (because it works both
with Java and C). The old C_ARRAY name is temporarily accepted with a warning
from the compiler.
-
For readability and to avoid confusion with Java names, external tags have
changed (see for new names in
man/external file).
Old names are temporarily accepted with a warning giving the new
name to use.
-
Added feature to_hexadecimal and feature to_hexadecimal_in
in class CHARACTER.
-
Feature io, std_input, std_output and std_error
of class GENERAL are no longer frozen.
-
Some changes in STD_FILE_READ for features read_integer, read_double
and read_real (added comments, precondition and solved the problem
with the trailing separator).
-
Feature die_with_code of GENERAL now accepts any INTEGER code
(not just predefined exit_success_code and exit_failure_code).
-
Fixed a bug in STRING. The following expression is now true: ("a%/0/b").count
= 3
Just try this on your favorite Eiffel compiler ;-)
-
Many changes in basic input/output in order to be compatible with Java:
No more class STD_FILE (the name is now free for an ELKS implementation).
Two new classes: INPUT_STREAM and OUTPUT_STREAM.
-
Feature unread_character of class INPUT_STREAM is now implemented
in Eiffel.
-
Added OUTPUT_STREAM.put_pointer to view a POINTER.
Release - 0.86 - Sunday April 13th, 1997
-
All reported bugs at this time have been fixed.
-
Added flag -verbose to commands: compile, compile_to_c
and clean. When this new flag is not present, commands now work
silently unless some error (or warning) occurs.
-
Features BOOLEAN.infix "or" and BOOLEAN.infix "and" are
now written in pure Eiffel. As a consequence, it is very important for
the SmallEiffel programmer to make the distinction between BOOLEAN.infix
"and then" and BOOLEAN.infix "and" (respectively for BOOLEAN.infix
"or else" and BOOLEAN.infix "or"). When left-hand-side argument
produces no side effect, the semi-strict operator (BOOLEAN.infix"and
then"/"or else") may run faster.
-
Fixed REAL.sin (the old one was calling sqrt :-).
-
Fixed a bug in INTEGER.append_in (you can now print
Minimum_integer).
-
Added feature in_range in class COMPARABLE.
-
Result type of REAL.infix "^" is now DOUBLE for ELKS compatibility.
-
Feature remove is now implemented in all subclasses of COLLECTION
(i.e. ARRAY, FIXED_ARRAY, LINK_LIST and LINK2_LIST).
-
Added feature add for all subclasses of COLLECTION.
-
Conversion DOUBLE/STRING : ANSI C sscanf and sprintf
is now used to avoid loss of precision.
-
Added some more class invariant code generation when compiling in -invariant_check
mode. Class invariant is now also checked before exit of a routine.
-
Added feature file_tools in class GENERAL to ease access to class
FILE_TOOLS.
-
Changed printing format for basic *_REF classes. For example, instruction
print(1); now prints 1.
-
Feature truncated_to_integer of DOUBLE is now ELKS compatible
(added feature rounded in class DOUBLE to replace the old truncated_to_integer).
Same changes in class REAL.
Release - 0.87 - Tuesday January 7th, 1997
-
Added a new flag -trace to ease debug (see
man/compile_to_c
file).
-
More inlining at Eiffel level (-boost mode only).
-
Class BIT_N completely revisited. It may be as fast as C.
-
Added class C_ARRAY[E] to deal directly with C arrays at Eiffel level.
Thus there are no more external "CSE" or c_inline_c in classes
STRING/ARRAY/FIXED_ARRAY (only full Eiffel).
Eiffel code is nice and STRING/ARRAY/FIXED_ARRAY may
run faster.
-
Fixed a bug in STD_FILE_READ.read_double.
-
Ordering of C output to increase gcc inlining.
-
According to man/compile_to_c)
, flag -debug_check now works (debug instructions are no longer
generated in mode -all_check).
-
Unused local variables removed at Eiffel level (warning added for -debug_check
mode only).
-
Default class ANY now inherits PLATFORM (as in ETL).
-
Fixed a bug in floating-point constants.
-
Added directory sys to customize default C compiler, default C
linker and default loading path.
-
Fixed some bugs with outside expanded types.
-
Fixed a bug with rename/select.
-
Redefinition of once routine is now allowed.
-
Feature GENERAL.conforms_to is now implemented.
-
Rule VFFD.7 is now enforced.
-
Feature force implemented for all COLLECTION.
-
Added conversions features CHARACTER.to_bit, INTEGER.to_bit,
BIT_N.to_character and BIT_N.to_integer.
Release - 0.88 - Wednesday October 30th, 1996
-
Fixed bugs dealing with inherit/rename/select.
-
Added warning for missing colon in actual arguments list.
-
Warning : INSTALL procedure has changed and you have to set manually the
default loading path (see misc/INSTALL for details).
-
Added some VMS customization.
-
Fixed bugs when printing run-time stack.
-
Warning added for missing colon in actual parameter list.
-
Added flush in class STD_FILE_WRITE.
-
No more left hand side cast in C code (because some C compilers don't like
them).
Release - 0.89 - Sunday September 15th, 1996
-
Calling Eiffel from C is now implemented (see
man/cecil)
file).
-
Object creation uses C calloc instead malloc+memset.
-
Object creation is inlined.
-
ARRAY/FIXED_ARRAY put and item are now inlined (-boost
only).
-
Added feature capacity and resize in FIXED_ARRAY.
-
Added some classes in std_lib: LINK2_LIST (two way linked list), COLLECTION2
(deferred), ARRAYED_COLLECTION (deferred), LINKED_COLLECTION (deferred)
and FIXED_ARRAY2 in std_lib.
-
More user's routines are inlined (-boost only).
Release - 0.90 - Friday August 23rd, 1996
-
Added random number generator library (SmallEiffel/lib_rand).
-
Added checking of assertions for external "CSE" features.
-
Anchoring on expanded types are now allowed.
-
Multiple level of anchoring definition allowed.
-
Fixed a bug in STRING.from_external.
-
Fixed a bug with mixed rename/redefine.
-
Inheritance loop detection.
-
Anchoring loop detection.
-
Fixed a bug with renaming infix/prefix.
-
Command clean also use the make suffix.
-
Added ELKS95 sign in INTEGER/REAL/DOUBLE.
-
Feature make is the default root feature name for compile.
-
Optimized ARRAY.add_last and STRING.extend.
-
Changed STRING.out (no more enclosing %" printed).
-
Remove warning gcc messages for 64 bits machine (alpha/DECK).
-
Added option -no_split for a better finalization (see
man/compile_to_c)
file).
Release - 0.91 - Wednesday July 24th, 1996
-
Incremental C compiling mode implemented (see option -c_code in
help file man/compile) .
-
Added command clean in help file
man/clean.
-
Added class FILE_TOOLS.
-
No more empty C struct in generated C code (to avoid problems with Microsoft
Windows C compiler).
-
Fixed one more bug with conformance rule VNCG.
Release - 0.92 - Saturday July 20th, 1996
-
Fixed some more bugs with conformance rule VNCG.
-
Added math functions in DOUBLE/REAL (sin, cos, tan,
asin, acos, atan, ... ANSI C names).
Release - 0.93 - Thursday July 18th, 1996
-
Fixed some more bugs with conformance rule VNCG.
-
Type BIT is now implemented.
-
Added ELKS 95 STRING.left_adjust and STRING.right_adjust.
Release - 0.94 - Friday July 5th, 1996
-
Fixed some bugs with conformance rule VNCG.
-
Static expressions are used to detect pre-computable once routines.
-
Added features to_external and from_external both in
classes ARRAY and FIXED_ARRAY.
-
Fixed a bug for inheritance of ARRAY or FIXED_ARRAY.
-
Contents of end of class comment checked.
-
Added documentation file for external calls (see help file
man/external
).
Release - 0.95 - Thursday May 30th, 1996
-
It is now possible to inherit ARRAY.
-
It is now possible to inherit STRING.
-
Flag -cc of compile_to_c has changed.
-
The PLATFORM class is now conform to ELKS95.
-
Added feature twin (like the one of TowerEiffel) in GENERAL.
-
Added features to_external and from_external in class
STRING.
-
Fixed some bugs in once pre-computed routines.
Release - 0.96 - Friday May 10th, 1996
-
Internal renaming to suppress some warning messages and for a smooth
integration with C++ software.
-
DOS and Macintosh better portability.
Release - 0.97 - Thursday May 2nd, 1996
-
Inside of compiler cleaned.
-
Pre-Computing of some once functions.
-
Added class COLLECTION, LINK_LIST and FIXED_ARRAY in lib_std.
Release - 0.98 - Friday March 15th, 1996
-
Command pretty added.
-
Implements Eiffel expanded clause.
Release - 0.99 - Saturday February 17th, 1996
-
The first version available on the net. Before being made available, the
very first SmallEiffel had been tested since September 1995 by students
of the University Henri Poincaré
Release - 1.00 - July 1995
-
The very first bootstrap. SmallEiffel is born.
Copyright © Dominique COLNET and Suzanne
COLLIN - <colnet@loria.fr>
Last update: 05 June 1999, by DC & OZ.