CVS difference for ai12s/ai12-0001-1.txt
--- ai12s/ai12-0001-1.txt 2013/05/18 02:23:02 1.4
+++ ai12s/ai12-0001-1.txt 2013/06/11 00:26:07 1.5
@@ -1,7 +1,8 @@
-!standard 13.2(6.1/2) 13-02-03 AI12-0001-1/03
+!standard 13.2(6.1/2) 13-06-10 AI12-0001-1/04
!standard 13.2(7)
!standard 13.2(8)
!standard 13.2(9/3)
+!standard C.6(8.1/3)
!standard C.6(10)
!standard C.6(11)
!standard C.6(13.2/3)
@@ -33,9 +34,11 @@
to be a recommended level of support where by-reference, aliased, atomic
and volatile objects must be aligned according to subtype.
-Change 13.2(9) to reject packed arrays that require independent addressability,
-but are packed to a different or no alignment.
+Change 13.2(8 and 9) to add an exception for components that have alignment
+requirements as detailed above.
+In C.6(8.1/3), add "and aliased objects" after "atomic objects".
+
In C.6(10-11), add "and Independent" after indivisible.
Delete C.6 (21) as it is no longer required.
@@ -95,6 +98,13 @@
generally be a multiple of Storage_Unit, so it probably won't get
packed very tightly.
+Modify C.6(8.1/3):
+
+ When True, the aspects Independent and Independent_Components specify as
+ independently addressable the named object or component(s), or in the case of
+ a type, all objects or components of that type. All atomic objects {and aliased
+ objects} are considered to be specified as independently addressable.
+
Add "and independent" to C.6(10/3-11), twice:
It is illegal to specify either of the aspects Atomic or Atomic_Components to
@@ -115,6 +125,15 @@
Independent_Components is True, in a way that prevents the implementation from
providing the independent addressability required by the aspect.
+[Editor's comment: I don't believe that the above change is necessary or wise.
+The revision to the meaning of Pack means that the above could never happen for
+Pack, so there is no need to mention it here. Perhaps an AARM note would be
+appropriate "Note that the above can never happen for Pack.", but I worry that
+mentioning Pack here implies that it somehow can silently destroy independent
+addressibility. (Certainly, the above can be read that way.) That's certainly
+the wrong take-away.]
+
+
Delete C.6(21/3) and the associated AARM note, because the new alignment
requirement above covers this case:
@@ -126,16 +145,32 @@
illegal as the Recommended Level of Support cannot be achieved; otherwise, a
warning might be appropriate if no packing whatsoever can be achieved.
+[Editor's comment: I think it would be a good idea to add a Language Design Principle
+to 13.2 to explain that Pack is about storage minimization and not about matching
+a particular representation. In particular, if Pack is used to match a particular
+representation, future maintenance might cause the representation to silently
+change (if components become volatile or aliased, they will not be packed as
+tightly), while this will not happen for other representation clauses (like
+Component_Size).]
+
!discussion
The idea of Pack is that if it's infeasible to pack a given component tightly
(because it is atomic, volatile, aliased, of a by-reference type, or has
independent addressability), then Pack is not illegal; it just doesn't pack as
tightly as it might without the atomic, volatile, etc.
+
+This was always the intent, but the Recommended Level of Support (RLS)
+contradicted it.
+
+By making the alignment requirement part of the Recommended Level of Support
+eliminates the conflict between the RLS and the intent.
-This was always the intent, but the Recommended Level of Support contradicted
-it.
+Note that we require that aliased objects are always independently-addressable.
+We want dereferences to always be task-safe in this way; modifying an object
+through a dereference will never clobber some adjacent component (even
+momentarily).
!corrigendum 13.2(6.1/2)
@@ -186,6 +221,19 @@
rounded up to the nearest factor of the word size, unless this would violate the
above alignment requirements.>
+!corrigendum C.6(8.1/3)
+
+@drepl
+When True, the aspects Independent and Independent_Components @i<specify as
+independently addressable> the named object or component(s), or in the case of
+a type, all objects or components of that type. All atomic objects
+are considered to be specified as independently addressable.
+@dby
+When True, the aspects Independent and Independent_Components @i<specify as
+independently addressable the named object or component(s), or in the case of
+a type, all objects or components of that type. All atomic objects and aliased
+objects are considered to be specified as independently addressable.
+
!corrigendum C.6(10)
@drepl
@@ -3038,143 +3086,4 @@
****************************************************************
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
-
-From: Bob Duff
-Sent: Monday, February 4, 2013 3:47 PM
-
-****************************************************************
Questions? Ask the ACAA Technical Agent