home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 3
/
AACD03.BIN
/
AACD
/
Programming
/
sofa
/
archive
/
SmallEiffel.lha
/
SmallEiffel
/
misc
/
HISTORY.txt
< prev
next >
Wrap
Text File
|
1999-06-05
|
23KB
|
459 lines
History of changes
Lastest version first.
For a note on version numbering, see the [1]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 [2]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.
[Line]
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 [3]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 [4]compile_to_jvm and [5]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.
[Line]
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 [6]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 [7]cecil interface.
* Behavior of compilation flag [8]-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.
[Line]
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 [9]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 [10]short (require/ensure assertion of
deferred routines are now printed).
* Added one useful hook for mode -html1 in command [11]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.
[Line]
Release - 0.82 - Friday January 16th, 1998
* Became the official GNU Eiffel compiler.
* Added first HTML mode to command [12]short. Flag -html1. Thanks to
Matthias Klause.
* Fixed bugs in command [13]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.
[Line]
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.
[Line]
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.
[Line]
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 [14]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.
[Line]
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.
[Line]
Release - 0.87 - Tuesday January 7th, 1997
* Added a new flag -trace to ease debug (see [15]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 [16]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.
[Line]
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).
[Line]
Release - 0.89 - Sunday September 15th, 1996
* Calling Eiffel from C is now implemented (see [17]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).
[Line]
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
[18]man/compile_to_c) file).
[Line]
Release - 0.91 - Wednesday July 24th, 1996
* Incremental C compiling mode implemented (see option -c_code in
help file [19]man/compile) .
* Added command clean in help file [20]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.
[Line]
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).
[Line]
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.
[Line]
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
[21]man/external ).
[Line]
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.
[Line]
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.
[Line]
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.
[Line]
Release - 0.98 - Friday March 15th, 1996
* Command pretty added.
* Implements Eiffel expanded clause.
[Line]
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é
[Line]
Release - 1.00 - July 1995
* The very first bootstrap. SmallEiffel is born.
[Line]
Copyright © Dominique COLNET and Suzanne COLLIN -
[22]<colnet@loria.fr>
Last update: 05 June 1999, by DC & OZ.
References
1. file://localhost/home/colnet/SmallEiffel/misc/man/SmallEiffelFAQ.html#Q02
2. file://localhost/home/colnet/SmallEiffel/misc/man/system.html
3. file://localhost/home/colnet/SmallEiffel/misc/man/system.html
4. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_jvm.html
5. file://localhost/home/colnet/SmallEiffel/misc/man/print_jvm_class.html
6. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
7. file://localhost/home/colnet/SmallEiffel/misc/man/cecil.html
8. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html#trace
9. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
10. file://localhost/home/colnet/SmallEiffel/misc/man/short.html
11. file://localhost/home/colnet/SmallEiffel/misc/man/short.html
12. file://localhost/home/colnet/SmallEiffel/misc/man/short.html
13. file://localhost/home/colnet/SmallEiffel/misc/man/pretty.html
14. file://localhost/home/colnet/SmallEiffel/misc/man/external.html
15. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
16. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
17. file://localhost/home/colnet/SmallEiffel/misc/man/cecil.html
18. file://localhost/home/colnet/SmallEiffel/misc/man/compile_to_c.html
19. file://localhost/home/colnet/SmallEiffel/misc/man/compile.html
20. file://localhost/home/colnet/SmallEiffel/misc/man/clean.html
21. file://localhost/home/colnet/SmallEiffel/misc/man/external.html
22. mailto:colnet@loria.fr