CVS difference for ai12s/ai12-0064-2.txt

Differences between 1.10 and version 1.11
Log of other versions for file ai12s/ai12-0064-2.txt

--- ai12s/ai12-0064-2.txt	2017/02/10 04:34:14	1.10
+++ ai12s/ai12-0064-2.txt	2017/02/10 19:25:55	1.11
@@ -1,4 +1,4 @@
-!standard 9.5(17/3)                                 17-02-09    AI12-0064-2/07
+!standard 9.5(17/3)                                 17-02-10    AI12-0064-2/08
 !standard 9.5.1(8)
 !standard 9.5.1(9)
 !standard 9.5.1(10)
@@ -90,7 +90,7 @@
 of generic units. Outside of any generic, it is required to be static so that
 we can enforce Legality Rules based on an unambigious value. In order to
 follow the model of preconditions, the expression is given a name, the
-"blocking requirement expression". I changed as many uses as possible to use
+"blocking restriction expression". I changed as many uses as possible to use
 this name; it makes more sense than talking about the "value of the
 Nonblocking aspect" when that might be a complex expression.
 
@@ -145,12 +145,12 @@
 
    Nonblocking
 
-       This aspect specifies the blocking requirement for the entity; it shall
-       be specified by an expression, called a *blocking requirement
+       This aspect specifies the blocking restriction for the entity; it shall
+       be specified by an expression, called a *blocking restriction
        expression*. If directly specified, the aspect_definition shall be a
        nonblocking-static expression. The expected type for the expression is
        Boolean. [Redundant: The aspect_definition can be omitted from the
-       specification of this aspect; in that case the blocking requirement
+       specification of this aspect; in that case the blocking restriction
        expression for the entity is the enumeration literal True.]
 
          AARM Proof: 13.1.1 allows omitting the aspect expression for
@@ -171,7 +171,7 @@
        13.1(9.4/5) does not apply to aspect Nonblocking. This is the
        "unless otherwise specified" of that rule.]
 
-       When the blocking requirement expression is static for an entity,
+       When the blocking restriction expression is static for an entity,
        the expression is evaluated to produce a static value for aspect.
        When aspect Nonblocking is statically False for an entity, the entity
        might contain a potentially blocking operation; such an entity *allows
@@ -186,7 +186,7 @@
          contexts it is treated more like a static value than an expression.
 
          AARM Ramification: specifying Nonblocking as False imposes
-         no requirements. Specifying Nonblocking as True imposes
+         no restrictions. Specifying Nonblocking as True imposes
          additional compile-time checks to prevent blocking, but does not
          prevent deadlock. A pragma Detect_Blocking can be used to ensure
          that Program_Error is raised in a deadlock situation.
@@ -200,7 +200,7 @@
        confirming.
 
          AARM Ramification: If replacing Nonblocking attribute references
-         makes the blocking requirement expression of an entity declared within
+         makes the blocking restriction expression of an entity declared within
          a generic instance into a static expression, the value of that
          expression is used to recheck all of the nonblocking Legality Rules
          in a generic specification. For instance, an instance is illegal
@@ -211,7 +211,7 @@
        Nonblocking aspect explicit; while it follows from "normal" generic
        instance processing, it's unusual enough to be worth spelling out.]
 
-       For a (protected or task) entry, the blocking requirement expression is
+       For a (protected or task) entry, the blocking restriction expression is
        the Boolean literal False.
 
          AARM Reason: An entry can be renamed as a procedure, so the value
@@ -223,10 +223,10 @@
          individual rules for these cases, but there were already many
          of them, and this solution avoids the need for extra rules.
 
-       For a predefined operator of an elementary type the blocking requirement
+       For a predefined operator of an elementary type the blocking restriction
        expression is the Boolean literal True. For a predefined operator of a
-       composite type, the blocking requirement expression of the operator is
-       determined by the blocking requirement expression for the type.
+       composite type, the blocking restriction expression of the operator is
+       determined by the blocking restriction expression for the type.
 
           AARM Reason: Predefined operators of elementary types can never
           include any potentially blocking operations, so we want them to
@@ -243,7 +243,7 @@
           have this rule apply to the operators, not the types.
 
           AARM Ramification: It's not possible to specify the blocking
-          requirement expression of a predefined operator; if an operator
+          restriction expression of a predefined operator; if an operator
           is declared in order to do that, it is no longer predefined.
 
        [Redundant: For a full type declaration that has a partial view, the
@@ -263,21 +263,21 @@
           actual parameters of the instance is only necessary when the aspect
           is explicitly specified for the formal type.
 
-       Unless directly specified, for a derived type, the blocking requirement
+       Unless directly specified, for a derived type, the blocking restriction
        expression is that of the parent type.
 
           AARM Discussion: The expressions that can be specified for a derived
           type are limited by a Legality Rule, see below.
 
        Unless directly specified, for any other program unit, type, or formal
-       object, the blocking requirement expression of the entity is determined
-       by the blocking requirement expression for the innermost program unit
+       object, the blocking restriction expression of the entity is determined
+       by the blocking restriction expression for the innermost program unit
        enclosing the entity.
 
           [Editor's note: Formal objects are here since objects don't have
           the aspect in general, only in this specific case.]
 
-       If not specified for a library unit, the blocking requirement expression
+       If not specified for a library unit, the blocking restriction expression
        is the Boolean literal True if the library unit is declared pure and is
        not a generic unit, and the Boolean literal False otherwise.
 
@@ -453,7 +453,7 @@
       blocking in the full view.
 
    Aspect Nonblocking shall be specified for a derived type only if it
-   confirms the blocking requirement expression of the ancestor type or if
+   confirms the blocking restriction expression of the ancestor type or if
    it is specified to have the Boolean literal True.
 
       AARM Reason: Boolean-valued aspects have a similar rule (see 13.1.1),
@@ -488,7 +488,7 @@
 
       AARM Ramification: This applies to both record and array "=".
 
-   In a generic instantiation (after replacement in the blocking requirement
+   In a generic instantiation (after replacement in the blocking restriction
    expressions by values of the actuals as described previously):
 
       * the actual subprogram corresponding to a nonblocking formal
@@ -543,10 +543,10 @@
     checks in P, a call to a subprogram is considered to allow blocking
     unless:
        * the value of its Nonblocking aspect is statically True, or
-       * its blocking requirement expression (that is, Nonblocking aspect)
+       * its blocking restriction expression (that is, Nonblocking aspect)
          conforms exactly to that of P, or conforms to some part of the blocking
-         requirement expression of P that is combined with the remainder of the
-         blocking requirement expression of P by one or more "and" or "and then"
+         restriction expression of P that is combined with the remainder of the
+         blocking restriction expression of P by one or more "and" or "and then"
          operations.
 
       AARM Ramification: That is, if the aspect of the program unit is specified

Questions? Ask the ACAA Technical Agent