
                   NEW FEATURES in version 0.9.9.

This release should be stable. The main focus is performance/compiler
size enhancements.

*   The manual is enhanced and complete (unlike in 0.9.8, where 
    non-primitive type casts were undocumented)

*   The library size is reduced by 11%

*   The compiler performance is improved by 14% (while running the 0.9.8
    TestSuite)

*   New DVMap class, allowing optional compile-time translation of
    dynamic variable names from Strings into other Java primitive types
    for improved performance. This feature was requested by Tony S. Johnson.
    Note that contrary to DVResolver (which is an interface) the DVMap
    is a class. This was necessary to provide the default implementation for
    the translate method. Hope this would not cause many inconveniences.
    If yes -- tell me.

*   Deprecated (scheduled for removal in JEL 1.0)
    1) gnu.jel.Library constructors except the 5-argument full version,
       please add null arguments to your calls to the Library constructor
    2) gnu.jel.DVResolver interface, please use DVMap instead.

*   The method loadRenamed in ImageLoader is commented-out, it is only
    necessary to rename the class files on an older versions of JVM (below
    1.1.7, AFAIK) which are now rare. Please uncomment it and use instead of
    "load" method if you have to support an old JVM. The symptom of an old
    JVM is that when You run TestSuite it fails, with all the expressions
    returning the same result as the first successfully evaluated one.


                   BUGS

*   JEL does not run under IBM JDK 1.1.8 on Linux with JIT on if it was
    compiled by JDK 1.1 compiler with -O flag. This is either problem of
    javac or IBM's JIT. Note that distributed version is compiled with
    jdk 1.2 compiler and works with IBM JDK 1.1.8 JIT.

*   In Microsoft JVM with JIT enabled "d2i" instruction was not implemented
    correctly. To see if this BUG is fixed in Your JVM run the JEL
    TestSuite, if all tests pass You are safe.
    

                       PLANNED FEATURES

1. Identification of the return type of compiled expression at run-time but
   prior to evaluation. Currently, the type can either be fixed (which is
   convenient for numerical computations), or be free (in this case the
   precise type of the returned object can be determined using its "getClass"
   method. There is also possibility to determine the result type without
   expression evaluation by calling CompiledExpression.getType, but currently
   it only distinguishes between the primitive types and does not say the
   exact class if the result is an object. The additional type identification
   would enable to access what compiler knows about the result type of the
   expression returning an object without running the expression. This is less
   precise than querying returned object directly, but guarantees that the
   returned object belongs to a subclass of the class determined this way.

   Note that fixing the result type (an already implemented feature) of the
   expression to a class of non-primitive type guarantees that the returned
   object will be always of a subclass of that class.

   This feature was requested on help-jel mailing list.

   http://mail.gnu.org/mailman/listinfo/help-jel

2. To change the internal implementation of the compiled expression from
   linked list (which was originally chosen for simplicity in first version
   of JEL) into the tree (which is better suitable for more complex expressions
   supported by JEL now). This modification will be released only if
   testing will show that the library size/performance are improved by it.

Thu Nov  8 00:06:20 CET 2001 
           Konstantin Metlov.
