============
== V1.6r8 ==
============

General
-------
Counters and statistics are in CSV format if CSV format requested

Use a project file to build AdaControl

Accept "~" as a string delimiter

GPS
---
It is now possible to pass quoted parameters interactively

New rules:
----------
barrier_expressions

Changes to existing rules
-------------------------
Declarations: 
   added operator_renaming

Entity_Inside_Exceptions: 
   added calls, [not]

Expressions:
   added array_others, record_others

Naming_Convention: 
   moved the location parameter. 
   Added "unit" to locations.

Positional_Parameter: 
   changed name of rule to insufficient_parameters, removed first parameter
   ("maximum" now handled by style (positional_association)).

Statements: 
   added for_loop, simple_loop. 
   in multiple_exits: now consider exits from nested exception handlers

Style: 
   changed casing to casing_identifier
   added compound_statement, casing_attribute, casing_pragma
   added allowable value to positional_association

Uncheckable:
   added missing_unit

============
== V1.6r5 ==
============
(Specific release, not released publicly)

General
-------
Option to just list rules (-h list)

Form of syntax/parameter messages made consistent with form of report messages

GPS
---
Rules menu for "Help/AdaControl/Help on rule"

Choose "help on rule" style in preferences

Added "Check rules file" and option to check form file/single rule in
AdaControl menu

Switches to output to file

Possibility to redefine the command to run AdaControl through languages tab

Preferences: check box to delete .ali files.

New rules:
----------
Array_Declarations
Expressions
Max_Call_Depth
Max_Parameters
Other_Dependencies
Uncheckable
Unsafe_Unchecked_Conversion

Changes to existing rules
-------------------------
case_statement
   added parameter: max_range_span
   changed parameters: min_others_range into min_others_span

declarations: 
   added parameters: 
     in_out_parameter, out_parameter, initialized_record_field, limited_private_type, 
     non_limited_private_type, private_extension, uninitialized_record_field, 
     initialized_protected_field, uninitialized_protected_field, nested_package,
     nested_generic_function, nested_generic_package, nested_generic_procedure,
     nested_function_instantiation, nested_package_instantiation, nested_procedure_instantiation,
     non_identical_renaming
  changed parameters:
     formal_in_out => in_out_generic_parameter
     renames => renaming
     not_operator_renames => not_operator_renaming

default_parameter: 
   possibility to replace the <entity name> and <formal name> by "all"
   Fixed problem that prevented analysis of subprogram calls

header_comments: 
   added a parameter, possibility to provide a pattern file

no_safe_initialization: 
   now considers case and if statements

non_static_constraints: 
   changed name of rule to non_static 
   added parameter instantiation

real_operators: 
   no more a rule of its own, now expressions(real_equality)

max_statement_nesting:
  added parameter: block (also in "all")

statements:
   added parameters: 
      block, dispatching_call, labelled, null, reraise, unnamed_block, 
      unnamed_loop_exited, unnecessary_null, while_loop

style:
   added support for character and string literals.
   parameters added to "exposed_literal" subrule to specify the kind of literals and places
   parameters added to "multiple_elements" subrule to specify the kind of element
   split parameter "aggregate" for "positional_association" subrule in "array_aggregate" + "record_aggregate"
   added renamed_entity parameter

unsafe_paired_calls: 
   added possibility of having multiple opening/closing procedure for the same closing/opening one.

=============
== V1.5r24 ==
=============

General
-------
Do no stop analysis of rules file at first error

Option to just check syntax (-C)

Option to specify a trace file (-t, set trace)

Option to not print warnings (-E, set warnings on/off).

Option to report statistics (-S, set statistics)

Option to output result in various formats
 (-F, set format gnat/gnat_short/csv/csv_short/csvx/csvx_short/source/source_short)

Improved processing of child units: parent context is properly restored.

-v option displays progression indicator, tells units not found, does
   not print messages about controlling units that cannnot exist (SP
   bodies without specs, package specs that cannot have bodies) reports
   execution time.

Less tree swapping in Local_Hiding, should result in sensible speed improvement

Improved integration into GPS

New rules:
----------
Abnormal_Function_Return
Case_Statement
Control_Characters
Directly_Accessed_Globals
Header_Comments
If_For_Case
Global_References
Max_Blank_Lines
Max_Line_Length
Max_Statement_Nesting
Movable_Accept_Statements
No_Safe_Initialization
Non_Static_Constraints
Positional_Parameters
Potentially_Blocking_Operations
Reduceable_Scope
Return_Type
Special_Comments
Style
Terminating_Tasks
Unsafe_Paired_Calls
Usage
With_Clauses

Changes to existing rules
-------------------------
Allocators:
  Treat T'Class as T'Class, no more as T
  added task and protected

Declarations:
  added parameters:
        access_protected_type, access_task_type, array, array_type,
        child_unit, constant, constrained_array_type,
        decimal_fixed_type, defaulted_discriminant,
        defaulted_generic_parameter, defaulted_parameter,
        derived_type, discriminant, enumeration_type, entry,
        extension, fixed_type, float_type, formal_function,
        formal_in_out, formal_package, formal_procedure, generic,
        handlers, integer_type, modular_type, multiple_names,
        named_number, not_operator_renames, null_extension, operator,
        null_ordinary_record_type, null_tagged_type,
        ordinary_fixed_type, ordinary_record_type, package_statements,
        protected, protected_entry, protected_type, renames, separate,
        signed_type, single_array, single_protected, single_task,
        subtype, tagged_type, task_entry, task_type, type,
        unconstrained_array_type
  changed parameters:
        access => access_type, access_subprogram => accept_subprogram_type

Entities:
  Follows renamings and instantiations

Exception_Propagation:
  added a level of checking to specify the possibility of exceptions being raised
  during the elaboration of declarative parts
  added "declaration" keyword

Local_Instantiation:
  without parameter, all local instantiations are controlled

Naming_Convention:
  added any|local|global modifier

No_Closing_Name:
  no more a rule of its own, now a subrule of style

Parameter_Aliasing:
  new algorithm, handles more static cases where there is no true aliasing

Pragmas:
  allow "all" as parameter

Silent_Exceptions:
  Bug fix when complicated exit in loops
  handle function calls and generic instantiations.
  More clever analysis of for loops
  Can specify "return" and "requeue" as non-silent actions

Simplifiable_Expressions:
   All cases of unnecessary parentheses are now controlled.

Specification_Objects
   The rule is now part of Usage (object, from_spec)
   Better treatment of references to objects through formals in-out from within instantiations

Statement:
   Changed name to statements (with an "s", for consistency with other rules)
   Added parameters: Accept_Return, Asynchronous_Select,
         Case_Others_Null, Conditional_Entry_Call,  Entry_Return,
         Exception_Others, Exception_Others_Null, Exit_For_Loop,
         Exit_While_Loop,  Function_Return, Loop_Return,
         Multiple_Exits, No_Else, Procedure_Return, Raise_Standard,
         Selective_Accept, Timed_Entry_Call, Unconditional_Exit,
         Unnamed_Multiple_Loop,  Untyped_For, While_True

Unnecessary_Use:
  Bug fix
  works with use clauses coming from parent units

When_Others_Null
  no more a rule of its own, now a subrule of statements

Commands
--------
Inhibit:
   Added "all" for rule names, "all" for units

Framework:
----------
Added boolean trace procedure
Added support for "textual" rules
Evaluator for static expressions and static ranges
Support for float parameters, negative values for integer and float parameters
... and a few other utilities

=============
== V1.4r20 ==
=============

Bug fix and speed improvement in rule Local_Hiding.

=============
== V1.4r18 ==
=============

General:
--------
Interactive mode.

option "-f -" to read Standard_Input in non-interactive mode

New commands: go, clear, quit, set, output, help, inhibit
New rule type: count

Support for attributes, and syntax "all '<attr>"

Rule files no_standard_entity.aru, no_system_entity.aru and no_standard_unit.aru

Small improvements, bug fixes...

New rules:
----------
Declarations
Exception_Propagation
Naming_Convention
Real_Operators
Representation_Clauses
Side_Effect_Parameters
Simplifiable_Expressions
Specification_Objects
Statements
When_Others_Null

Changes to existing rules:
--------------------------
Non_Raising_Non_Reporting_Exception_Handler:
   changed name to Silent_Exceptions

Attributes:
   removed (Attributes are now processed by Entities)

Parameter_Aliasing:
   Support for litteral expressions

Framework:
----------
Added procedure Command + Finalize to all rules.
Packages Framework.Plugs, Framework.Specific_Plugs
New naming scheme for tests
Improvements to the parameter parsing procedures
Changed the processing of strings ("...") in the scanner.

============
== V1.3r2 ==
============

Changed the name from AdaRC to AdaControl to avoid conflicts with RainCode's tool.

============
== V1.3r1 ==
============

First public release (as AdaRC)
