SmallEiffel history of changes
-
Release - 1.00 - July 1995
-
The very first bootstrap. SmallEiffel is born.
-
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 - 0.98 - Friday March 15th, 1996
-
Command pretty added.
-
Implements Eiffel expanded clause.
-
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.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.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.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.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.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.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.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.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.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.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.86 - Sunday April 13rd, 1997
-
All reported bugs at this time have been fixed ( THANKS
list is updated).
-
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.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.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.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.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 now generate a Warning.
-
Release - 0.81 - Work in progress
-
Final version of the garbage collector.
Copyright © Dominique COLNET and Suzanne
COLLIN - <colnet@loria.fr>
Last update: Friday January 16th, 1998