!standard A.2(2) 20-12-11 AI12-0414-1/00 !standard A.3.1(2) !standard A.3.1(4/2) !standard A.3.1(6/2) !class presentation 20-12-03 !status Amendment 1-2012 20-12-11 !status ARG Approved 15-0-0 20-12-09 !status work item 20-12-03 !status received 20-10-06 !priority Low !difficulty Easy !subject Replace categorization pragmas with aspects !summary Replace all remaining categorization pragmas with equivalent aspects. !question We've added aspects to the start of many language-defined units, and in such cases we've switched any categorization pragma to use an aspect instead -- to avoid having a mix of aspects and pragmas. It's inconsistent to have some units use only pragmas and some use only aspects. !response (See Summary.) !wording ** Editor: I still have to go through the entire RM looking for categorization pragmas and record the paragraph numbers. The first four are in the !standards above. ** !discussion Consistency is good. !ASIS No ASIS effect. !ACATS test No ACATS tests needed. !appendix From the review of Tucker Taft, October 6, 2020 One comment on A.4.6 (3/2): Why is this still a "pragma Pure(Constants);" rather than a "with Pure"? Of course if we change this we need to change A.4.7 (46.2/5) we should talk in terms of "Aspect Pure ... " rather than "Pragma Pure...". **************************************************************** From: John Barnes Sent: Wednesday, October 7, 2020 1:45 AM That was the thing that struck as most untidy about the current situation. We are still lingering in the pragma days when surely we should change them all to aspects. Most of the preelaborates have changed as a consequence of adding nonblocking. **************************************************************** From: Randy Brukardt Sent: Tuesday, October 13, 2020 9:41 PM This occurred mainly because one John Barnes objected to changing library unit pragmas to aspects in Ada 2012. As a result, we left those as pragmas by default, just allowing them to be written as aspects. For Ada 202x, we've changed such pragmas to aspects in the cases where other aspects (which do not have matching pragmas) need to be given in the same place. But we're not changing other library unit pragmas to aspects. Besides being a lot of work, it would cause your major objection to the aspect syntax to occur. Specifically, A.2(2) is: package Ada is pragma Pure(Ada); end Ada; Changing this to an aspect would result in: package Ada with Pure is end Ada; When we (you and I) discussed this a couple of years ago, you decided that you were OK with aspects replacing library unit pragmas so long as "is end" didn't appear -- which it would in this case of an empty parent package. If of course we're going to leave some pragmas rather than converting them to aspects, then it doesn't matter much exactly where that line is drawn. If, OTOH, you've changed your mind about the above, we can discuss changing them all (it probably would add several days to the completion of the RM, since an AI would be required). **************************************************************** From: John Barnes Sent: Tuesday, October 20, 2020 10:39 AM I think we should change them all now. I do still dislike is end. But then I dislike the mixture we have now even more. Over the past weeks I have been doing some updates to my book and In particular changed them all. One can hide the horrid is end by the insertion of a nice comment thus package Ada with Pure is -- as white as driven snow end Ada; ****************************************************************