Version 1.1 of acs/ac-00199.txt
!standard 1.1.1(1) 10-10-21 AC95-00199/01
!class confirmation 10-10-21
!status received no action 10-10-21
!status received 10-04-27
!subject AI05 Spreadsheet
!summary
!appendix
From: Dan Eilers
Sent: Tuesday, April 27, 2010 1:28 PM
The latest two ARG meeting minutes have said:
meeting 40:
> Randy started to create a spreadsheet of the AIs, but he ran out of
> time to provide anything useful. We'll delay this discussion until the
> end of this meeting [but we didn't discuss it then - Editor].
meeting 39:
> Bob isn't ready to discuss this, as he wasn't able to find time to
> draw up a chart. We'll either do it at the end of this meeting [we
> didn't - Editor] or next time.
Here's my attempt at such a spreadsheet, ignoring AIs that are ramifications,
confirmations, presentation issues, or "no action".
Status
------
Amendment 2012 ARG Approved Work Item Total
-------------- ------------ --------- -----
Class: Ada 2012 | 18 4 30 52
Class: Ada 2005 BI | 104 0 21 125
--- - -- ---
Totals: 122 4 51 177
-------------------------------------------------------------------------
Class: Amendment Status: Amendment 2012 (18)
AI05-0001-1/09 Bounded containers and other container issues
AI05-0003-1/04 Qualified expressions and names
AI05-0031-1/03 Add a From parameter to Find_Token
AI05-0049-1/03 Extend file name processing in Ada.Directories
AI05-0069-1/05 Holder container
AI05-0123-1/07 Composability of equality
AI05-0136-1/06 Multiway tree container
AI05-0137-1/05 String encoding package
AI05-0143-1/03 In Out parameters for functions
AI05-0148-1/06 Accessibility of anonymous access stand-alone objects
AI05-0149-1/06 Access types conversion and membership
AI05-0150-1/03 Use all type clause
AI05-0152-1/03 Restriction No_Anonymous_Allocators
AI05-0162-1/03 Allow incomplete types to be completed by partial views
AI05-0166-1/04 Yield for non-preemptive dispatching
AI05-0168-1/04 Extended suspension objects
AI05-0179-1/04 Labels at end of a sequence_of_statements
AI05-0193-1/02 Alignment of allocators
-------------------------------------------------------------------------
Class: Amendment Status: ARG Approved (4)
AI05-0144-2/04 Detecting dangerous order dependences
AI05-0145-2/06 Pre- and Postconditions
AI05-0159-1/05 Queue containers
AI05-0176-1/00 Quantified expressions
-------------------------------------------------------------------------
Class: Amendment Status: Work Item (30)
AI05-0111-1/08 Specifying a pool on an allocator AI05-0117-1/00 Memory barriers and Volatile objects AI05-0119-1/00 Package Calendar, Daylight Savings Time, and UTC_Offset
AI05-0125-1/01 Nonoverridable operations of an ancestor
AI05-0127-1/02 Adding Locale Capabilities
AI05-0135-2/02 "Integrated" nested packages
AI05-0139-2/04 Syntactic sugar for accessors, containers, and iterators
AI05-0142-4/06 Explicitly aliased parameters and accessors for Ada.Containers
AI05-0146-1/03 Type and Package Invariants
AI05-0147-1/09 Conditional expressions
AI05-0151-1/06 Allow incomplete types as parameter and result types
AI05-0153-1/04 Subtype predicates
AI05-0154-1/00 Unconstrained 'Access on array components
AI05-0158-1/04 Generalizing membership tests
AI05-0161-1/02 Restrictions for default stream attributes of elementary types
AI05-0167-1/02 Managing affinities for programs executing on multiprocessor pl
AI05-0169-1/02 Defining group budgets for multiprocessor platforms
AI05-0170-1/02 Monitoring the time spent in Interrupt Handlers
AI05-0171-1/03 Ravenscar Profile for Multiprocessor Systems
AI05-0173-1/01 Testing if tags represent abstract types
AI05-0174-1/03 Implement Task barriers in Ada
AI05-0177-1/01 Renaming of expressions as functions
AI05-0183-1/02 Aspect Specifications
AI05-0184-1/03 Compatibility of streaming of containers
AI05-0185-1/01 Wide_Character and Wide_Wide_Character classification and foldi
AI05-0186-1/05 Global-in and global-out annotations
AI05-0188-1/04 Case expressions
AI05-0189-1/01 Restriction No_Allocators_After_Elaboration
AI05-0190-1/03 Global storage pool controls
AI05-0191-1/01 Aliasing predicates
-------------------------------------------------------------------------
Class: Binding Interpretation Status: Amendment 2012 (104)
AI05-0002-1/04 Unconstrained arrays and C interfacing
AI05-0006-1/06 Nominal subtypes for all names
AI05-0007-1/04 Stream 'Read and private scalar types
AI05-0008-1/05 General access values that might designate constrained objects AI05-0009-1/10 Confirming representation items and independence
AI05-0013-1/13 No_Nested_Finalization is difficult to enforce
AI05-0014-1/03 Accessibility of designated objects
AI05-0015-1/04 Constant return objects
AI05-0016-1/02 Others => <> can be used in place of null record
AI05-0017-1/04 Freezing and incomplete types
AI05-0019-1/04 Primitive subprograms are frozen with a tagged type
AI05-0020-1/03 Universal operators of fixed point and access types
AI05-0021-1/03 Issues with containers
AI05-0022-1/04 Container tampering should be checked for formal subprograms
AI05-0023-1/06 'Read on records with variant parts
AI05-0024-1/05 Run-time accessibility checks
AI05-0025-1/03 Missing legality rules for formal_package_association
AI05-0026-1/04 Missing rules for Unchecked_Unions
AI05-0027-1/06 Behavior of container operations when passed a finalized contai
AI05-0028-1/06 Problems with preelaboration
AI05-0029-1/04 Operations that are not declared but still exist
AI05-0030-2/05 Requeue on synchronized interfaces
AI05-0032-1/02 Extended return statements for class-wide functions
AI05-0033-1/04 Rules for non-library level interrupt handlers
AI05-0034-1/04 Categorization of limited views
AI05-0035-1/04 Inconsistencies with pure units
AI05-0037-1/02 Out of range <> associations in array aggregates
AI05-0038-1/03 Minor Errors in Ada.Text_IO
AI05-0039-1/04 User-defined stream attributes cannot be dynamic
AI05-0040-1/03 Limited with clauses on descendants
AI05-0041-1/08 Derived types and partial views
AI05-0042-1/04 Overriding versus implemented-by
AI05-0043-1/02 The Exception_Message for failed language-defined checks.
AI05-0044-1/05 Equivalence and equality in containers
AI05-0045-1/05 Termination of unactivated tasks
AI05-0046-1/03 Null exclusions must match for profiles to be fully conformant
AI05-0047-1/07 Annoyances in the array packages
AI05-0048-1/03 Redispatching is not expected in language-defined subprograms
AI05-0050-1/07 Return permissions are not enough for built-in-place return obj
AI05-0052-1/11 Coextensions and distributed overhead
AI05-0053-1/06 Aliased views of unaliased objects
AI05-0054-2/06 Variable views of constant objects
AI05-0055-1/03 Glitch in EDF protocol
AI05-0056-1/02 Wrong result for Index functions
AI05-0058-1/01 Abnormal completion of an extended return statement
AI05-0060-1/07 The definition of Remote access types is too limiting
AI05-0062-1/03 Null exclusions and deferred constants
AI05-0063-1/05 Access discriminants on derived formal types
AI05-0064-1/01 Redundant finalization rule
AI05-0065-1/03 Remote access types should be defined as externally streamable
AI05-0066-1/05 Temporary objects are required to live too long
AI05-0067-1/09 Objects that are built in place
AI05-0070-1/01 Elaboration of interface types
AI05-0071-1/05 Class-wide operations for formal subprograms
AI05-0072-1/02 Termination only signals 'Terminated when it is True
AI05-0073-1/04 Questions about functions returning abstract types
AI05-0076-1/03 Meaning of "function with a controlling result"
AI05-0077-1/03 The scope of a declaration does not include any context clause
AI05-0078-1/03 Alignment need not match for Unchecked_Conversion
AI05-0079-1/04 An other_format character should be allowed wherever a separato
AI05-0080-1/04 "view of" is not needed when it is clear from context
AI05-0082-1/03 Accessibility level of generic formal types
AI05-0084-1/03 Pragma Remote_Types for Container library units
AI05-0086-1/02 Statically compatible needs to take null exclusions into account
AI05-0087-1/03 Formal nonlimited derived types should not have limited actual
AI05-0088-1/01 Only the value of "**" is equivalent to repeated "*"s
AI05-0090-1/05 Ambiguities with prefixed views of synchronized primitives
AI05-0091-1/03 An other_format character is not allowed in an identifier
AI05-0093-1/03 Additional rules that need to use "immutably limited"
AI05-0094-1/03 Timing_Events should not require deadlock
AI05-0095-1/04 Address of intrinsic subprograms
AI05-0096-1/04 Deriving from formal limited types
AI05-0097-1/03 3.9.3(4) includes abstract null extensions
AI05-0098-1/03 Incomplete type names can be used in anonymous access-to-subpro
AI05-0099-1/04 The tag, not the type, of an object determines if it is control
AI05-0100-1/04 Placement of pragmas
AI05-0101-1/05 Remote functions must support external streaming
AI05-0102-1/04 Some implicit conversions ought to be illegal
AI05-0103-1/05 Return statements should require at least static compatibility
AI05-0104-1/02 Null exclusions are not allowed in uninitialized allocators
AI05-0106-1/04 Representation items are not allowed on generic formal paramete
AI05-0107-1/04 A failed allocator need not leak memory
AI05-0108-1/03 The incomplete view from a limited view does not have a discrim
AI05-0109-1/03 Redundant check in S'Class'Input
AI05-0112-1/03 Names for anonymous aspects of representation
AI05-0113-1/05 Conflicting external tags and other tag issues
AI05-0116-1/04 The value of Alignment for a class-wide object
AI05-0118-1/03 The association of parameter associations
AI05-0120-1/03 The current instance of a protected object is a constant view
AI05-0126-1/03 Dispatching when there is no declared operation
AI05-0128-1/03 "/=" is a primitive operation
AI05-0129-1/04 A limited view does not contain views of incomplete types
AI05-0132-1/03 A library unit pragma must apply to a library unit
AI05-0134-1/03 Full conformance should include the profiles of anonymous acces
AI05-0157-1/03 Calling Unchecked_Deallocation is illegal for zero-sized pools
AI05-0160-1/02 Additional ways to invalidate cursors
AI05-0164-1/02 Parameters of access-to-subprogram parameters and derivation
AI05-0178-1/02 Incomplete views are limited
AI05-0181-1/02 Soft hyphen is a nongraphic character
AI05-0196-1/02 Null exclusion checks for 'out' parameters
AI05-0203-1/02 A return_subtype_indication cannot denote an abstract subtype
AI05-0205-1/02 An extended return statement declares a name usable inside the
AI05-0207-1/02 Access constant is considered for mode conformance
AI05-0208-1/04 Characteristics of incomplete views
-------------------------------------------------------------------------
Class: Binding Interpretation Status: Work Item (0)
-------------------------------------------------------------------------
Class: Binding Interpretation Status: Work Item (21)
AI05-0012-1/02 Independence and Representation clauses for atomic objects
AI05-0051-1/08 Accessibility checks for class-wide types and return from neste
AI05-0057-1/04 The class attribute of a constrained subtype AI05-0110-1/00 Characteristics of generic formal derived type are not inherite
AI05-0114-1/01 Conflicting definition of Letter
AI05-0115-1/04 Aggregates with components that are not visible AI05-0122-1/00 Private with and generic children
AI05-0131-1/01 Class-wide operations for formal subprograms revisited
AI05-0155-1/01 'Size clause on type with nonstatic bounds
AI05-0163-1/01 Pragmas in place of null
AI05-0182-1/01 Preciseness of S'Value
AI05-0194-1/02 The default value of S'Stream_Size
AI05-0195-1/01 Uninitialized scalars
AI05-0197-1/01 Dispatching when there are multiple inherited operations
AI05-0198-1/01 Inheriting abstract operators for untagged types
AI05-0199-1/01 Record aggregates with components of anonymous access types AI05-0200-1/00 Mismatches in formal package declarations
AI05-0201-1/01 Independence and components of atomic objects
AI05-0202-1/01 Task_Termination and Exceptions raised during finalization
AI05-0206-1/01 Remote_Types packages should be able to depend on Preelaborated
AI05-0209-1/01 Universal operators of fixed point types (again)
-------------------------------------------------------------------------
****************************************************************
From: Randy Brukardt
Sent: Tuesday, April 27, 2010 1:56 PM
...
> Here's my attempt at such a spreadsheet, ignoring AIs that are
> ramifications, confirmations, presentation issues, or "no action".
Thanks for working this out.
[Note: I got two versions of this at the same time; I posted the one labeled
"corrected" and deleted the other. Hope that was OK.]
> Status
> ------
>
> Amendment 2012 ARG Approved Work
> Item Total
> -------------- ------------
> --------- -----
> Class: Ada 2012 | 18 4 30 52
> Class: Ada 2005 BI | 104 0 21 125
> --- - -- ---
> Totals: 122 4 51 177
This information we can get from the cross-reference list and the Amendment
tool. I wanted more than that (see below). There is one presentation AI
currently in the Amendment and one more which is still a work item. No
ramifications currently in the Amendment (none have wording changes, I think).
Here's the corresponding Ada 2005 numbers:
Corrigendum 1 Amendment 2005 Total
Ramifications 2 2 4
Binding Intrep. 83 78 161
Presentation 8 5 13
Amendment 0 97 97
275
But what I really wanted to know was two things:
How large are the changes proposed by these AIs? My spreadsheet includes
paragraphs inserted/deleted/modified for each AI, along with whether each has
new syntax or is only new/modified package, and estimates of implementation and
conceptual "size". New packages are "smaller" than new syntax, for instance.
What of the 4 areas of work from the WG 9 instructions are these AIs targeted
to? (Plus of course, "fixes": almost all of the BI s go there.) That is, is an
AI targeted to "containers", "contracts", "multi-core", "access types", or
"fixes"?
That's why this was taking so long; each AI had to be skimmed to extract that
information. I probably went too far, but I wanted to get enough information to
see if the feeling of a lot of large stuff was justified.
****************************************************************
Questions? Ask the ACAA Technical Agent