!standard 15.24 07-02-10 SI99-0027-1/01 !class presentation !status work item 07-02-10 !status received 07-02-10 !priority Medium !difficulty Easy !subject Obsolescent features should have their own annex !summary Obsolescent features of ASIS should be given in a separate, normative Annex for ASIS, not in the main body of the standard. !question 15.24 defines an obsolescent feature of ASIS, as do some other SIs. Should these be moved to an obsolescent features Annex, similar to the one in the Ada Standard? (Yes.) !recommendation (See summary.) !wording Clause 15.24 is deleted. Create a new Annex F. The first clauses in it should be: F.1 Annex Contents This Annex contains descriptions of features of ASIS whose functionality is largely redundant with other features defined by this International Standard. Use of these features is not recommended in newly written programs. F.2 Obsolescent Features in package Asis.Declarations F.2.1 Introduction for Obsolescent Features in package Asis.Declarations The library package Asis.Declaration also shall provide interfaces equivalent to the obsolescent ones described in the following subclauses. F.2.2 function Body_Block_Statement Function Body_Block_Statement is a query that supplies the equivalent combined functionality of the replaced queries from an earlier edition of this standard: Subprogram_Body_Block, Package_Body_Block, and Task_Body_Block. Use of the query Body_Block_Statement is not recommended in new programs. This functionality is redundant with the queries Body_Declarative_Items, Body_Statements, and Body_Exception_Handlers. function Body_Block_Statement (Declaration : in Asis.Declaration) return Asis.Statement; Declaration specifies the program unit body to query. Returns a block statement that is the structural equivalent of the body. The block statement is not Is_Part_Of_Implicit. The block includes the declarative part, the sequence of statements, and any exception handlers. Expected Declaration_Kinds: A_Function_Body_Declaration A_Procedure_Body_Declaration A_Package_Body_Declaration A_Task_Body_Declaration An_Entry_Body_Declaration Returns Statement_Kinds: A_Block_Statement NOTE This function is never called by Traverse_Element. AASIS Usage Note: This function is intended for compatibility with ASIS 83. !discussion The new annex is organized to avoid "hanging paragraphs", as defined by the standard for drafting of International Standards. This rule means that we cannot put text into clauses that have subclauses. (We'll have to reorganize the rest of the standard to meet this rule as well.) Our tools require unique subclause names (the cross-references are implemented by name). Thus, we have the longer subclause names. Note that the text for the obsoloscent section has been edited slightly to remove invalid reference to ASIS 83 from the normative text (you can only talk about previous standards in vague terms), to remove redunant repeats of "not recommended for new programs", and to eliminate "new query", because this is not new. The drafting standard allows informative and normative annexes to be given in any order. (The required order is that "cited in the text", which is satisified trivially by the list of annexes given in 1.1.2.) This change removes material that should be of interest only to legacy programmers from the main body of the standard. !appendix From: Minutes of Albuquerque ARG meeting Randy wonders what we’re going to do with obsolete functions and types. They’ll need to be marked somehow; we’ve made many of these but haven’t discussed what form that marking will take. Perhaps we need an annex like the one in the Ada Standard? Yes, we need something like Annex J for ASIS. As with Annex J, the idea is that new code will avoid these features, while existing code can continue to use them. **************************************************************** From: Randy Brukardt Sent: Tuesday, February 6, 2007 12:12 AM Working on the application notes, I've found at least one function (Body_Block_Statement - 15.24) that has a note that says it is obsolescent. [Editor's note: That is the only one.] I presume that we need to write an SI to move these into the new obsolescent features section. (I don't see any reason to move some, but not all, obsolescent features.) ****************************************************************