Jif Change Log
==============

This file documents changes between releases of Jif.

2006-03-13    Jif 2.0.1
    * Numerous bug fixes.
    * Label less-than-or-equal constraints for methods.
    * Map implementation in jif.util library.
    * Simple runtime class analysis removes the need to statically handle 
            some spurious ClassCastExceptions
    * jif.lang.IDComparable interface now with additional method
            equals(label lbl, IDComparable[lbl] o)
        
2005-08-26    Jif 2.0.0
    * Class parameters now represented at runtime.
    * Dynamic labels and principals more expressive: now allow access paths.
    * Allow user-defined principals.
    * Not-null checking more precise.
    * Better documentation.
    * Based on the Polyglot 2.0.0 architecture.

2004-10-04    Jif 1.1.1
    * Based on the Polyglot 1.3.0 architecture
    * Now includes required Polyglot jar files in the distribution
    
2004-04-13    Jif 1.1.0
    * Based on the Polyglot 1.2.0 architecture.
    * Improved error messages.
    * New command line option to the Jif compiler: "-explain" (or "-e") 
      makes the compiler provide more information about why label checking 
      failed.      
    * The signature for the "public static void main" method for Jif 
      programs can now optionally include a dynamic principal, who is the 
      current user. See the file examples/README in the distribution for 
      more information.
    * Misc bug fixes, including:
          * The label "this" cannot be used in a static context.
          * Incorrect labels missing colons (e.g., {Alice}") are detected.
          * Parameterized classes cannot be subclasses of 
            "java.lang.Throwable".
          * Final local variables require an initializer.
          * Implementation of acts for corrected.

2003-07-11    Jif 1.0.0
    * Based on the Polyglot 1.0.0 architecture.
    * Bounded label parameters
    * Non-null analysis to remove spurious exceptions
    * New example program: Battleship 

2001-09-06    Jif 0.9.2
    * Fixed a bug with loading external principals.
    * Fixed a bug with label checking loop statements.
    * Fixed serialization bug with jltools.util.Enum.
    * Installation procedure simplified.
    * Fixed Jif runtime interface.

2001-08-08    Jif 0.9.0
    * Fixed many bugs with label/principal parameters and dynamic labels.
    * Improved error reporting.
    * Added Jif runtime, which provides the ability to read and write files.
    * Added a utility to convert local users to Jif external principals.

2001-06-08    Jif 0.8.0
    * Many bug fixes with porting Jif to JLTools 0.9.0.

2001-05-16    Jif 0.7.0 (JLTools 0.9.0)
    * JLTools completely rewritten.
