Changes since GLADE 5.03a
=========================

New Functionnalities
--------------------

*   GNATDIST is now fully project-aware that is -P and -X flags are
    properly handled.

Integration
===========

*   GNATDIST can be configured for either GLADE or PolyORB (use
    --with-pcs configure flag).


Changes since GLADE 5.02a
=========================

Bug fixes
---------

*   GLADE is fully ported on GNAT-5.02a (abortion of synchronous
    remote subprogram invocation is still not working because of GNAT5
    limitations).


Changes since GLADE 3.16a
=========================

Restrictions
------------

*   Abortion of synchronous remote subprogram invocation is not
    supported in zero-cost exception context because of current GNAT5
    limitations.

New Functionnalities
--------------------

*   These are user-transparent functionalities. They have been
    introduced to use PolyORB as PCS instead of GARLIC.

Bug fixes
---------

*   When a pure client partition was dying during a RPC, the server
    was unable to terminate because it was trying forever to send the
    result of the RPC.


Changes since GLADE 3.15a
=========================

New Functionnalities
--------------------

*   GLADE used to propagate the client priority to the server during a
    RPC. The server was executing the RPC at this priority level. It
    provides now two priority policies like RT-CORBA :
    Client_Propagated which corresponds to the previous policy and
    Server_Propagated which executes the RPC request to a given
    priority. This priority is set by the partition attribute
    Priority. Implement the proposals from "Towards a Real-Time
    Distributed Systems Annex in Ada", J. Gutierrez, M. Gonzales
    Harbour, IRTAW'2000.

Bug fixes
---------

*   Fix several bugs in the DSM storage implementation


Changes since GLADE 3.14a
=========================

New Functionnalities
--------------------

*   The pragma Remote_Shell allows to decide which remote shell to use
    when the main partition launches the other partitions.

Bug fixes
---------

*   The lightweight PCS was incorrectly activated when RACW were
    configured on a partition.

*   Some problems were raised by the first implementation of the
    passive partitions. There are fixed now. One of them was to
    incorrectly allow a DSM data storage to be configured for a
    passive partition when it is supposed to executed Li and Hudak's
    algorithm. This release provides few new examples on shared
    passive packages use and storage data configuration.


Changes since GLADE 3.13a
=========================

New Functionnalities
--------------------

*   GLADE run-time is now implemented on the top of GNAT.Sockets.

*   GLADE run-time does not drag tasking when not necessary. If a
    partition does not include any RCI or RT unit, then the partition
    is said to be a pure client partition. If a pure client partition
    does not drag tasking because of its user code, then the tasking
    will not be drag by the PCS.

*   The multi data storages feature is now available. It is now
    possible to define several data storage supports for shared
    passive units. Therefore, in the future, the file storage support
    will not be the only support available. Note that to do so, some
    configuration parameters have been changed. Boot_Server is now
    obsolete and replaced with Boot_Location. Storage_Dir is now
    obsolete and replaced with Directory in order not to be confused
    with the directory used by a file storage support. 

*   Passive partitions are now supported. It is now possible to define
    partitions on storage node and not only on processing nodes.

*   It is now possible to specify the default optimization level used
    by GNATDIST when no -O or -g flag is used on its command line at
    configure time. By default, no optimization at all is being done,
    as with GNAT.

Bug Fixes
---------

*   A race condition in the stream storage pool has been fixed.

Changes since GLADE 3.12a
=========================

New Functionnalities
--------------------

*   The multi-protocols feature is now fully supported. It is now
    possible for a partition to communicate with other partitions
    using different protocol names or different protocol data.

*   Partition_ID is now unlimited (it was bounded to 64 in the previous
    versions). Partition ids of pure client partitions are now recycled.

*   Now gnatdist under NT requires only standard Windows tool. It does not 
    requires anymore to have around some UNIX like tools (cp, mkdir...).

Bug Fixes
---------

*   Boot mirror group communication has been improved (less messages and
    better performance).

*   Fix several memory leaks. All terminated tasks are now recycled
    for later use instead of being deallocated.

*   Remove potential deadlocks.

*   Fix incorrect deletions in gnatdist (remove obj and ali files of rci
    unit in partition directory when it is no longer configured on the
    partition).

Changes since GLADE 3.11b
=========================

New Functionnalities
--------------------

*   Shared_Passive packages can now be used.

*   General performance improvements.

*   The Windows NT version now uses the registry.

*   GLADE can be used from non-standard location by setting the
    GLADE_LIBRARY_DIR appropriately.

*   Tracing Facilities of what is going on inside GLADE during a
    distributed execution.

*   Add fault-tolerance features. The main partition is no longer a
    single point of failure. See Examples/Reconnection.

*   It is now possible to configure the number of tasks executing
    incoming remote procedure calls on a partition.

Bug Fixes
---------

*   Fix a bug in partition death/revival that caused other partitions
    to fail in some cases.

*   E.4 (18) is now correctly implemented.

Changes since GLADE 1.03
========================

New Ports
---------

*   GLADE has been ported on SGI and Windows NT. It is now also working
    when the GNAT run-time is using FSU threads.

New Functionnalities
--------------------

  * Full heterogeneous support
    In GLADE 1.03, heterogeneous support was only available for 32
    bits machines or for 64 bits machines only. Now, it is possible to 
    mix 32 and 64-bits machines in the same GLADE application.

  * RACW in Remote_Types
    It is now possible to declare remote access to class-wide types in 
    Remote_Types packages (this was already possible in
    Remote_Call_Interface packages). This makes it possible to have a
    reference to a remote object stored in another remote object and
    to create complex data structures involving several partitions at
    the same time.

  * Generic RCI packages
    GLADE now supports generic RCI packages. The pragma
    Remote_Call_Interface must be applied on both the generic package
    and the instantiation.

  * Pragma All_Calls_Remote
    GLADE now supports pragma All_Calls_Remote.

  * New stubs compilation model
    GNAT does not generate plain Ada stubs anymore but generates
    object file directly instead. GNATDIST takes advantages from this
    and compilation times are reduced by an important factor for
    distributed programs that contain a lot of RCI packages.

  * Building some partitions only
    GNATDIST now allows to build partitions with an incomplete set of
    sources. It is now no longer required to provide the body of a RCI 
    unit when we would only need the RCI spec.

  * Parallel compilation
    GNATDIST now partially supports the -jN flag, where N is the
    maximum number of processes to launch at the same time (the
    default being one). This support is not yet complete and is used
    only by the build of the non-distributed application.

  * Streams pool
    The internal mechanism to allocate streams has been enhanced to
    prevent stack blowups for large data. Dynamic allocation of small
    streams is avoided using pre-allocated chunks of memory through
    Ada95 storage pools.

  * Reconnection policy
    It is now possible to restart a partition once it has crashed.  To
    do this use partition reconnection attribute. Three policies are
    available. The defaut is Rejected_On_Restart which prevents any
    restart of a partition. When a client reconnection policy is set
    to Failed_Until_Restart, the client will raise Communication_Error 
    on any attempt to connect to the server partition until this
    partition has been restarted. Any attempt to connect to the server 
    partition will block the client until the partition has been
    restarted when reconnection policy is set to Blocked_Until_Restart.

  * Filters interface change
    The filtering interface uses access types rather than arrays to
    avoid blowing-up the stack when using large data. 

  * New default flags
    When no optimization level (-O flag) and no debugging information (-g)
    are selected, gnatdist defaults to -O2 to get smaller and more
    efficient executables.

Bug Fixes
---------

  * Filtering facilities have been re-written to fix problems
    with filter key exchange.

  * Some problems with the launching facilities have been fixed. It is 
    now possible to use a remote shell command different from rsh.
    No more "-n" will be added on the command line if --with-remsh has 
    been chosen at configuration time.

  * Remote access to subprogram now work correctly

  * Remote access to class-wide types holding a null value can now be
    compared to null successfully.

  * Comparisons between remote access to class-wide types values now work

  * GLADE now supports RACW whose designated type has primitive
    operations with controlling arguments that are not of access mode.

  * No more Storage_Size pragmas are needed on user tasks, unless they 
    would be needed in the non-distributed application.

  * GNATDIST now checks that RCI children of a RCI package are configured
    on the same partition.

Misc
----

  * Less tasks are created by the partition communication subsystem

  * Adapted for use with the GNU libc under Linux

  * The version has been bumped to 3.11 to match the GNAT release

Changes since GLADE 1.02
========================

New Functionnalities
--------------------

  * Local launching
    If the host on which a partition must be launched is detected as
    being the same as localhost (same official name or name
    "localhost"), then rsh is not used any more and partitions are
    launched using system().

  * Light PCS
    If a partition does not contain any RCI body and does not have the 
    possibility of defining local RACW entities, then no anonymous
    task is ever started, in order to avoid creating tasks which will
    never be used.

  * Task pools
    Up to GLADE 1.02, a new task was created for each incoming
    request. Now, tasks are reused and are pre-created using a
    low-priority background allocator to allow requests to be served
    sooner. The number of awaiting tasks is configurable through
    GNATDIST configuration files on a per-partition basis or system-wide.

  * Informative exception messages
    When the TCP module fails, the errno return code is stored in the
    exception message to allow easier debugging.

  * gnat.adc
    GNATDIST handles gnat.adc.

  * Version checks
    If a RCI version id is a blank string, then the version check is
    always considered as true.

New Ports
---------

  * Digital Unix
    GLADE now works correctly on Digital Unix. Heterogeneous
    distribution involving Digital Unix platforms is not yet
    supported. Compilation must use -O0 instead of -O2 to prevent a
    bug at runtime. The zlib library seems to be broken on Digital
    Unix. Therefore, the zip filter is not available.

Misc
----

  * Various code cleanups.

Changes since GLADE 1.01
========================

New Functionnalities
--------------------

  * Filters. 
    A filter is a set of subprograms which will be called
    automatically before sending bytes on the communication channel
    and after receiving them. An example (the ZIP filter) is bundled
    and installed along with GLADE, which uses the zlib library.
    There are new pragmas and attributes in GNATDIST to use this
    feature.

  * Trace and Replay
    It is possible to pass two new predefined arguments --trace and
    --replay to a partition. In tracing mode, network inputs and
    outputs are logged in such a way that when the partition
    executable is invoked with arguments --replay, inputs and outputs
    are read from the log files. Therefore, you can easily debug your
    distributed application without any non-deterministic side
    effects.

Examples
---------

   * LightBank 
     It is a simple example of client/server application written in
     Ada 95 and Annex E. Shows in particular how a simple partition
     (the client) can be duplicated at will. 

   * Bank 
     A more sophisticated example on the same theme. It demonstrates 
     distributed objects and filtering.

Bug Fixes
---------

   * Float transmissions between different architectures with
     different word sizes now work.

   * Pathological cases in GNATDIST.

Misc
----

   * Copies of buffers have been suppressed wherever possible, thus
     decreasing execution time.

   * The 'rsh' command can now be changed at installation time using the
      --with-remsh parameter of configure (in preparation for HP support)

   * Upgraded to automake 1.1n. If the user does modifies sensitive files 
     (such as Makefile.am) and does not have automake, then print a
     message instead of crashing with an unclear error.

   * Reorganisation of GNATDIST directory hierarchy.

   * Clearer error messages for GNATDIST.

   * New file NEWS (this file).

# Local Variables:
# mode: text
# End:
