CHANGES OF VERSION 11.3
=======================

The script Progres hat got a new possible parameter "-g fileName".
This is the same as "-f" excect for calling the command 
"InsertBackup" at the end.

The command "InsertBackup" is the opposite of "WriteBackup". A new 
specification is assembled by comment tags attached to the package
or section names.

The scheme view is again available. Now packages are shown hiddenly. A
seperate open command shows the content of the package in an own
presentation.

The command "WriteBackup" saves the specifiation automatically in $IPSENBACKUP.
Packages or sections which names are marked with a comment tag are saved in a
subdirectory.

The script Progres hat got a new possible parameter "-f fileName".

Now a super constructor is introduced. It's form is super:ClassName.[MethodCall|Attribute].

The wrapper for the methods was changed. The associated function is returned by GRAS. It's not necessary to store the addresses in the wrapper.

CHANGES OF VERSION 11.2
=======================

The commands GenerateRef and UpdateRef are replaced by the new command
UpdateRef. UpdateRef is valid for the package increment and updates the
imports for the whole package. If you have imported or specialized a package
the references are created automatically by using a declaration.

There are new commands HideRefs, HideComments and ShowParList.

By opening the Overview-Presentation first you can see the packages. It's possible 
to hide in the declarations step by step. You can write a backup from the Overview-
Presentation.

Hided comments have got a new representation: (* ... *) instead [* ... *].

Some short names for commands are changed.

The scheme view isn't any longer available.

The GuidedTour is available for this version.

Some minor bugs (assignment of 'nil' to a variable in the declaration list of a
FORALL-statement, correct displaying of nested warnings, marking partielly defined
expressions in Choose-Expr-Lists of type 'BOOLEAN',...)

CHANGES OF VERSION 11.1
=======================

The module concept was changed because the older versions don't work correctly.
Now a specialized module doesn't inherit automatically the declarations.
They have to import explicitly.

CHANGES OF VERSION 11.0
=======================

This is the first object oriented Progres. Node classes 
and node types contain methods which can be redefined, too.

In the course of it transactions and productions are 
summarized to transformations, querys and tests to querys.

Short names ofmany commands are changed:
The new syntax of short names
^s    = CTRL s
^Ms   = ALT s
^xs   = CTRL x s
^x^s  = CTRL x CTRL s
^^Ms  = CTRL ALT s

^4    = arrow left
4    = SHIFT arrow left ("" means "SHIFT": I had no better idea. The sign has to be short and unique)

The function-keys appear no longer in the command table. Even though some keys are occupied
by a command:
F1 = SearchForward (^s)
F2 = SearchNext
F3 = FirstError
F4 = NextError
F5 = FirstAppl
F6 = NextAppl
F7 = GotoDecl
F8 = SetMark
F9 = Show/Hide
F10 = ShowPlaceholder
F11 = HidePlaceholder
F12 = ShowAll
SHIFT-F1 = SearchBackward
SHIFT-F2 = SearchPrevious
SHIFT-F4 = PreviousError
SHIFT-F6 = PreviousAppl
SHIFT-F7 = DeclByName
SHIFT-F8 = Swap

The keys L1-L10(Stop, Again, Props,...) of the SUNS aren't used any longer.
They are replaced by commands similuar to the MICRO-Emacs-Commands.
Look at the differences between the cmd.tab of VERSION 10.3 and VERSION 2003.

Overview-VIEW
It's now possible to open a secord view for a specification. This view shows all 
declarations (NodeClassDecl, Transactions, ...) of the specification (Command Overview;
group Display; short name ^xf). 
If you click with the right mouse button an increment in the Overview-VIEW, the current
presentation changes and the corresponding increment in the normal view is now the new 
actual increment. If the Overview-View isn't the actual view you have to click twice.

Scrolling
The default by scrolling is now line-by-line.

Some minor bugs are removed, too.


CHANGES OF VERSION 10.3
=======================

The procedures to manage attribute in the PGC-Interface
receive a new boolean parameter 'isMeta'. So it's
superfluous to ask the scheme in the database if it is
a normal attribute or a Meta-Attribute. The code generator
knows if it is a Meta-Attribute and generates the 
corresponding value. 
This is more efficient.

It's now allowed to switch off the logging of the choice graph.
Undo/redo and aborting transactions for the choice graph
are not possible. Some applications need no logging and so
they can save disc space.

It's now possible to get the single events (e.g. CreateNode, 
DeleteEdge ...) by executing an Undo/Redo instead the global event
'GraphModification'.

The command 'DeclByName' gets a new (and hopefully better) implementation.


CHANGES OF VERSION 10.2
=======================

The size of nodes in the database RGRAS is now
4 bytes instead 2 bytes.
So it's possible to work with greater graphs.


CHANGES OF VERSION 10.1
=======================

- This is the first version with packages in
  Progres. 


CHANGES OF VERSION 9.2
======================

- Graph scheme view is UML-like now

- "ord" and "char" are implemented

- In a production's left hand side only node matches of
  element valued, obligatory nodes could be seen. Now the
  matches of set valued nodes and optional nodes can also
  be seen in the "Interpreter View"-window.

- ...and many many bugfixes...


CHANGES OF VERSION 9.4
======================

PROGRES has got a new instruction: strpos. strpos takes two 
string parameters, and gives the position of the first
string in the second string as result. If the result is 0
then the first string is not contained in the second one.

Otherwise there are quite some bugfixes in that version.

CHANGES OF VERSION 9.0
======================

The PROGRES environment version 9.0 is no longer implemented in
Modula-2, but in Modula-3. This has the consequence that we do
no longer rely on the commercial Sun EPC Modula-2 compiler, but
the public domain Modula-3 compiler from DEC. The Modula-3
compiler runs on a huge number of different platforms and
porting its programs from one platform to another one is not
a big problem, as it was in the case of Modula-2.

Beside the externally (hopefully) invisible port from Modula-2
to Modula-3 we have made the following changes:

- PROGRES is now available on Sun and LINUX platforms.
  First experiments with PROGRES on a PC with an AMD K6
  processor and 64 MB main memory showed that the interpreter
  is about twice as fast as on a Sun Ultra with 64 MB main
  memory.

- The shortcuts (key bindings) for various commands of the
  syntax-directed editor and the micro-emacs text editor
  do no longer use the terminology of very, very old Sun
  keyboards. Furthermore, some key bindings have been
  changed such that it possible to work with PC keyboards.

- The old graph browsers EDGE and tkbrowse are no longer part
  of the environment.

- The new graph browser ffgraphs (based on a generic graph
  browser implementation of the University of Passau - see
  README) is now an official and documented part of the release.

- The layout algorithm package hglayout from the University
  of Toronto, which is still used for the layout of graph schemas,
  is not available on LINUX. It will be replaced soon by our
  own implementation of a constraint-based graph layout algorithm.

- The constraint-based graph layout algorithm Combiyama
  (Constraints + Sugiyama) is already part of the PROGRES
  environment, but still under development.

- The PROGRES interpreter version 9.0 about 50% faster than the
  previous version.

- The compiled PROGRES code of version 9.0 is about twice as
  fast as the code of the previous version.

- A significant number of storage leaks are no longer existent.

- The size of the stored backtracking information in directory
  $TMPGRAS has been reduced significantly. This is especially
  true if deterministic productions and transactions (with
  qualifier [0:1] or [1:1] as well with parallel execution
  qualifier * or +) are used.

- The graphical editor prototyping framework is no longer
  realized on top of tklayout from TU Berlin, but on top of the
  graph layout package ffgraphs from the University of Passau
  (and Tk/Tcl).

- The PROGRES environment as well as generated prototypes support
  writing/reading graphs to/from text files.

- Compiled PROGRES transactions, productions, etc. may be called
  from Tcl-scripts.

- Layout operations of graphical PROGRES editors (like moving a node)
  with the mouse provide immediate feedback as long as the mouse
  button is pressed and the command is still active.

- New editing commands allow changing of the optional/obligate
  and the single/set property of nodes on the left- and right-
  hand sides of productions.

- The realization of integrity constraints has been improved.
  A number of bugs are eliminated and local node class or type
  constraint have repair actions, too.

- Lots of bug fixes have been made. It is no longer dangerous to use
  type cardinalities [0:1] and [1:n]. Furthermore, the handling of
  materialized (static) paths and derived attributes with complex
  definitions is much more reliable.

- We are no longer aware of any incremental recompilation bugs
  i.e. it should no longer be necessary to kill the intermediate
  graph rewriting code representation of a specification after
  complex editing operations (which is used for interpretation and
  C code generation purposes).

- The PROGRES language documentation has been improved. A complete
  language manual of about 50 pages is available in directory
  $PROGRESROOT/man as a ps-file and as a framemaker hypertext document.


CHANGES OF VERSION 8.0
======================

- New PROGRES constructs have been added like integrity
  constraints or a Prolog-like Cut for controlling 
  backtracking (cf. CONVERT-TO-NEW-VERSION).

- Size of backtracking information (stored in so-called
  choice graphs has been reduced considerably).

- New, but still undocumented graph browser and user
  interface for prototypes has been added.

- Imported types of dynamically determined size (like
  delivered text buffers) are now available.

- A couple of new examples of specifications have been 
  added.

- The size of processable specifications (which may
  be read from file, etc.) has been increased.

- Optional attributes, local variables, and formal
  parameters are now fully supported. They have either
  a single value or the value "nil" and their decls.
  are qualified with [0:1].

- Many other bug fixes ...


CHANGES OF VERSION 7.1
======================

- New case studies (examples of specifications) in
  subdirectory data/specs!

- Graphical (schema) editor supports rotate of edge loops 
  and attribute declarations around class/type boxes.

- Graphical (schema) editor has NEW LAYOUT ALGORITHM
  Combiyama = Sugiyama + Layout Constraints:

  * Layout constraints determine vertical layout of
    graph and influence horizontal layout.

  * Remaining degrees of freedom (in horizontal direction)
    are resolved by Sugiyama like layout algorithm.

- Saving and resuming interpreter sessions is now working.

- Prototypes are now able to display set attributes as
  well as imported type attributes.

- Incremental recompilation of graph schema initialization
  is now reliable.

- Underlying database system supports now the creation of
  about 200 pages long specifications.

- Many bug fixes in backtracking mechanisms.

- The operators "string" and "value" for converting values
  to string representation and vice versa work now for
  all possible types.

- And many other bug fixes ... .


CHANGES OF VERSION 7.0
======================

- Release is now available for Solaris 2 and SunOs 4.1.3 
  on Sun workstations!

- The implementation language for implemented types and 
  functions is now C. A standard example in the release
  demonstrates how these types and functions may be used
  to realize file input/output, long text buffers, etc.

- User interface of generated prototypes is modified (better
  support for definition of views and binding mouse selections
  to input parameters, interactive definition of new menues,
  hiding of command groups, renaming commands, ... ).

- Generated prototypes support multi-user access to graphs.

- Pseudoparallel execution of productions is supported: a
  production may be applied to all occurrences of its left-
  hand side in a graph in parallel if and only if left-hand
  sides overlap in unmodified parts only. Otherwise, the
  effect of the parallel application of a production is
  unpredictable. For this purpose, productions have an
  additional flag with values "*" and "+". The difference
  between both flags is that a "+" production fails if
  there is not a single match in the host graph, but a
  "*" production returns successfully without modifiying
  the host graph.
  
- New commands in the DISPLAY command group:
   - 'HideBodies' hides each visible section body
     within the current specification.
   - 'HideDecls' hides each visible declaration body 
     within the current section.
   - 'OpenWindow' creates a new presentation of the currently
     selected (sub-) graph. This new presentation has the same
     underlying representation structure as its master presen-
     tation. Therefore, both presentation have the same current
     increment etc.

- Underlying GRAS database system should be (considerably)
  faster.


CHANGES OF VERSION 6.7
======================

- NICOLAY = New Incremental COnstraint-based LAYout algorithm
  is now part of the PROGRES environment. It is used within the
  graphical scheme editor of PROGRES and will be used in future
  versions of graph browsers (see new command group CONSTRAINT
  and man/GUIDED_TOUR.tex.

- tk/tcl-based browser offers now the functionality to save
  selected parts of a graph as a more or less readable text file
  (cf. browser/README-TK.TCL).

- Node types and node classes play now about the same role, i.e.
  node types may have attributes and may be used within declarations
  of edge types, attributes, variables, etc. There are still two
  exceptions from the general rule that node types may be used
  wherever node classes where allowed until now:

  * Declaration of node type: a node type is still an instance
    of a single class, i.e. node types form the leafs of the
    graph scheme inheritance hierarchy.

  * Declaration of node type parameters: the type of a node type
    parameter (or variable) is still required to be a node class.

  See man/PROGRES_SYNTAX and man/PROGRES_Nachtrag.ps as well as
  man/ProgresForBeginners.ps for more information about PROGRES 
  version 6.7 and its syntax.

- Parametric Polymorphism: the type of node type parameter may
  now be another formal parameter within the same parameter list.
  Useful examples for true parametric polymorphism are presented
  in man/ProgresForBeginners.

- Autosave Feature: the frequency of autosaving open specifications
  as text files has been reduced dramatically. Please choose a
  suitable frequency on your own (cf. man/GUIDED_TOUR.tex).

- Now stable C and tk/tcl-based generation of prototypes with
  documentation in man/GUIDED_PROTOTYPING.tex.

- The usual number of bug fixes ...


