-----------------
| Release notes |
-----------------------------------------
| STOOD 5.0 - May 2005                  |
| (v.5.0.25 for Windows 19.Oct.2004)    |
| (v.5.0.26 for Unix 19.Oct.2004)    	|
| copyright Ellidiss 2004               |
| support:                              |
| - stood@ellidiss.com                  |
| - UK: +44 (0) 1260 291 449            |
| - FR: +33 (0)  298 451 870            |
-----------------------------------------

Main changes since last version (Stood 4.3 - May 2003)

1. New GUI
----------

Except as regards what is described in sections 2 and 3 below, 
the functional scope of Stood 5.0 is similar to Stood 4.3.
However, the Graphical User Interface has been completely reshaped.
The main consequences of this new organization are:
- all the separate windows and editors are now handled by a single main window.
- the main menu bar now group most of the possible user actions.
- the existing STShell commands need to be updated.
- a few light updates may be required for user-customized Stood configurations
- complete upwards compatibility of Stood designs


2. New UML 2.0 Class and Component Diagrams
-------------------------------------------

In addition to the existing HOOD diagram editor, it is now possible to also 
represent a Stood design with the corresponding UML 2.0 diagrams.
The same editor supports either UML Class diagrams or Component Structure diagrams 
depending on the context (most of the time, HOOD modules can be mapped to UML 2.0 
components and HOOD4 classes are obviously mapped to UML classes).

UML diagrams can even be produced for HOOD design and it is possible 
to edit a design in HOOD on the screen and print a documentation with the 
corresponding UML diagrams.


3. Fixed known issues
---------------------

03.003	Extended call trees
Call trees and access graphs have been enhanced to better show dataflows.
A new property "CompleteCrossReference" enables this option.
=> fixed in the kernel and the initialization files (stood.ini, .stoodrc)

03.009	Documentation generation in "read-only"	mode 
It was possible to generate documentation files within the design storage area, 
even when it was tagged read-only.
Now, when the design is read-only, the documentation files are generated in 
the working directory ($WORKDIR) instead of the design directory.
=> fixed in the kernel

03.044	Crash when moving graphical entities in a sketch
Several issues have been fixed in the sketch editor.
=> fixed in the kernel

03.052	Ada reverse engineering: non alphanumeric name for a design
There was a problem to reverse Ada hierarchical libraries. Their file name 
contains minus signs that are not accepted by Stood as a correct SIF file name.
A new property "ReplaceDashBy" enables the recognition of a root which name 
differs from the actual SIF filename.
=> fixed in the kernel and the initialization file (stood.ini, .stoodrc)	

03.055	Need to generate wmf graphics with rtf format under Unix
Unix version used to produce EPSF graphics for RTF output. 
Now, Unix version produces WMF (Windows MetaFile) graphics like Windows version.
=> fixed in kernel

03.071	Uncorrect Ada code generation for enumeration types
Automatic renaming of the enumerated elements for non terminal types was no more 
produced due to a minor change in the specialrequires predicate. 
Now, module name for the enumeration element is no more NIL.	
=> fixed in kernel and Ada code generator (ADA185)
	
03.072	Missing operation code extension in generated Ada files
Due to a change in the Ada code generator (ADA180), 
the operation extension was no more inserted when not associated 
with a specific pragma (generic_op, instance_op or extension). 
Now, the operation extension is added to the operation declaration as is 
even if there is no specific pragma (like before).	
=> fixed in the Ada code generator (ADA186)

03.073	Simplified Required Interface
Project specific request to produce a documentation output with a simplified 
Required Interface section of the ODS. Only required operations are listed. 
A new DataBase procedure has been created (46) to replace the standard one (36).
=> fixed in the kernel (and in private Windows distrib 4.3.10 dated 8 Jul 2003)

03.076	Message Not Understood
If a pragma configuration has been changed in a code extractor, but not saved, 
while a text editor is open, then Stood crashes when changing the current design.
=> fixed in the kernel

03.079	C reverse engineering didn't import enum or struct elements
=> fixed in the crev parser and C reverse engineering rules

03.081	Problem while importing enumeration types from a SIF file
Some enumeration elements were lost during the SIF import process.
=> fixed in the kernel

03.082	Problems with the pseudo code lexical analyser
- bad recognition of expressions like: var[index].field or var[index]->field
- Missed assignment in expressions like: var[index] := value
pattern rules for dot() and assign() have been changed
=> fixed in pseudo-code lexical analyser

03.083	Bad management of overloaded functions while importing a SIF file
When two overloaded operations only differ by their return type, 
the SIF import feature used to create only the last found operation.
=> fixed in the kernel

03.084 Issues with Ada reverse engineering
Various issues have been solved
=> fixed in the Ada reverse engine (REV039..REV060)

03.085	Layout problems with the documentation output in RTF and PDF
These generators used to include empty sections (NONE) into the documentation.
These sections are no more included.
=> fixed in the kernel

03.086	Bad recognition of the [W] flag while analysing pseudo code
When a formal parameter of an operation is declared with the out mode, 
the corresponding [W] flag was not always set for the actual parameters. 
It used to depend on the location of the parameter in the list during the call.
=> fixed in the kernel

03.089	Message Not Understood when loading environment objects
Stood used to crash while loading the interfaces of environments objects 
in some cases. The work-around consisted in v 4.3 in loading the design while 
keeping the Ctrl key pressed to avoid the update of the interfaces
=> fixed in the kernel

03.093	Change of superclass not persistent
When the only change of a HOOD4 class was the list of its superclasses, 
then the change notification didn't work, and the modification was lost while 
saving the design.
=> fixed in the kernel

03.094	Regression during a "copy as exported"
Due to change 03.046, a side effect badly impacted the export feature. 
The "exported" mark was no more applied recursively to the children of 
the exported module. Work-around in v4.3 consisted in putting/removing the 
"exported" mark manually with "Shift+Copy" and "Shift+Replace".	
=> fixed in the kernel

03.095	Fixed size font not managed in RTF documents
CODE sections were not properly managed by the RTF document generator. 
The "par" macro used to be always used.	
=> fixed in the kernel

03.096	Type generation in Ada
Improvement of the modification ADA185 for renaming enumeration elements 
and reordering types in a package specification.
=> fixed in the Ada code generator (ADA187)

04.001	Loss of some manual changes after "update symbol tables"
=> fixed in the kernel

04.002	Special characters removed from input of lexical analysers
In order to be able to process these characters if required (CAVEAT),
an additional parameter now gives a direct access to the original source file.
=> fixed in the kernel and lexical analysers if needed

04.004	No keyboard shortcuts ctrl-C and ctrl-V on Linux
=> fixed in the kernel

04.005	Dupplicated information in the DataBase checker output
Files predicates related to the main target language were listed twice.
=> fixed in the kernel

04.007	Various problems in the C code generator
=> fixed in the C code generator (C100..C109)

04.008	Symbols starting wirth an underscore character
Such symbols were not recognized by the cross-references editor.
A new property "EnableFirstUnderscore" has been added to enable this recognition 
as an option. Note that the lexical analysers must follow the same rule.
=> fixed in the kernel, the initialization files and lexical analysers if needed

04.009	Code round trip on read-only designs	
It was possible to update a design from the modified generated code even when the 
design was in "read-only".
=> fixed in the kernel

04.010	Pseudo code symbols don't carry their prefix (component name)
This is the normal behaviour for C users. To enable an Ada like behaviour, 
a new property "KeepPseudoPrefix" has been added.
=> fixed in the kernel and the initialization files

04.011	Checkout and checkin on non terminal components, 
It could be useful to get the list of subcomponents to be processed, 
instead of running recursive calls as it was done previously.
New properties "CheckOutWithArgFile" and "CheckInWithArgFile" enables this 
alternate behaviour. In that case, an additional parameter giving the pathname
of a file containing the list of children is passed to the scripts.
=> fixed in the kernel, the initialization files and internal tools

04.012	Empty lists are not well processed by docbook output
The EmptyList config file should be used like the MissingFile one
=> fixed in the kernel

04.014	Need to enable a checkout action even when the design or component is locked
=> fixed in the kernel

04.015	Need to enable code generation when a design is partially locked
=> fixed in the kernel

04.024	Various issues with the C code generator
=> fixed in the C code generator


4. Changes in Ada code generator
--------------------------------

ADA186 (02.07.03) fix pb missing operation code extension (cf.RASTO/03.072)
ADA187 (30.10.03) improvement of ADA185 and fixing pb ordering prov types (cf.RASTO/03.096)
ADA188 (04.10.04) avoiding package body when only abstract or inherited operations
ADA189 (07.01.05) add some missing preconditions in automatas


5. Changes in Ada reverse engine
--------------------------------

REV039 (18.02.04) adding INTEGRITY as an HRT keyword
REV040 (20.07.04) replace dashes in root names
REV041 (01.09.04) managing abstract classes (cf.RASTO_03_084)
REV042 (01.09.04) avoid overloading due to case mismatch in parameters
REV043 (08.09.04) managing adarev bug for abstract new types
REV044 (29.10.04) managing NONE OPCS
REV045 (29.11.04) fixing SIF syntax error when several abstract tagged in same package
REV046 (23.12.04) fixing a bug when filename or string was less than 4 chars long
REV047 (23.12.04) task and protected objects
REV048 (25.01.05) better management of Ada child units
REV049 (28.01.05) fixing bugs in subprogram units
REV050 (14.02.05) fixing bugs in subprogram management (also a change in adarev)
REV051 (17.02.05) adding package initialization blocks (also a change in adarev)
REV052 (17.02.05) managing encapsulated packages as children
REV053 (17.02.05) managing large declarations for constants
REV054 (17.02.05) managing instance of subprograms
REV055 (17.02.05) adding pragma no_end_op
REV056 (22.02.05) fixing remaining bugs with 050, 051, 054
REV057 (23.02.05) fixing case sensitivity pb with 048
REV058 (28.02.05) distinguishing prov and int instanciated ops (also change in adarev)
REV059 (28.02.05) adding a discriminant parameter in genericAssociation (also change in adarev)
REV060 (28.02.05) fixing bad location for _body package


6. Changes in C code generator
------------------------------

C100 (19.03.04)	ref. RASTO/04.007 : removing default values for function parameters
C101 (19.03.04) ref. RASTO/04.007 : only the first enum element could have a value
C102 (19.03.04) ref. RASTO/04.007 : avoiding reverse tags for the main arg list
C103 (19.03.04) ref. RASTO/04.007 : removing extern keyword when constant def is empty
C104 (19.03.04) ref. RASTO/04.007 : fixing a bug to accept pragma pointer for in out params
C105 (19.03.04) ref. RASTO/04.007 : adding static keyword to generated OPCS functions
C106 (19.03.04) ref. RASTO/04.007 : adding reversor management to protocol automata
C107 (25.03.04) ref. RASTO/04.007 : avoiding .h generation for body only option
C108 (29.03.04) ref. RASTO/04.007 : formatting reverse tags for constrained op declaration
C109 (30.03.04) ref. RASTO/04.007 : fixing a bug with joint pragmas not_ANSI and storage
C110 (17.09.04) fixing pb with pragma no_define
C111 (24.09.04) fixing pb with pragma lice (missing op_code for OBCS)
C112 (04.10.04) always generate a default type when TypeDef is empty
C113 (04.10.04) add #include for attributes when TypeDef is empty
C114 (24.11.04) ref. RASTO/04.024 : put static outside reverse tags for internal operations
C115 (24.11.04) ref. RASTO/04.024 : remove additional blanks in comments when not microsat
C116 (24.11.04) ref. RASTO/04.024 : all in params are now const (only in pointers for microsat)
C117 (01.02.05) ref. RASTO/04.024 : avoid additional blank lines when reversing comments twice


7. Changes in C reverse engine
------------------------------

REVC008 (18.02.04) adding INTEGRITY as an HRT keyword
REVC009 (19.05.04) type enum, attribute and prefix
REVC010 (20.07.04) fixing SIF syntax error with array attributes types
REVC011 (20.07.04) getting more comments for OPCS


8. Changes in C++ code generator
--------------------------------

CPP025 (26.04.05) default class generation
CPP026 (26.04.05) remove non terms from makefile target
CPP027 (26.04.05) fixing a bug in attributes dependencies
CPP028 (26.04.05) changes in makefile + pragma ldflags
