---------------
1.  WHAT's NEW
---------------
A list of changes in recent versions:

0.2.0: (30-May-2008)
        * Switched from JCommon to LibBase. All version information is now contained in
          the manifest. The Project-Info implementation reads the version numbers from
          the Jar's Manifest or the compiler-output-directory.

        * Formulas can now define inline arrays using the OpenFormula syntax.

        * CLOB objects are now properly converted into Strings.

        * SUBST function now uses a single Stringbuffer instead of creating new
          temporary strings all the time resulting in less memory consumption and
          a slightly higher performance.

        * Error handling is now more consistent. Instead of returning error tokens,
          all formula functions now throw exceptions.

          Parse errors in the formula-parser now return the location of the error
          so that it is easier to find out why a function is rejected by the parser.

        * Function now always use BigDecimals when creating new Number-Instances.
          This reduces the number of objects created during conversion operations
          and improves performance.
          
        * Creating Dates from Numbers is now more performant as we reduce the
          reliance on Calendard-Operations. 

        * [API] MappedFunction and ArrayConverter classes have been removed, as these
          classes were never implemented and are no longer needed anyway.

        * [BUG] MOD function declared to have 12 parameters, but only requires 2.

        * [BUG] ISREF function had no valid metadata due to a typo in a filename.
 
        * [BUG] PRE-361 - ODD and EVEN functions failed to produce correct
          results.

        * [BUG] REPT function did not handle null-values according to the
          specification.

        * [BUG] SUBSTITUTE function did not handle empty strings as second
          parameter according to the spec.

        * [BUG] PRE-363 - Extra comma on "Checks whether" comments and
          descriptions removed.

0.1.18: (21-Feb-2008)
        * PRE-257 - Properly escaped double-quotes in a formula were not
          translated into proper quotes in the parsed formula-tree
          afterwards.

0.1.17: (04-Feb-2008)
        * PRE-231 - Fixed bug where parsing of numerics stopped after first
          non-numeric (including a decimal).


0.1.16: (30-Nov-2007)
        * PRE-161 - Fixed a bug with MIN() and MAX() functions not handling strings correctly

        * PRE-162 - Fixed a bug with the minus sign operation (-) and percentage operator (%)
          returning the wrong type if the wrong type is supplied

0.1.15: (02-Nov-2007)
        * Upgraded to jcommon-1.0.12

0.1.14: (16-Oct-2007)
        * Automatic fixes as reported by IntelliJ-IDEA's inspections
    
        * Updated the copyright header on all java-files
    
0.1.13: (12-Oct-2007)
        * [BUG] Fixed divide operations that nad no defined scale.

0.1.12: (24-Sep-2007)
        * All releases are now built with JDK 1.4. However, we are still compatible
          with JDK 1.2.2 and all releases run and compile under that release.
        
        * [BUG] The boot-class always reconfigured the logging system to use 
          System.out logging, even if the user configured something else.

        * [BUG] The DefaultFunctionRegistry should have cached the loaded
          class-objects to avoid resource-contentions in the JDK's classloader.

0.1.11: (15-Aug-2007)
        * Added MIN, MAX, and MOD functions
        
        * [BUG] NumberSequence and Arrays from ranges should now work
        
        * Marked unimplemented methods with UnsupportedOperationException
        
        * Removed use of System.out in favor of JCommon logging
        
        * [BUG] Reworked some functionality that was not Java 1.2 compliant
        
        * Removed some old CVS artifacts

0.1.10: (30-Jul-2007)
        * [BUG] A misplaced instanceof test prevented the distinction between
          java.sql.Date and java.sql.Time objects.
          
        * [BUG] A rouge System.out statement was left in the generated formula
          parser and caused funny messages.          

0.1.9: (24-Jun-2007)
        * [BUG] Percentage Operator did not set the scale correctly

        * [BUG] Divide operator did not remove unneccessary trailing zeros.

        * [BUG] Fixed a NullPointerException in the Numeric-Operators.

        * [BUG] Some operations returned 'null' instead of a NA()-TypeValue-Pair.

        * [BUG] The parser did not handle parenthesis correctly resulting in
          invalid results in computations.

        * Added support for inline arrays to the parser.

        * NULL-Values (aka NA()) are now treated like in Excel. Any operation
          performed on an NA() value results in NA(). There is no implicit
          conversion into ZERO for numeric operations anymore.

0.1.8: (21-May-2007)
        * [BUG] The automatic type conversion was not always working.
        
        * [BUG] The 'greater equal', 'lower equal' and 'not equal' 
          operators did not work as expected.
          
        * The date-formats used in the automatic conversion can now 
          be configured using the global configuration.

        * New functions added
          Date:
          - DAY()
          - HOUR()
          - MONTH()
          - WEEKDAY()
          - YEAR()
          
          Math:
          - EVEN()
          - ODD()
          - AVERAGE()
          
          Information:
          - ISNONTEXTFUNCTION()
          - ISEVEN()
          - ISODD()
          - ISNUMBER()
          - ISREF()

0.1.7: (27-Apr-2007)
        * [BUG] Fixed a couple of type-conversion issues when converting from and
          to numeric types. Now, if a value is not convertible, a 
          TypeConversionException will be thrown.

0.1.6: (01-Apr-2007)
        * [BUG] Comparing two untyped (Any-Type) values always failed. The new
          implementation now tries to convert these values into Numbers, Dates,
          and Strings to compare them. (This is a quick-fix for Bug #1680148;
          however, it needs more testing before we can close that bug.)

        * New functions added
          Date:
          - NOW()
          - TODAY()

0.1.5: (07-Mar-2007)
        * Exposed some previously private variables to allow proper inspection
          of formulas.

0.1.4: (01-Mar-2007)
        * [BUG] The parser did not accept empty parameters so that syntactilly
          valid formulas like "IF(;;;)" failed to parse.

        * [BUG] The TRIM(..) function was invalid. TRIM has to remove all
          leading, trailing and all duplicate inner whitespaces from the give
          text.

        * New functions added
          Text:
          - REPLACE(
          - SUBSTITUTE(text, old_text, new_text, nth_appearance )

          Math:
          - ABS(number)

          Date:
          - DATEDIF(date1,date2,interval)

0.1.3: (25-Jan-2007)
        * [BUG] The power operator was not registered.

        * [BUG] The 'minus' prefix operator did not work.

        * New functions added
          Text:
          - LEFT(text[,length=1])
          - EXACT(text1,text2)
          - FIND(needle,hay[,startIndex])
          - LEN(text)
          - LOWER(text)
          - MID(text,start,length)
          - REPT(text,count)
          - TEXT(value)
          - T(value)
          - TRIM(text)
          - UPPER(text)
          - URLENCODE(text[,encoding])

          Information:
          - NA
          - ISNA(value)
          - ISTEXT(value)
          - ISLOGICAL(value)
          - ISERROR(value)
          - CHOOSE(condition,value[,..])
          - ISBLANK(value)

0.1.2: (22-Dec-2006)
        * [BUG] The parser failed when being faced with functions that have
          no parameters.

        * New function NULL allows to return a NULL-reference.

        * Added the 'ISBLANK' function from OpenFormula.

0.1.1: (11-Dec-2006)
        * The FormulaContext now is able to signal errors using Exceptions.

          The ToDo list has grown a bit after studying the holy books of
          Formula-computation. Version 0.2 will see some major internal API
          changes.

0.1.0: (03-Dec-2006)
        * Initial version. This version happily deals with plain types and
          somehow it even handles arrays without crashing. Code for database
          support exists, but is not in a usable state (yet).

          I don't even think about OLAP cubes now.

        * Functions use a parameter callback now. This way, we avoid to pre-
          evaluate all the parameters and therefore optimize the evaluation of
          the whole formula.

