Version 1.1 of acs/ac-00317.txt

Unformatted version of acs/ac-00317.txt version 1.1
Other versions for file acs/ac-00317.txt

!standard 1.1.2(0)          19-03-08 AC95-00317/00
!class confirmation 19-03-08
!status received no action 19-03-08
!status received 19-02-21
!subject Fun facts about the Ada Reference Manual

From: Randy Brukardt
Sent: Thursday, February 21, 2019  11:24 PM

In figuring out the assignments, I implemented a paragraph counter (using the 
style in the HTML files). I couldn't resist running this on all of the 
versions of the Ada that are in HTML.

     Original Ada 95: 7067* numbered paragraphs
     Ada 95 + TC1:    7158 numbered paragraphs (+91)
     Ada 2005:       10194 numbered paragraphs (+3036)
     Ada 2012:       12213 numbered paragraphs (+2019)
     Ada 2012 + TC1: 12407 numbered paragraphs (+194)
     Ada 2020 (D18): 13312 numbered paragraphs (+905)

(*) Since I don't have a properly formatted original Ada 95, I am guessing the 
number by removing all of the inserted paragraphs in TC1 from the count, and 
assuming that all others are changes. The actual number is probably quite 
close to this, probably +/- 20.

We're getting close to have doubled the number of paragraphs from Ada 95.
And people thought that was big!

One thing that stands out is that we haven't added anywhere near as many 
paragraphs this time compared to the last two major updates. The numbers of 
new and modified paragraphs for each version show a similar trend:

     Ada 95 + TC1:    305 new/modified paragraphs
     Ada 2005:       3876 new/modified paragraphs
     Ada 2012:       3225 new/modified paragraphs
     Ada 2012 + TC1:  429 new/modified paragraphs
     Ada 2020 (D18): 1507 new/modified paragraphs    

Since there are a lot of container changes to go, the gap should close.
OTOH, the containers sections are not as big of a factor in these numbers as 
you might think:

    Ada 2005:        1040 containers paragraphs (all new)
    Ada 2012:        1814 containers paragraphs (889 new/modified)
    Ada 2012 + TC1:  1826 containers paragraphs ( 31 new/modified)
    Ada 2020:        1852 containers paragraphs (135 new/modified)   

The generated indexes contain 977 paragraphs in Ada 2020 D18, 892 in Ada 2012, 
737 in Ada 2005, and 468 in Ada 95 + TC1, so some of the growth is there.

Also of interest (maybe), 5371 original Ada 95 paragraphs remain in the RM 
unmodified. We've only modified 139 of them this time, so that is getting 
pretty stable.

Finally, the number of subclauses (as determined by the number of HTML
files) has grown from 351 to 494 now.
Ada 2005 had 69 new subclauses (11 of these were new auto-generated annexes), 
Ada 2012 had 54 (two more auto-generated annexes), there was one in TC1 for 
Ada 2012, and there have been 19 so far in Ada 2020.


From: Jean-Pierre Rosen
Sent: Thursday, February 21, 2019  11:52 PM

> In figuring out the assignments, I implemented a paragraph counter 
> (using the style in the HTML files). I couldn't resist running this on 
> all of the versions of the Ada that are in HTML.
Thank you for these interesting statistics. However, is it possible to 
separate counts for the "language" part from the count for the "standard 
libraries" part? The first one expresses the complexity of the language, 
while the second one expresses the richness of the environment, so I'd be 
interested in not mixing them...


From: Randy Brukardt
Sent: Friday, February 22, 2019  2:42 AM

I have the raw numbers per HTML file (thus per subclause), so anything at that
granularity is possible. But that's a bit of a pain, because the language 
itself doesn't do a good job of separating them. (Float and fixed attributes
are buried in Annex A; Calendar and it's children are in chapter 9; Annexes are
a mixture of packages and semantics.)

So stipulating that we're only worrying about the core, "standard libraries"
are Annex A minus A.5.3-4; 9.6-9.6.1; 11.4.1, 13.7-13.8, 13.11, 13.11.4, 
13.13.1, 3.9 (this is more about Ada.Tags than it is about tagged types);
B.2-B.3.2; B4; B5.

I won't count Ada.Finalization (has to be built-in), Unchecked_xxx (same), 
Iterator_Interfaces (gray area as just interfaces, and aspects are in there, 
too). The rest is core.

(I note there is also several subclauses which are just large examples, which 
probably should not be counted, either, for either part. For now, they're in 
the core language vs. the library.)

This isn't going to be perfect, as some clauses (like 3.9) are mixed 
definitions of libraries and other stuff. But there should be strong 

    Ada 95:          5287* core paragraphs; 1827* standard libraries; 3460* core language.
    Ada 95 + TC1:     5360 core paragraphs; 1849 standard libraries; 3511 core language. 
    Ada 2005:         7519 core paragraphs; 3428 standard libraries; 4091 core language.
    Ada 2012:         9186 core paragraphs; 4525 standard libraries; 4661 core language.
    Ada 2012 + TC1:   9347 core paragraphs; 4547 standard libraries; 4800 core language.
    Ada 2020 D18:    10112 core paragraphs; 4694 standard libraries; 5418 core language.

So the "language" part has been adding about 550-600 paragraphs for each 
revision (very close to exactly -- kinda scary -- guess we can't add any more 
non-libraries, sorry Ed about AI12-0250-1. ;-)

The variation seems to be mainly in the standard libraries (and presumably in 
the Annexes, not shown or calculated). Note, of course, that I haven't done 
most of the containers work yet, so that number is sure to change, and likely 
upwards. Also, Bignums will add to that number for Ada 2020.

The numbers of changed paragraphs is roughly double the difference for each 
category for each revision until this one (there are fewer changed paragraphs 
as opposed to added paragraphs this time around). If someone cares, I can give
some of those numbers, too.

Oh well, should have been sleeping rather than figuring this out.


From: Bob Duff
Sent: Friday, February 22, 2019  8:37 AM

> We're getting close to have doubled the number of paragraphs from Ada 95.

Thanks for the statistics.  Interesting.  And appalling.


Questions? Ask the ACAA Technical Agent