CVS difference for ai12s/ai12-0111-1.txt

Differences between 1.13 and version 1.14
Log of other versions for file ai12s/ai12-0111-1.txt

--- ai12s/ai12-0111-1.txt	2017/06/13 00:14:22	1.13
+++ ai12s/ai12-0111-1.txt	2017/08/12 02:48:59	1.14
@@ -3875,3 +3875,73 @@
 Otherwise, a quick check looks OK.
 
 ***************************************************************
+
+From: Tucker Taft
+Sent: Tuesday, June 13, 2017  3:46 AM
+
+...
+> I only saw one, which clause used a different method than Vectors?
+
+For Maps, I left the definition of tampering with elements in the same place,
+but said it only applied if the Element_Type was indefinite.
+
+> Secondly, while you have a nice definition of tampering with elements 
+> and prohibiting tampering with elements in the Indefinite_Vector, I 
+> didn't see any text that defines what operations prohibit tampering 
+> with elements (since you changed the original definitions to "tampering with cursors").
+> Humm, actually, I can't find where you changed the original 
+> definitions. But you have to do that, as "tampering with elements" is 
+> no longer defined in A.18.2, so you can't use it in A.18.2.
+
+I left the wording about what disallows tampering with elements in A.18.2,
+presuming a forward reference.  But I think the approach in Maps is probably
+better.
+
+***************************************************************
+
+From: Randy Brukardt
+Sent: Tuesday, June 13, 2017  1:15 PM
+
+...
+> > I only saw one, which clause used a different method than Vectors?
+> 
+> For Maps, I left the definition of tampering with elements in the same 
+> place, but said it only applied if the Element_Type was indefinite.
+
+I see. That would work, if you added some wording somewhere to say that if
+tampering with elements doesn't apply, then tampering with cursors does.
+The way you have it worded, one could interpret it as saying that there is
+no tampering check at all unless the element is indefinite. That's not what
+we agreed to.
+
+> > Secondly, while you have a nice definition of tampering with 
+> > elements and prohibiting tampering with elements in the 
+> > Indefinite_Vector, I didn't see any text that defines what 
+> > operations prohibit tampering with elements (since you changed the 
+> > original definitions to "tampering with cursors").
+> > Humm, actually, I can't find where you changed the original 
+> > definitions. But you have to do that, as "tampering with elements" 
+> > is no longer defined in A.18.2, so you can't use it in A.18.2.
+> 
+> I left the wording about what disallows tampering with elements in 
+> A.18.2, presuming a forward reference.  But I think the approach in 
+> Maps is probably better.
+
+That doesn't make sense, IMHO. You have a use of a completely undefined term.
+And the problem I noted above still exists here as well: you need to say that
+something that is tampering with elements becomes tampering with cursors.
+
+I expected you to do neither of these things, rather doing what you did for
+A.18.2 (in deleting and adding text), then followed by changing the existing
+wording to "prohibits tampering with cursors" wherever it currently says
+"tampering with elements", and then in A.18.11 add something on the line of:
+
+    * For Query_Element, Update_Element, ... , tampering with elements is
+      prohibited whenever A.18.2 says that tampering with cursors is
+      prohibited."
+
+That's the most work, but it's also crystal-clear what's going on, and it
+doesn't require defining terms in clauses where they aren't used (as in the
+Maps version), or any forward references.
+
+***************************************************************

Questions? Ask the ACAA Technical Agent