Home My Page Projects Nullability Inference Tool
Summary Activity Forums Tracker Lists Tasks Docs News SCM Files

Project Filelist for Nullability Inference Tool

File Release Notes and Changelog

Release Name: nit-0.5d-win

Release Notes
About

   Nit, the Nullability Inference Tool, infers nullness properties of
   variables and can prove that a program is NullPointerException free.
   It allows to find suitable nullability annotations for fields, method
   parameters, return values and local variables. It works at the
   bytecode level (on .class files or .jar files) so it can be used on
   programs where the source is not available. While this can look
   strange for a programmer, this tool can also be used by other static
   analyses to improve their precision.

   It is developed by [1]Laurent Hubert of project [2]Celtique (formerly
   Lande) at [3]IRISA.

  License

   This software is distributed under the [4]GNU General Public License.

References

   1. http://www.trebuh.net/
   2. http://www.irisa.fr/celtique/
   3. http://www.irisa.fr/
   4. http://www.gnu.org/copyleft/gpl.html
Change Log
From nit-0.5c to nit-0.5d
-------------------------
- updating to the new version of JavaLib (1.8.1: fancier HTML output
  and fix some bugs)
- improved documentation and error messages (thanks to Mike Ernst)
- adding option --class-analysis to switch between RTA and CRA class
  analyses
- --main can now be specified several times and may be given method
    signature as argument
- jsr308-output option renamed to anno-file-output option
- removing clinit output options (not maintained anymore)
- indenting annotation file output so it is more readable to a human
- do not compute constraints for unreachable methods

From nit-0.5b to nit-0.5c
-------------------------
- improved documentation

From nit-0.5a to nit-0.5b
-------------------------
- bugfix in documentation
- windows bugfix: colon were used are class path separator which is in
  conflict with Windows drive names

From nit-0.5 to nit-0.5a
------------------------
- corrections in documentation
- adding an option to the command line to output the version number
  and licence

From nit-0.4 to nit-0.5
-----------------------
- new version of JavaLib (1.8) (using RTA instead of CHA, numbering
  some data for faster operations, see CHANGELOG in JavaLib for more
  details)
- using Patricia Trees for map over integers (more efficient)
- output message when unsafe derefences are found
- output format compatible with an Eclipse plugin (cf. --xml-output)
- output format compatible with JSR308 annotation file utilities
  (cf. --jsr308-output)
- --remove-package now takes a list of package (easier to use)
- compilation scheme now compatible with Cygwin

From nit-0.3 to nit-0.4
-----------------------
- new version of JavaLib (a lot lazier / a lot faster; and more
  precise)
- some code reorganization to improve readability and garbage
  collection
- make --compact option the default (and add a --no-compact option)
- correct a bug in statistics (some non-reference values were counted
  as NonNull)
- bugfix: there was a loss of precision in constructors where a
  exception was thrown after field initialization

From nit-0.2 to nit-0.3
-----------------------
Major Core Modifications:
- adding an analysis to recover informations from instanceof
  instructions
- adding a new must-alias analysis

Interface Modifications:
- add statistics on array dereferences
- add statistics on time and memory consumption
- NotNull and MaybeNull have been replaced by NonNull and Nullable,
  respectively
- help message (and some others) wrapped to 80 columns
- if no output is selected then print an error message and exit
- --class-path is no more mandatory if --load-program is used

Minor Core Modifications:
- compacting results of instanceof and alias analysis
- bottom values are not stored anymore in AbLocals
- recover more information from the arraylength instruction
- IntMap.remove preserve physical address if no value is actually
  removed
- improving efficiency by replacing some fprintf functions by their
  compiled version
- recoding statistics so the code is clearer
- adding interfaces to some modules
- the analysis is now tuned through the Options module
- using the new JavaLib version

Corrections:
- (bugfix) correct a bug in statistics of putfield on a double word
  value
- spelling errors corrected in documentation
- minor changes/updates in documentations
- OCaml warning in print.ml corrected

From nit-0.1.2 to nit-0.2
-----------------------
- bugfix in statistics computation
- a lot of documentation added

From nit-0.1.1 to nit-0.1.2
-----------------------
- bugfix in aliasB analysis
- more explicit error message when method not found
- updating JavaLib
- TODO updated
- adding interface src/print.mli

From nit-0.1 to nit-0.1.1
-----------------------
- bugfix in Makefiles
- adding disclaimer on all files
- improving Makefile and make it compatible with GNU Make 3.80 instead of 3.81
- implements IntMap.equal (instead of doing it in other places)
- add some documentation

nit-0.1 : Initial release