CVS difference for ai12s/ai12-0064-2.txt
--- ai12s/ai12-0064-2.txt 2017/12/16 04:13:46 1.21
+++ ai12s/ai12-0064-2.txt 2018/05/10 05:56:18 1.22
@@ -1,4 +1,4 @@
-!standard 9.5(17/3) 17-12-14 AI12-0064-2/15
+!standard 9.5(17/3) 18-05-07 AI12-0064-2/16
!standard 9.5.1(8)
!standard 9.5.1(9)
!standard 9.5.1(10)
@@ -74,7 +74,7 @@
other nonblocking aspects, but we don't allow anything else with a value
not known at compile-time.
- For a program unit, for a task entry, for a formal package, formal
+ For a program unit, task entry, formal package, formal
subprogram, formal object of an anonymous access-to-subprogram type,
enumeration literal, and for a type (including a formal type), the
following language-defined operational aspect is defined:
@@ -97,7 +97,7 @@
here. The basic outline of the wording is the same as used
for preconditions.]
- [Editor's 2nd note: One difference with preconditions is the we
+ [Editor's 2nd note: One difference with preconditions is that we
specify that the type is Boolean, not "any boolean type". We did
this because we have defined nonblocking attributes, and having
attributes with a different type than the aspect is weird, while
@@ -116,7 +116,7 @@
AARM Ramification: The Nonblocking aspect cannot be specified for
predefined operators or enumeration literals but we don't need to
mention that above. One would have to declare a subprogram in order
- specify the aspect, but that makes a user-defined subprogram which
+ to specify the aspect, but that makes a user-defined subprogram which
is itself not a predefined operator or an enumeration literal.
When the nonblocking expression is static for an entity,
@@ -194,9 +194,9 @@
AARM Reason: Enumeration literals can be renamed as functions,
and passed to generic formal functions, so we need to define
- the value of the aspect so the other rules are meaningful.
+ the value of the aspect to ensure the other rules are meaningful.
- For a predefined operator of an elementary type the Nonblocking
+ For a predefined operator of an elementary type, the Nonblocking
aspect is the Boolean literal True. For a predefined operator of a
composite type, the Nonblocking aspect of the operator is
the same as the Nonblocking aspect for the type.
@@ -244,14 +244,14 @@
inherit this aspect.
Unless directly specified, for a formal type, formal package, or
- formal subprogram, the aspect is that of the actual type, package, or
- subprogram.
+ formal subprogram, the Nonblocking aspect is that of the actual type,
+ package, or subprogram.
AARM Reason: This means that Nonblocking legality checking for the
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 Nonblocking
+ Unless directly specified, for a derived type, the Nonblocking
aspect is that of the parent type.
AARM Discussion: The expressions that can be specified for a derived
@@ -264,9 +264,9 @@
[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 nonblocking 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.
+ If not specified for a library unit, the nonblocking expression is
+ the Boolean literal True if the library unit is declared pure and is
+ not a generic unit, or the Boolean literal False otherwise.
[Editor's note: Legality Rules follow all of these other Static Semantics
definitions.]
@@ -378,7 +378,7 @@
AARM Ramification: Implicit calls for finalization, storage pools, and
the like are covered by the above prohibition. The rules above say
"a call", not "an explicit call". Such calls are considered statically
- bound when that is possible, that is when the controlling object has
+ bound when that is possible; that is, when the controlling object has
a known specific type (even if the actual implementation uses dispatching).
AARM Discussion: We don't need to specially worry about subprograms of
@@ -922,7 +922,7 @@
The aspect is described as being a boolean valued expression, but our intent
is that it act like a boolean-valued aspect outside of any generic unit.
Thus it is required to be static in such contexts, the expression can be
-omitted when it is specified (in which case is represents the expression of
+omitted when it is specified (in which case it represents the expression of
the boolean literal True), it can only be changed to True for derived types,
and so on. We repeat these rules even when the 13.1.1 blanket rules can be
read to apply, as that might be surprising to a reader.
@@ -1388,7 +1388,7 @@
@xbullet<a parenthesized nonblocking-static @fa<expression>.>
-For a program unit, for a task entry, for a formal package, formal
+For a program unit, a task entry, formal package, formal
subprogram, formal object of an anonymous access-to-subprogram type,
enumeration literal, and for a type (including a formal type), the
following language-defined operational aspect is defined:
@@ -1429,7 +1429,7 @@
@xindent<For an enumeration literal, the Nonblocking aspect is the Boolean
literal True.>
-@xindent<For a predefined operator of an elementary type the Nonblocking
+@xindent<For a predefined operator of an elementary type, the Nonblocking
aspect is the Boolean literal True. For a predefined operator of a
composite type, the Nonblocking aspect of the operator is
the same as the Nonblocking aspect for the type.>
@@ -1450,10 +1450,10 @@
inherit this aspect.>
@xindent<Unless directly specified, for a formal type, formal package, or
-formal subprogram, the aspect is that of the actual type, package, or
-subprogram.>
+formal subprogram, the Nobnblocking aspect is that of the actual type,
+package, or subprogram.>
-@xindent<Unless directly specified, for a derived type the Nonblocking
+@xindent<Unless directly specified, for a derived type, the Nonblocking
aspect is that of the parent type.>
@xindent<Unless directly specified, for any other program unit, type, or formal
@@ -1462,7 +1462,7 @@
@xindent<If not specified for a library unit, the nonblocking 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.>
+not a generic unit, or the Boolean literal False otherwise.>
For a @fa<prefix> S that denotes a subprogram (including a formal subprogram):
Questions? Ask the ACAA Technical Agent