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

Differences between 1.5 and version 1.6
Log of other versions for file ai12s/ai12-0344-1.txt

--- ai12s/ai12-0344-1.txt	2020/06/09 23:45:37	1.5
+++ ai12s/ai12-0344-1.txt	2020/06/11 04:23:37	1.6
@@ -222,4 +222,32 @@
+From: Tucker Taft
+Sent: Sunday, April 19, 2020  9:23 PM
+Given concerns about the use of an exception-like mechanism to implement the 
+"Allows_Exit" feature of procedural iterators, I would suggest we add to the 
+description of the No_Exceptions restriction the following:
+RM H.4(12):
+  No_Exceptions
+         Raise_statements and exception_handlers are not allowed. No language-
+         defined runtime checks are generated; however, a runtime check 
+         performed automatically by the hardware is permitted.  {The callable 
+         entity associated with a procedural_iterator (see 5.5.3) is considered
+         to not allow exit, independent of the value of its Allows_Exit 
+         aspect.}
+We had some private discussions about implementing exits from procedural 
+iterators using thread-local storage rather than an exception -like mechanism, 
+and it does seem doable, but the exception-like mechanism would probably be 
+the most straightforward, so therefore disallowing it when exceptions are 
+restricted still seems to make sense.  Any implementation-defined restriction 
+that disallows exceptions or exception handlers could also choose to restrict 
+"early" exits from procedural iterators (e.g. SPARK mode).

Questions? Ask the ACAA Technical Agent