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

Differences between 1.3 and version 1.4
Log of other versions for file ai12s/ai12-0052-1.txt

--- ai12s/ai12-0052-1.txt	2013/01/04 04:38:04	1.3
+++ ai12s/ai12-0052-1.txt	2013/12/19 03:18:50	1.4
@@ -1,8 +1,8 @@
-!standard A(3/2)                                   13-01-02    AI12-0052-1/02
+!standard A(3/2)                                   13-12-18    AI12-0052-1/03
 !standard A.10.3(21)
-!standard A.16(123/2)
-!standard A.16(30/2)
 !class binding interpretation 12-12-04
+!status Corrigendum 2014 13-12-18
+!status ARG Approved 7-0-4  13-11-16
 !status work item 12-12-04
 !status received 12-07-19
 !priority Low
@@ -10,8 +10,7 @@
 !subject Implicit objects are considered overlapping
 !summary
 
-Implicitly referenced objects (like the default output file in Text_IO and the
-current default directory in Directories) defined in language-defined units are
+The default input and output files of Text_IO are
 considered implicit parameters to the associated routines for the purposes of
 determining whether A(3) applies.
 
@@ -45,18 +44,18 @@
 subprogram perform as specified, so long as all parameters that could be passed
 by reference denote nonoverlapping objects.
 
-For the purpose of determining whether concurrent calls on text input-output
+{For the purpose of determining whether concurrent calls on text input-output
 subprograms are required to perform as specified above, when calling a
 subprogram within Text_IO or its children that implicitly operates on one of the
 default input/output files, the subprogram is considered to have a
-parameter of Current_Input or Current_Output (as appropriate).
+parameter of Current_Input or Current_Output (as appropriate).}
 
 Add AARM notes:
    AARM Ramification: So long as the parameters are disjoint, concurrent calls
    on the same language-defined subprogram, and concurrent calls on two
    different language-defined subprograms are required to work. But concurrent
-   calls on overlapping objects (be they of the same or different
-   language-defined subprograms) are NOT required to work (being unsafe use of
+   calls operating on overlapping objects (be they of the same or different
+   language-defined subprograms) are NOT required to work (being erroneous use of
    shared variables) unless both subprograms are required to pass the associated
    parameter by-copy.
 
@@ -76,7 +75,7 @@
 subprograms are required to perform as specified, subprograms that implicitly
 operate on one of the default input/output files are considered to have a
 parameter of Current_Input or Current_Output (as appropriate). The result of
-Current_Output is considered to be overlapping with the file give to the latest
+Current_Output is considered to be overlapping with the file given to the latest
 call of Set_Output (or Standard_Output if Set_Output hasn't been called); a
 corresponding consideration applies to the result of Current_Input.
 See the introduction of Annex A for details.
@@ -126,7 +125,7 @@
 an implicit parameter. However, this would make these packages harder to use
 in a multitasking system. Moreover, the calls are likely to be expensive anyway
 (if this state is managed by the underlying target OS), and it is quite
-likely that the target OS already provides some guarentees for concurrent
+likely that the target OS already provides some guarantees for concurrent
 access.
 
 Therefore, we require these packages to "work" when called concurrently.
@@ -139,6 +138,26 @@
 locales only can be read (if setting is provided, it's not via a language-defined
 subprogram, and thus isn't covered by A(3)). Of course, implementations can do
 what they want with implementation-defined routines.
+
+!corrigendum A(3)
+
+@drepl
+The implementation shall ensure that each language-defined subprogram is
+reentrant in the sense that concurrent calls on the same subprogram perform as
+specified, so long as all parameters that could be passed by reference denote
+nonoverlapping objects.
+@dby
+The implementation shall ensure that each language-defined subprogram is
+reentrant in the sense that concurrent calls on any language-defined
+subprogram perform as specified, so long as all parameters that could be passed
+by reference denote nonoverlapping objects.
+
+For the purpose of determining whether concurrent calls on text input-output
+subprograms are required to perform as specified above, when calling a
+subprogram within Text_IO or its children that implicitly operates on one of the
+default input/output files, the subprogram is considered to have a
+parameter of Current_Input or Current_Output (as appropriate).
+
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent