Jif Change Log ============== This file documents changes between releases of Jif. 2016-06-23 Jif 3.5.0 * Updated to Polyglot 2.7.1 release. * Various bug fixes, including a command-line processing bug that resulted in robustness being turned off by default. This bug affects all Jif 3.4.x releases. 2015-09-18 Jif 3.4.3 * Updated to Polyglot 2.7.0 release. * Changed from a custom license to LGPL. 2014-07-02 Jif 3.4.2 * Updated to Polyglot 2.6.1 release. * Various bug fixes. 2013-04-26 Jif 3.4.1 * Updated to Polyglot 2.5.2 release. * Various bug fixes. 2012-10-04 Jif 3.4.0 * Latent support for provider labels for limited compilation of untrusted code (to support Fabric). * -fail-on-exception option to promote uncaught exceptions to fatal errors. * In "declassify" commands, only the confidential component now needs to be specified. This makes declassify() easier to use. For instance, when the label of expression e is {Alice->;Alice<-}, "declassify(e, {Alice->} to {})" is the same as "declassify(e, {Alice->;Alice<-} to {Alice<-})". * Updated to Polyglot 2.5.1 release. 2009-03-16 Jif 3.3.2 * Top/bottom Unicode syntax for principals supported. * Small refactoring change to better support extensions to Jif. * Other bug fixes. 2009-02-24 Jif 3.3.1 * Small bug fixes in Jif and upgrades to Polyglot. * Subclasses of java.lang.Error now cannot be caught. * Output format for labels uses more readable -> and <- * Document -nonrobust option, which turns off robustness checking. 2009-02-02 Jif 3.3.0 * Jif now infers arguments to parameterized types, both for principal and label parameters. 2008-04-15 Jif 3.2.0 * Refactoring for cleaner support of extensions, including Jifclipse. * Minor bug fixes and style changes. * Allow reader policies o->_ and writer policies o<-_ to be dropped from labels. (Principal _ is the bottom principal, and thus o->_ and o<-_ do not restrict the the sets of readers and writers.) 2007-11-01 Jif 3.1.1 * Based on Polyglot 2.3.0 * Checked endorse construct * A useful form of the endorse statement for the common case of validating an untrusted value. See the Jif manual for more details. * Constant arrays * Arrays can be declared constant, meaning their contents will not change after initialization. This allows more permissive label checking. See the Jif manual for more details. * Dataflow analysis for array bounds * Analysis is able to determine if some array access and new array expressions will not throw runtime exceptions. * Numerous bug fixes 2006-06-09 Jif 3.0.0 * Added integrity * See the Jif manual for a full explanation. * Labels now form a complete lattice (meet operation supported). * Optional checking for robustness * See the Jif manual for a full explanation. * Label checking rules to enforce robustness against all attackers can be turned on using the "-robust" command line option. * Syntactical/lexical changes * UTF-8 encoded source files accepted * A reader policy "p:q" can also be written "p->q" or "p→q" (the arrow is Unicode character 8594) * A writer policy "p!:q" can also be written "p-