!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 !summary !appendix 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 correlation. 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. ***************************************************************