Maria NEWS -- history of user-visible changes.  20th June 2003
Copyright © 2002,2003 Marko Mäkelä
See the end for copying conditions.

* Maria 1.3.4 is a maintenance release with bug fixes
mainly for modular state space exploration

** New features

*** The C code generator supports modular nets.

*** The graphical browser (maria-vis) supports multiple modular state spaces.

** Bug fixes

*** Clearing the common subexpression cache caused problems with modular nets.
It is not cleared any more.

*** The root node of B-trees was split incorrectly when USE_MMAP is disabled.

*** The lexical order of marking expressions was not total.  Now it should be.

*** "reject" states will not be expanded by default.
In graph-based analysis, the "succ" command will still expand them.

*** If an error occurs in a prioritised transition, transitions with other
priority levels will not be explored.  In other words, the faulty transition
instance is treated as if it were enabled, although it does not generate any
successor state.

*** LSTS output is now disabled for modular state spaces.

*** Modular nets are implicitly flattened in the following circumstances:
**** non-modular state space exploration
**** unfolding
**** pretty-printing ("dump" command)

*** In modular nets, the synchronisation transition can now have input
and output arcs and define functions.  Thanks to Charles Lakos for
contributing an elegant patch.

*** Transitions in modules can now synchronise on multiple labels.

*** Graph files can now be reopened also when memory-mapped I/O is not used.
In other words, the -g option now works on Win32.

* Maria 1.3.3 is a maintenance release mainly with improved portability.

** Bug fixes

*** Possible memory leak in the computation of strongly connected components

** New targets
*** Debian GNU/Linux on Digital Alpha
*** Debian GNU/Linux on HP-PA
*** IBM AIX 4.3.2 with gcc 3.2.1 (use Makefile.BSD)

* Maria 1.3.2 is a maintenance release mainly with Win32 improvements.

** New features

*** The [VISUAL] DUMPGRAPH command exports the reachability graph.

** Bug fixes

*** The -Y option fix in Maria 1.3.1 introduced another bug.  It is now fixed.

** Win32 inter-process communication bug work-arounds

*** lbt 1.2.1 is built-in when the compile-time option BUILTIN_LTL is enabled.

*** The "visual" commands write the graphs to a file "maria-vis.out".

* Maria 1.3.1 is a maintenance release mainly with bug fixes and optimisations.

** Optimisations

*** The generated of the C code was slightly optimised.

*** Multi-set operations (SetExpression) are simplified and canonised.

** New targets
*** HP-UX 11.22 with aCC: HP ANSI C++/C B3910B A.05.36 [May 20 2002]
*** FreeBSD, NetBSD, OpenBSD with gcc 2.95 (Makefile.BSD)

** Bug fixes

*** Modular analysis did not really work.  Now the supplied "modular.pn" works.

*** Comparisons "A subset B" with A==empty did not always work.

*** Multi-set operations can now be used on input arcs.

*** The -Y option now produces correct arc labels for reachability graphs.

*** Memory leaks in transition fusion code were eliminated.

* Maria 1.3

** New features

*** Automatic interruption at too many errors (-t, --tolerance=NUMBER)

*** Modular analysis (-R, --modular) of nested SUBNETs reduces state spaces.
The synchronisation labels for transitions are indicated with
transition fusion.  Each transition participating in a synchronisation
must "call" the "label" transition in its parent net.

** Bug fixes

*** "deadlock true" in an empty net (broken in version 1.1) works again

* Maria 1.2

** New features

*** Added options for transition declarations

**** Constantly disabled transition instances belonging to an ENABLED
set are reported at the end of each state space exploration run.  The
enabledness sets are defined in an analogous way to fairness sets.

**** The HIDE keyword controls the omission of hidden states (-Y).
States that are reached via a hidden transition instance are omitted
from the state space, but safety properties are checked also in such
states.  With some knowledge in the application, this reduction easily
outperforms path compression (-Z).

**** Prioritised transitions can share priority classes

**** Transition fusion eases the modular construction of models

*** Rewritten interfaces for generating state spaces
**** All reductions can also be applied to reachability graphs,
and with some caution to general LTL model checking.
**** The executable has become smaller.

** Bug fixes
*** Transitions accept "fatal" and "undefined" in gate expressions
*** Multi-set quantification conditions are now allocated properly

* Maria 1.1

** New features

*** Improved checker for safety properties
**** Properties can be input as finite automata (translated from LTL).
**** Counterexample traces are generated from the initial state to the error.
**** Lossless storage of the reachable state set (option -L) avoids omissions.
**** Path compression reduction (option -Z) minimises the memory usage.
**** Works on multi-processor computers (-j) and TCP/IP networks (-k).

*** Statistics for encoded state vector sizes are maintained and reported.

*** The multiplicity mapping operation for multi-sets was made more generic.

** Bug fixes
*** C code generation
**** The generated code was made compatible with the IRIX and Darwin.
**** The translation errors for multi-set mappings were corrected.
*** The n-ary selection operator ?: now handles multi-sets.

** The following targets have been successfully tested:
*** Apple Darwin 5.3 (Mac OS X 10.1)
*** Digital UNIX 4.0F (cxx V6.3-010)
*** GNU/Linux on IA-32 (GCC 2.95.4 and GCC 3.0.4)
*** SGI IRIX 6.5
**** GCC (32-bit)
**** native CC -n32 or CC -64
*** SunOS 5.x (Solaris)
**** GCC (32-bit)
**** Sun WorkShop 6 update 2 C 5.3 2001/05/15 for sparcv9 (64-bit)
*** Win32 (GCC 2.95.2 for mingw or Cygwin)

* Maria 1.0.1 is a maintenance release mainly with bug fixes and optimisations.

** Additions to the query language
*** The PRED! and SUCC! commands list all predecessors or successors of a state
until a branch is found, making it easier to follow deterministic behaviour.
*** Anonymous transitions can be fired in the reachability graph.

** Bug fixes
*** States may now have more than 65535 successors.
*** Some bugs in the liveness property checker were fixed.
*** Functions can take multi-sets as parameters.

** New targets
*** The Sun compiler is now supported.
*** Preliminary support for SGI IRIX was added.

** Optimisations
*** The computation of strongly connected components was optimised.
*** The liveness property checker was slightly optimised.

* Maria 1.0 was the first official release.


----------------------------------------------------------------------
Copyright information:

Copyright © 2002,2003 Marko Mäkelä

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.

Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
end:
