                 RELEASE NOTES FOR THE ESTEREL V5_92 SYSTEM
                 ==========================================

CHANGES FROM v5_91
------------------

Version v5_92 is a minor release. It corrects a bug in the linker
(iclc) which could provoke a bad binding of pre variables in some
cases, it corrects a bug in xes about some coloring of sustain
statements, and it brings some more improvements elsewhere.
The compiler now prints less parentheses in the generated C
code (unfortunately, the Microsoft C compiler has a very low limit in
the number of nested parentheses). 

The wristwatch example has been enhanced and a client/server
simulation that runs the actual watch in real-time with animated
source code is available, see wristwatch/README.txt.

The documentation is still labeled v5_91 since the language and system 
commands are unchanged.

Please replace v5_91 by v5_92.

CHANGES FROM v5_21
------------------

The changes between the previous v5_21 release and the new v5_92 release
are:

* new Esterel pre operator
--------------------------

    The pre operator has been introduced in the Esterel
    language for signals and values . Its syntax is as follows:
    
    pre(SIGNAL)  : previous status of signal SIGNAL. Example:

                   every [not(pre(I)) and I] do
                      emit I_POSITIVE_EDGE
                   end every
 
                   This program emits I_POSITIVE_EDGE each time I is 
                   present and was not present at the previous instant.

    pre(?SIGNAL) : previous value of the valued signal SIGNAL. 
                   Now, it is possible to write:
                   
                   input I;
                   output I_COUNT := 0 : integer;

                   every I do
                      emit I_COUNT(pre(?I_COUNT) + 1)
                   end 

                   This program emits I_COUNT, which is the number of
                   occurrence of signal I.
                   
                   Note: at the first instant, pre(?SIGNAL) is undefined,
                   unless SIGNAL has an initial value, as it is the case
                   for I_COUNT in the example. If there is an initial 
                   value v, then pre(?SIGNAL) = v.

* Xeve
------

   The X Esterel Verification Tool (xeve) is now part of the Esterel
   standard distribution. Xeve's user manual is located in the file
   xeve.ps.gz in directory doc.

   Xeve is a graphical interface environment for the (symbolic) analysis
   and verification of Esterel programs modeled as Finite State Machines (FSM).
   Xeve takes as input a circuit in blif as generated by the esterel
   compiler. For a Pure Esterel program, use the command
  
      esterel -Lblif foo.strl

   For a program with values, extract the control for Xeve by the
   command

      esterel -Lblif:-soft foo.strl

   Then, value handling is abstracted away. See the Esterel Manual for 
   details.

   Xeve's main features are: 

   1- FSM model construction from a blif netlist
   2- Output emission status checking. One can check whether an output 
      can be emitted or not. This is mostly used to check safety
      properties expressed by observers. For pure programs, diagnostic 
      paths generated from model-checking are loadable in the tape 
      reader of the Esterel graphical simulator Xes. This will be made 
      possible for valued programs in a later release.

   3- FSM minimization with respect to the bisimulation equivalence. 
      The minimized FSM is saved in a textual format called fc2. On
      Unix systems, one can graphically explore an FSM described in
      fc2  using the Autograph tool available at
      http://www.inria.fr/meije/verification/downloads.html.

   Xeve's GUI is implemented in Tcl/Tk. FSMs are represented symbolically with
   BDDs, using the TiGeR system data structures and libraries. The BDD
   verification algorithms work are based on work of Madre, Coudert,
   and Touati. See the Tiger License in the COPYRIGHT.txt file.

  
* Xes recorder
--------------

   The xes' event recorder/player is redesigned. Now, the default is to
   record every event sent by the user, or played back by the player.
   Events are recorded into a buffer and will be saved in a file 
   (default name "untitled") only on user request. The recorder is readily 
   available by a button on the mail control panel. File extension is
   .esi, for Esterel Simulation File, but previous .csimul extension 
   is still supported.

* Explicit automaton generation
-------------------------------

   The v5_92 system uses a new compiler module called scoc to generate 
   an explicit automaton directly from SC code. Scoc exploits the full 
   constructive semantics analysis. It has been written by Yannis Bres, 
   a PhD student at CMA.

   To obtain an explicit automaton, use the following commands:

      - standard C code
        esterel -A foo.strl

      - C code for simulation
        esterel -A -simul foo.strl

      - from OC code
        esterel -oc foo.strl
        esterel -A foo.oc

   The v3 compilation chain (option -v3 of the Esterel compiler) using
   lcoc and the v4 compilation chain using sscoc are suppressed.
   the -S option for single state automaton is also suppressed.

* Intermediate formats
----------------------
   
   The IC format has changed. Previous versions are no more supported.

* Csimul format
---------------

   Trap traces are changed. Message header is now:

   --- Trap: 
   instead of:
   --- Exception: 

   Example:
   --- Trap: T

   The trace commands are now:

   - to trace specifically traps:
     ! trace traps

   - to remove traps traces:
     ! untrace traps


COPYRIGHT

You must read the COPYRIGHT file before using Esterel v5. Please make
sure that you understand the copyright and license information before
using this release.


NOTES

On Solaris architecture, do not compile a tty-simulation program
(libcsimul.a) with /usr/ucb/cc. Use instead SparcWorks cc, or gcc.The
reason is that csimul uses setjmp, and the headers of /usr/ucb/cc are
incompatible with those of the other compilers.


MAIL ADDRESSES

Remember our mail addresses:
  esterel-request@sophia.inria.fr : direct Esterel team access.

  esterel-users@sophia.inria.fr   : users forum.

  esterel-bugs@sophia.inria.fr    : as it says.
