🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.eiffel
Article #1686

SmallEiffel -0.85 with Java bytecode

#1686
From: Dominique Colnet
Date: Thu, 03 Jul 1997 00:00
98 lines
4839 bytes
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: 

   ftp://ftp.loria.fr/pub/loria/genielog/SmallEiffel

Mirrors sites should automatically be updated within 24h : 
   Australia ftp://ftp.progsoc.uts.edu.au/pub/Eiffel/SmallEiffel/
   Austria http://gd.tuwien.ac.at/pub/languages/SmallEiffel/
   USA ftp://ftp.cs.rit.edu/pub/mirrors/SmallEiffel/

--

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
  optimized,
  - 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 
  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.


--

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: colnet@loria.fr VOICE:+33 0383593079 FAX:+33 03834130
Technical Details
Message-ID: <5phbgi$dfv$1@muller.loria.fr>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fac41,3d2196d98e31d2ea,start
X-Google-Attributes: gidfac41,public
X-Google-Thread: f631b,3d2196d98e31d2ea,start
X-Google-Attributes: gidf631b,public
From: colnet@gerome.loria.fr (Dominique Colnet)
Subject: SmallEiffel -0.85 with Java bytecode
Date: 1997/07/03
Message-ID: <5phbgi$dfv$1@muller.loria.fr>
X-Deja-AN: 254385773
Organization: CRIN (CNRS) & INRIA Lorraine - Nancy - FRANCE
Newsgroups: comp.lang.eiffel,fr.comp.lang.java