|SmallEiffel -0.85 with Java bytecode Dominique.Colnet@loria.fr (Dominique Colnet) (1997-07-04)|
|From:||Dominique Colnet <Dominique.Colnet@loria.fr>|
|Date:||4 Jul 1997 14:58:10 -0400|
|Organization:||CRIN & INRIA-Lorraine - Nancy - FRANCE|
|Keywords:||Java, Eiffel, available|
The long-awaited version -0.85 of SmallEiffel is NOW AVAILABLE !!
It includes the FIRST EIFFEL TO JAVA BYTECODE COMPILER that you
can download for FREE.
The Eiffel to C compiler has also been improved.
The new release -0.85 of SmallEiffel is available at:
Mirrors sites should automatically be updated within 24h :
The greatest news is that release -0.85 includes the new
command `compile_to_jvm' for beta test.
This new command is an Eiffel to Java bytecode compiler.
Thus, using SmallEiffel, you can produce both C code or Java
bytecode using exactly the same Eiffel source code.
The new command `compile_to_jvm' has reached the beta test level:
it passes a large number of tests (90% of our data base of tests).
Remaining unhandled tests concern the BIT type
and some user`s expanded usage.
This release has been tested under various Unix platforms (PC,
HP-UX, DEC and Sun). The Java Virtual Machine used is the one
of the latest Sun JDK 1.1.2.
For this first release, our goal was not to produce the
fastest Java bytecode, but to show that quick Eiffel
to Java bytecode translation is possible.
Indeed, compared with gcc -O6, the actual generated
bytecode is about 20 times slower (when interpreted, ie using
the Sun JDK "java" command) than corresponding C code (compiled
with gcc -O6).
Many optimizations which are already done for C code are
not yet implemented for the Java bytecode :
- routine calls are never inlined in Java bytecode,
- once routines are never pre-computed in Java bytecode,
- boolean expressions of conditional instructions are not
- dynamic dispatch is sequential in the actual Java
bytecode (vs. a binary branch code for C),
All previous optimizations are to be done in the -0.84 release.
We think that the factor 5 will be easily reachable.
Another work in progress for next release (-0.84) is to provide
a smooth interface with Java libraries.
The goal is to be able to write applets in Eiffel, to call Java
from Eiffel and Eiffel from Java ...
Extract from SmallEiffel/misc/HISTORY file :
- Release - 0.85 - Thursday July 3 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.hlp). 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
* 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
* Added OUTPUT_STREAM.put_pointer to view a POINTER.
Please note I'll be travelling next week, so I won`t be able to check the news
or e-mails. I'll be back on July, 14.
Dominique COLNET -- Talk Eiffel with SmallEiffel Talk Eiffel
C.R.I.N. (Centre de Recherche en Informatique de Nancy)
POST: CRIN,BP 239,54506 Vandoeuvre les Nancy Cedex,FRANCE
EMAIL: email@example.com VOICE:+33 0383593079 FAX:+33 0383413079
Return to the
Search the comp.compilers archives again.