CVS difference for 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