From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!AJPO.SEI.CMU.EDU!nyberg From: nyberg@AJPO.SEI.CMU.EDU (Karl Nyberg) Newsgroups: comp.lang.ada Subject: Ada9X Revision Requests Categorization, part 1 Message-ID: <9003082250.AA29570@ajpo.sei.cmu.edu> Date: 8 Mar 90 22:50:08 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet List-Id: [Ed - this was missing a "-" before] Subject: Ada9X Revision Requests Categorization, part 1 Date: Thu, 08 Mar 90 05:09:02 EST From: deilers@ajpo.sei.cmu.edu The Ada 9X project has collected 774 revision requests during the one-year request period which ended 31 October 1989, and made these available to the public, both on-line and in hard-copy form. The on-line versions have all been available since 5 January 1990 via ftp on ajpo.sei.cmu.edu in ~ftp/public/ada9x/revision.requests, or on the Ada 9X electronic bulletin board (1-800-Ada9X25). Complimentary hard-copies of the first 150 requests (those submitted before 25 July 1989) have been available from the Ada Information Clearinghouse (Gil Austin at 703/685-1477 or Susan Carlson at 301/459-3711 or email to ada9x@ajpo.sei.cmu.edu) since August 1989. A hard-copy of requests 151-774 was displayed 7 February 1990 at the AdaJUG conference in San Diego. It is about 5 inches thick. The AdaIC apparently intends to mail complimentary copies of this to everyone who requested the first volume, and any others who request it, although I do not know of anyone who has actually received their copy yet. The requests are numbered 1 to 774 in the order in which they were received. The hard-copy version is organized by RM section number, which makes it somewhat more digestible. (The hard-copy version is also a lot prettier than the on-line requests, as a result of a lot of work standardizing the various styles used, and adding missing titles, etc.). It also includes a keyword index, a page-number-title index, a title-page index, a author-page index, and a submitting organization-page index. On-line, there are 5 reports available: a table of number of requests per LRM chapter, a number-author-phone-address-LRM_reference-status index, a LRM_reference-author-number index, a status-author-LRM_reference-number index, and a number-byte_size-date-author-LRM_reference index. Status is described as "received, accepted, etc." and is always "received", (except in one case where it is "RECEIVED" which sorts to the top of the status-author-LRM_reference-number index :-) ). The on-line reports currently cover only the first 150 requests. Despite all the indices, it is difficult to find related requests or to estimate the number of unique requests. The LRM references supplied are somewhat helpful, but often inconsistent. For example, some requests for object-oriented capabilities reference chapter 3 (types), and others reference chapter 7 (packages). Many titles are also overly general, such as "exception handling". And some requests with similar sounding titles are actually describing distinct issues, and vice versa. Instead of waiting for the Requirements Team to sort this all out (according to the February 1990 Ada9X Public Report, their first report is scheduled for early April 1990), I have attempted to do it myself. The results are a list of 368 distinct issues, sorted by LRM section number, and a table of closely related requests, sorted by frequency of submittal. The two most frequent requests relate to object-oriented capabilities, and passing subprograms as parameters, with 17 requests each. Also, some trivia: request #585 doesn't exist; request #407 contains two separate requests. About a dozen requests are exact duplicates (these should be, but are not noted). A few requests are of the form "do not add feature x". In the list of closely related requests, these also should be, but are not distinguished. Some requests come from individuals, others come from groups, including SIGAda ALIWG, SIGAda ARTEWG, JIAWG, Ada UK, Ada Europe, and the Canadian AWG. These group submittals probably should be, but are not noted. Much of the categorization is subjective. When a request discussed two or more separable issues, I tended either to group it with the least frequent of the issues discussed, or to combine those issues into one larger issue. Some of the frequently requested issues are more the result of such combinations than of similar requests. I apologize in advance to any request author whose intent I may have misunderstood, or whose request I may have mis-categorized. I would be happy to correct any such mistakes. -- Dan Eilers, Irvine Compiler Corp. (No connection to Ada9X project) Distinct Ada 9X Revision Requests (Unofficial List) 368 total # RM Title Chapter 1 681: 1. Ada line of code (ALOC) standard 189: 1.1.1(5) Standard numerical package 136: 1.1.1(5) Standard bit-level shift/rotate package 51: 1.1.1(5) Standard general purpose packages 314: 1.1.2 Standardize diagnostics 325: 1.1.2 Allow controlled subsets and supersets 326: 1.5 More flexible notation for syntax 42: 1.6 Compile-time detection of erroneous/suspicious constructs 236: 1.6 Static semantics and support for formal analysis Chapter 2 34: 2.1 Use 8-bit ASCII 528: 2.1 Pronunciation of symbols 251: 2.1 Use of parentheses for multiple purposes 504: 2.2 Proposal for an exchange operator 126: 2.4 Underscore before exponent part of numeric literals 391: 2.4.2 Clumsy syntax for based numbers 210: 2.8 Maintenance/documentation pragmas 397: 2.8 Meaning of keyword "pragma" is non-obvious 211: 2.8 Required warnings for unrecognized/ignored pragmas 386: 2.8 No means to turn optimization off 322: 2.9 Do not add new reserved words to the language. 619: 2.10 Elimination of replacement characters Chapter 3 12: 3. Inheritance, polymorphism and object-oriented extensions 166: 3. Lack of literal representation for abstract data types 458: 3. Weakly-typed calls 168: 3. Inability to define destructors 510: 3. Need "sequence" type with fixed lower bound 522: 3. Allow discriminant of arbitrary non-limited type 679: 3. Component selection as a function 129: 3. Allow default initialization for all types 117: 3.1 Elaboration overhead 94: 3.2 Identifier lists 321: 3.2 Anonymous array, record, and access types 3: 3.2 Finalization for types and packages 246: 3.2.1 The meaning of constants in Ada 247: 3.2.1 Implicit code/action generation 653: 3.2.1 Runtime constants 100: 3.2.1(2) Constants cannot use default values 31: 3.3.2(2) Non-contiguous subsets of discrete types 190: 3.3.3 Utility of attribute 'base should be expanded 248: 3.3 Control over storage location of discriminant 350: 3.3(6) Implication that values can be assigned to types 529: 3.3.1 Insufficient type descriptor access 52: 3.4 Multiple type derivations 80: 3.4(17) Derived types are clumsy 354: 3.4 Physical data types (dimensions) 252: 3.4 Ada support for ANSI/IEEE STD 754 (including NaN) 482: 3.4(11) Provide explicit subprogram derivation 558: 3.4 Making derived subprograms unavailable 560: 3.4 Access to implementation of derived types 234: 3.5 Null ranges 389: 3.5 Inconvenient handling of cyclic scalar types 155: 3.5 Permit 'range for scalar types 220: 3.5.1 Enumeration literal integer codes 45: 3.5.4 Double-wide intermediate results for integer multiply 44: 3.5.4 Unsigned integers 365: 3.5.4 Implementation options lead to non-portability 122: 3.5.4(6) Limitation on range of integer types 135: 3.5.4(6) Catenation operation for one-dimensional constrained arrays 495: 3.5.5(10 Leading space in the 'image attribute for integer types 144: 3.5.6 Support for configurations without floating point co-processors 253: 3.5.6 Digits to specify real number accuracy and precision 425: 3.5.7 Open ranges for real types 225: 3.5.7 Relation between mantissa and exponent size 637: 3.5.7 The status of floating-point "minus zero" 720: 3.5.7 Improve on the Brown floating point model 61: 3.5.7(8) Floating point must include long_float and short_float 564: 3.5.7(9) Safe numbers for floating point types 255: 3.5.8 T'epsilon is inadequate for real, floating point numbers 24: 3.5.8 Portable access to floating point exponent/mantissa 358: 3.5.8 Numeric operators floor, ceiling not predefined 363: 3.5.8 Adding attributes 'image and 'value to floating point types 191: 3.5.9 Mantissa of fixed point types unreasonably small 256: 3.5.9 Fixed point scaling and precision 565: 3.5.9 Determining 'small for fixed point types 733: 3.5.9 Uniform representation of fixed point precision for all ranges 357: 3.5.9 Decimal 566: 3.5.9(6) Fixed point model numbers 567: 3.6.1(6) Obtain constraints from a variable's initial value 54: 3.6.3 Variable length strings 713: 3.6(2) Provide a unification of constrained and unconstrained arrays 86: 3.7 Reference to self in initial value expression 568: 3.7(2) Multiple non-nested variant parts for record types 596: 3.7(2) Ending record declarations with type name itself 532: 3.7(3) Distinct identifiers for record components 212: 3.7.1(9) Assignment to a discriminant 473: 3.7.2 Partially constrained discriminated subtypes 531: 3.7.2 Nested variants don't work well 27: 3.7.4 Addition of attributes for record types 197: 3.8(5) Parameter modes with access types (constants) 238: 3.8 Pointers to non-heap (constant) objects 18: 3.8(8) Static ragged arrays 98: 3.8.1 Mutually dependent types other than access 259: 3.8.1 Allow forward references instead of incomplete types 533: 3.8.1 Incomplete types can't be used across packages 112: 3.8 Automatic garbage collection 702: 3.8 Heap management improvements 726: 3.8(8) Non-contiguous arrays 260: 3.9 Many descriptions in the reference manual need to be clarified 261: 3.9 Program error raised for subprogram elaboration 32: 3.9 Relax declaration order restrictions Chapter 4 53: 4. Aggregate for null records and null arrays 308: 4. Array operations 7: 4.1.4(4) Add attribute to access internal code of enumeration literal 323: 4.1.2(3) Slices of multidimensional arrays 640: 4.1.2 Operations on bit-vectors and bit-arrays (find first bit) 406: 4.1.4(4) User defined attributes 570: 4.1.3 Allow prefix of a name to denote a renamed enclosing construct 29: 4.3.2 Others choices in array aggregates, sliding 240: 4.3.1(3) Component associations are more restrictive than assignment 264: 4.3 Discriminants appear like variables 341: 4.3.1(2) Non-static discriminants in variant record aggregates 152: 4.4 Allow a < b < c 265: 4.4 Short circuit 266: 4.4 Limiting overloading 536: 4.4 Scalar operators min, max not predefined 638: 4.5 Axioms to be obeyed by built-in operations 11: 4.5.6(6) Exponents of zero by a zero exponent 102: 4.5.5 Remainder divide for real numbers 537: 4.5.5 Multiplying operator "/" 400: 4.5.5 Fixed multiplication & division with universal real operands 401: 4.5.7 Accuracy required of composite fixed-point operations 572: 4.5.5(7) Operators for all predefined integer types 680: 4.5.6(4) Integer exponents 213: 4.6(7) Predictability of rounding 351: 4.8(7) Scrubbing memory for trusted computing base systems 9: 4.9(2) Allow more expressions/types to be classified as static 452: 4.9 Constant (and static) functions 639: 4.9 Large and/or complex constants Chapter 5 618: 5.1(7) Elimination of goto construct 49: 5.2 Reference to variable names on lhs and rhs of assignment 199: 5.3(2) Optional names for case, if, and select 312: 5.4 Case statements supporting decision tables 320: 5.4 Real/string case expressions 317: 5.5 Extend loop iteration constructs 221: 5.6(2) Common processing to exception handlers of the same frame 491: 5.6 Exit statement to complete execution of block statement 538: 5.7 Preventing exit and return in a loop 625: 5.7(2) "when" with return and raise statements 620: 5.8 Elimination of return statement except in functions -- continued in next message --