E.3 Consistency of a Distributed System
This clause defines attributes and rules associated with verifying the consistency of a distributed program.
For a prefix P that statically denotes a program unit, the following attributes are defined:
- Yields a value of the predefined type String that identifies the version of the compilation unit that contains the declaration of the program unit.
- Yields a value of the predefined type String that identifies the version of the compilation unit that contains the body (but not any subunits) of the program unit.
The version of a compilation unit changes whenever the compilation unit changes in a semantically significant way. This International Standard does not define the exact meaning of "semantically significant". It is unspecified whether there are other events (such as recompilation) that result in the version of a compilation unit changing.
If P is not a library unit, and P has no completion, then P'Body_Version returns the Body_Version of the innermost program unit enclosing the declaration of P. If P is a library unit, and P has no completion, then P'Body_Version returns a value that is different from Body_Version of any version of P that has a completion.
Bounded (Run-Time) Errors
In a distributed program, a library unit is consistent if the same version of its declaration is used throughout. It is a bounded error to elaborate a partition of a distributed program that contains a compilation unit that depends on a different version of the declaration of a shared passive or RCI library unit than that included in the partition to which the shared passive or RCI library unit was assigned. As a result of this error, Program_Error can be raised in one or both partitions during elaboration; in any case, the partitions become inaccessible to one another.
Copyright © 1992,1993,1994,1995 Intermetrics, Inc.
Copyright © 2000 The MITRE Corporation, Inc. Ada Reference Manual