CVS difference for ai12s/ai12-0178-1.txt
--- ai12s/ai12-0178-1.txt 2015/11/18 01:23:01 1.2
+++ ai12s/ai12-0178-1.txt 2015/11/19 03:38:16 1.3
@@ -1,15 +1,24 @@
-!standard 4.1.3(17/2) 15-10-09 AI12-0178-1/01
+!standard 4.1.3(17/2) 15-11-18 AI12-0178-1/02
+!standard 4.3.2(13)
!standard 4.3.3(45/2)
!standard 4.5.2(37)
!standard 9.11(8/2)
+!standard 10.1.2(29/2)
+!standard 11.2(12)
+!standard 11.4.3(5/2)
+!standard 11.4.3(6/2)
+!standard 12.1(22)
!standard 12.3(24)
!standard 12.7(19/2)
!standard 12.7(21/2)
!standard 13.5.1(27)
+!standard 13.11(41/3)
+!standard A.18.32(9/3)
!standard B.4(124)
!standard B.5(30/3)
!standard C.3.2(28/3)
!class presentation 15-10-09
+!status ARG Approved 7-0-1 15-10-16
!status work item 15-10-09
!status received 15-09-07
!priority Low
@@ -35,9 +44,15 @@
Pool(K).Write -- an entry of the task Pool(K) (see {9.1}[9.4])
+Modify 4.3.2(13):
+
+ (Expression with Left => {new Literal'(}1.2{)}, Right => {new Literal'(}3.4{)})
+ Addition'(Binop with null record)
+ -- presuming Binop is of type Binary_Operation
+
Modify 4.3.3(45/2):
- Buffer'(Size => 50, Pos => 1, Value => [String'(]'x', others => <>[)]) -- see 3.7
+ Buffer'(Size => 50, Pos => 1, Value => [String']('x', others => <>)) -- see 3.7
[Note: We have to remove the qualification, as qualifying by an
unconstrained string type does not provide an "applicable index constraint"
@@ -68,21 +83,43 @@
[Note: This was identified in April 2011 (see !discussion of AI05-0248-1), but
for some reason wasn't addressed. We do it now.]
-Modify 12.3(24):
+Modify 10.1.2(29/2): (just the modified part shown)
+
+ type Department is [private]{...};
+
+Modify 11.2(12): (just the modified part shown)
+
+ {Ada.Exceptions.}Exception_Message
+
+Modify 11.4.3(5/2):
+
+ ...
+ {private
+ ...}
+ end File_System;
+
+Modify 11.4.3(6/2): (just the modified part shown)
- function Square is new Squaring(Item => Matrix, "*" => Matrix_Product);
- function Square is new Squaring(Matrix, Matrix_Product); -- same as previous
+ package body File_System is
+ {...}
-*** Not sure how - no fix in the above ***
+[Editor's note: This will have to split this paragraph into 2 after ..., in
+order to be consistent with paragraphs 5 and 8.]
-This is illegal as Matrix (declared in 3.6) is an unconstrained type, and
-Squaring as declared requires a definite type.
+ [Note: This ... provides a place for File_Exists to be declared.]
-But I don't know any sensible fix here, because declaring a constrained
-matrix subtype alone doesn't work (then the operation would fail subtype
-conformance and be rejected), and declaring a (sub)type and operation seems
-like overkill as well as obscuring the actual point of the example.
+Modify 12.1(22):
+ generic
+ type Item {(<>)} is private;
+ with function "*"(U, V : Item) return Item is <>;
+ function Squaring(X : Item) return Item;
+
+Modify 12.3(24):
+
+ function Square{1} is new Squaring(Item => Matrix, "*" => Matrix_Product);
+ function Square{2} is new Squaring(Matrix, Matrix_Product); -- same as previous
+
Modify 12.7(19/2):
{subtype Key_String is String(1..5);}
@@ -106,10 +143,21 @@
[Note: We're insisting on a particular component size, so we have to declare
that.]
+Modify 13.11(41/3):
+
+ Our_Pool : Mark_Release_Pool_Type (Pool_Size => 2000);
+ My_Mark : [MR_Pool.]Subpool_Handle; -- {As declared in}[See] 13.11.6
+
+Modify A.18.32(9/3): (just the modified part shown)
+
+ use [Adjacency_Lists, ]Node_Maps, Paths, Graphs;
+
+ [Note: This use is redundant with the one in A.18.32(4/3).]
+
Modify B.4(124): (just the modified part shown)
- Ada_Record.Name := {COBOL.}To_Ada(COBOL_Record.Name);
- Ada_Record.SSN := {COBOL.}To_Ada(COBOL_Record.SSN);
+ Ada_Record.Name := {COBOL.}To_Ada(COBOL_Record.Name);
+ Ada_Record.SSN := {COBOL.}To_Ada(COBOL_Record.SSN);
Modify B.5(30/3): (just the modified part shown)
@@ -132,20 +180,19 @@
13.11
This seems to have randomly selected just one of the places (Subpool_Handle)
-that use entities from MR_Pool to have an MR_Pool. prefix.
+that use entities from "MR_Pool" to have an "MR_Pool." prefix.
[Editor: No. The type Mark_Release_Pool_Type and its operations are declared
here. The "..." at paragraph 40 includes the declarations of the Mark and
Release operations -- that's what 13.11(38/3) says (or at least meant). We're
-not using MR_Pool here (that would be an unacceptable forward reference,
+not using "MR_Pool" here (that would be an unacceptable forward reference),
but rather a set of declarations like it.
Maybe we could clarify that somehow, but I don't think there is any point
in adding prefixes that would orphan the type declaration in 13.11(39/3).
-(There is also the question as to whether there should be any prefix in
-13.11(41/3) -- probably not.
+(There shouldn't be any prefix in 13.11(41/3).)
-If we really wanted this to use MR_Pool, we'd have to move the entire example
+If we really wanted this to use "MR_Pool", we'd have to move the entire example
to 13.11.6, which seems to defeat the purpose.]
---------
@@ -170,32 +217,14 @@
in the Standard.]
---------
-
-Examples that could be better
-[Editor: I did nothing with these, I only addressed the examples that were
-actually wrong. We should discuss whether to change any of these during the
-upcoming meeting.]
+Examples that could be better that we're not going to fix now
3.6 A definition of type Error_Code would help.
-
-[Jeff missed: 3.8 A definition of type Month_Name would help. This was also
-pointed out in the !appendix of AI05-0248-1.]
-
-4.3.2
-(Expression with Left => 1.2, Right => 3.4);
+3.8 A definition of type Month_Name would help. This was also
+pointed out in the !appendix of AI05-0248-1.
-Assuming this is being assigned to something of type Binary_Operation (mentioned
-2 lines later), then this fails since Left and Right are of type Expr_Ptr. We
-need something like:
-
- Literal_A : aliased Literal := Literal'(Value => 1.2);
- Literal_B : aliased Literal := Literal'(Value => 3.4);
- Binop : Binary_Operation := (Expression with Left => Literal_A'Access,
- Right => Literal_B'Access);
-
-
4.6
I think the last examples could do with a bit of context, e.g.:
@@ -208,31 +237,6 @@
Pedantically the examples of function calls are function calls, but it would be
more useful to have LHS := before and ; after. If we are going to be pedantic,
then the examples of procedure calls are actually procedure call statements.
-
-10.1.2
-
-In Office.Departments, I'd like a completion for Department, even if only ...,
-(as done for the other child packages of Office).
-
-11.2
-
-A with and use of Ada.Exceptions would help. (Examples don't have to be entire,
-but this chapter is specifically about Exceptions, and 11.4.1 is mentioned in a
-comment, so Ada.Exceptions is something that we're wanting to draw the reader's
-attention to).
-
-11.4.3
-
-Seems a bit more incomplete than normal, even for just an example. I'd like a
-declaration of Data_Type and completion of File_Handle in the spec of
-File_System, a declaration of function File_Exists in the body, and procedure
-Close in both, even if all are ..., and Verbosity_Desired : Boolean; in main.
-
-
-A.18.32
-
-Not an error, but the "use Adjacency_Lists" in the body is redundant because
-it’s already in the spec.
!ASIS
Questions? Ask the ACAA Technical Agent