im-001 Protected Records/Operator Visibility\Child Packages January 1991/Ada 9X Mapping/Revision Team im-002-3-4 Type Extension/Abstraction Mechanisms/General Access Types Interrupt Handlers/Asynchronous Transfer of Control Multi-Way Select Statement/Exceptions and Frame Finalization Generics/Distribution of an Ada Program June 1991/Ada 9X Mapping/Revision Team lsn-001 HierLib/Hierarchical Libraries (HL) lsn-002 Priorities, Interrupts, and Mutual-Exclusion Offer Pazy/March 25, 1991 lsn-003 Reliance on the Protected Record State Offer Pazy/March 25, 1991 lsn-004 Support for Priority Inheritance Mechanisms Offer Pazy/March 25, 1991. lsn-005 Interrupt Handlers as Protected Procedures Offer Pazy/March 26, 1991 lsn-006 Types, Classes, and Operations Tucker Taft/91-05-30 lsn-007 Implicit Conversions and Class-Wide Operations Tucker Taft/91-05-31 lsn-008 Generic Formal Packages Tucker Taft/91-06-04 lsn-009 Enumeration Extension and Tagged Elementary Types Tucker Taft/91-06-05 lsn-010 Simplifying the OOP proposals Tucker Taft/91-06-05 lsn-011 Real Accuracy Model Tucker Taft/91-06-06 lsn-012 "Ripple" Effect, Preference rules, etc. Tucker Taft/91-06-11 lsn-013 Decimal for Ada 9X Tucker Taft/91-06-01 lsn-014 The Interaction Between Access Types and Universal Tagged Types David Rosenfeld/March 5, 1991 lsn-015 Implicit Conversion and Inheritance Tucker Taft/91-08-11 lsn-016 Summary of Revised OOP-Related Rules Tucker Taft/91-11-04 lsn-017 Access Types and OOP; Dispatching; By-Ref Param Passing; etc. Tucker Taft/91-10-29 lsn-018 General Access Types Tucker Taft/91-10-29 (updated 91-12-10) lsn-019 Generalized Discriminants Tucker Taft/91-10-30 lsn-020 Stream Input/Output Tucker Taft/91-11-05 lsn-021 OOP-Based Object Finalization Tucker Taft/91-11-11 lsn-022 Static A-B-E Checking Tucker Taft/91-11-26 lsn-025 Simplifying Protected Records Tucker Taft/92-02-04 lsn-027 Task Rendezvous in terms of PRs Tucker Taft/92-02-11 lsn-028-dr Alternative to MD 4.0 Hierarchical Library Feature Robert B. K. Dewar/31 Jan 1992 lsn-029 Analysis of Upward Compatiblity/Consistency Tucker Taft/92-03-02 lsn-029-dr Comments on Aspects of Unsigned Integer Types in Ada-9X Robert B. K. Dewar/02 Feb 1992 lsn-030-dr "For All" Extension for Ada Robert B. K. Dewar/16 Apr 1991 lsn-031-dr A Note on Parameter Passing Mechanisms R. Dewar/24 Dec 1991 lsn-032-dr Operator Visibility Robert Dewar/23 Mar 91 lsn-034-dr INTERFACE Pragmas Randy Brukardt, RR Software/1992 March 4 lsn-035-dr Doing Without the Multi-Way Select Ted Baker and Offer Pazy lsn-036-dr Variables and Function Calls with Values Outside Their Declared Subtypes Norman H. Cohen/March 16, 1992 lsn-037-dr INTERFACE pragmas Bevin Brett/92-03-16 lsn-038 Undefined Scalars in Ada 9X Brian Wichmann/1992 Mar 25 lsn-039-ui Evaluation of the Implementation of the Multi-Way Select and Asynchronous Transfer of Control Constructs Tartan Inc/March 23, 1992 lsn-040-ui An Analysis of the Implementation and Execution-Time Impact of Ada 9X Real-Time Features Thomas J. Quiggle & Gary J. Dismukes, TeleSoft/March 23, 1992 lsn-041-ui Runtime Implementation Strategies for Protected Records, Multi-way Entry Call, and Asynchronous Transfer of Control RR Software/21 Mar 92 lsn-042-dr Tasks and ProtectedRecords/Version 4.0 P. N. Hilfinger/19 March 1992 lsn-043-dr Implementing ProtectedRecords in Ada P. N. Hilfinger/19 March 1992 lsn-044-dr Safety and Security Annex B A Wichmann, J McHugh/April 23rd 1992 This is the second draft of the annex. Significant changes are likely as the main core of the Ada 9X language stabilises. If you are in doubt as to the currency of the version of the annex you have, please consult the authors or the Ada 9X Mapping Team. lsn-045-mrt Numerics Annex (Specification), Vers. 4.7 K W Dritz/June 1992 Attached below is my revision of the Numerics Annex (specification) following the last DRs' meeting. The changes have mostly to do with reducing the incompatibilities perceived to stem from the proposed dropping of the 4B Rule; a version of it previously discussed in the Vers. 4.1 Numerics Annex (rationale) has now been incorporated. The other major change has to do with the restoration of the concept of _small_ for fixed-point types, with an appropriate default rule. The major changes are marked in the margin with change bars. The rationale, which I will send separately, has a major discussion of the issues surrounding the incorporation of a version of the 4B Rule (which, by the way, should now be called the 4D Rule). lsn-046-mrt Numerics Annex (Rationale), Vers. 4.7 K W Dritz/June 1992 Attached below is my revision of the Numerics Annex (rationale) following the last DRs' meeting. I sent the specification separately a little while ago. The major changes are marked in the margin with change bars. 920902: 2 requests from Jean Ichbiah lsn-047-dr a study of UPWARD COMPATIBILITY lsn-048-dr THE SYNTAX OF OBJECT-ORIENTED FEATURES 92-September-2 Jean D. Ichbiah This note concentrates on syntactic issues. Here I will address the syntactic issues of object-oriented features. From a semantic point of view, the semantics built for type extension fit very nicely with the concept of derived types. From a syntactic point of view, there may be room for improvement and for better integration with other features of Ada. lsn-1033-mrt On Multiple Inheritance on Ada 9X Tucker Taft, MRT 1992 Sep 2 This Language Study Note discusses the creation of multiple inheritance type (semi-)lattices using the proposed Ada 9X object-oriented programming features. It is in part directed at programmers familiar with other object-oriented programming languages that build in syntax for a particular multiple-inheritance mechanism, rather than simply providing features needed to support it. LSN1034.TaskAttr User-defined Task Attributes Tucker Taft - MRT Sep 22, 1992 Here is an attempt to design a "task attribute" package that provides for multiple attributes per task (up to some implementation-defined, potentially configurable, limit). LSN1035.OpVis Operator Visibility in Ada 9X Bob Duff - MRT Oct 8, 1992 This Language Study Note discusses operator visibility via the use_type_clause. LSN1036.WithPrivate The With-private Proposal in Ada 9X Bob Duff - MRT Oct 8, 1992 This Language Study Note discusses the with-private proposal, and related proposals, whose purpose is to allow more programmer control over access to private information. LSN1037.PrefRules The Perference Rules in Ada 9X Bob Duff - MRT Oct 8, 1992 This Language Study Note discusses the preference rule of Ada 9X, which replaces the rule of RM83-4.6(15). LSN1038.DefCon Deferred Constants of Any Type Bob Duff - MRT Oct 8, 1992 This Language Study Note discusses the Ada 9X ability to declare deferred constants of any type. LSN1039.StaticExp Static Expressions in Ada 9X Bob Duff - MRT Oct 8, 1992 This Language Study Note discusses static expressions in Ada 9X. The Ada 83 RM does not make it clear whether or not basic operations, such as 'in' and 'and then', are allowed in static expressions. AI-00128/04, a binding interpretation, disallows basic operations in static expressions. LSN1040.TaskId Task Indentification in Ada 9X Bob Duff - MRT Oct 14 13:10 This Language Study Note discusses task identification in Ada 9X. The concensus on task identification is that Ada 9X needs to define a standard data type that represents an assignable handle on a task. This LSN discusses two alternative mechanisms. LSN1041.LibUnitElab Library Unit Elaboration in Ada 9X Bob Duff - MRT Oct 10, 1992 This Language Study Note discusses our current thinking on order of library unit elaboration in Ada 9X. LSN1042.ScopeChecksInGenerics Accessiblilty Checks in Generics Bob Duff - MRT Oct 14, 1992 This Language Study Note discusses accessibility checks, and their relationship to the Ada 9X version of the generic contract model. LSN1043.Limited Limited Function Results in Ada 9X Bob Duff - MRT Oct 12, 1992 This Language Study Note discusses the issues of parameter passing and function return for limited types. LSN1044.TaskDisc Task Parameterization in Ada 9X Bob Duff Oct 10, 1992 This Language Study Note discusses the issue of parameterizing tasks in Ada 9X. We consider three alternatives: Alternative 1: Task types should not have parameters. Alternative 2: Special 'Index Attribute. Alternative 3: Use the task id. Alternative 4: Task Discriminants. LSN1045.TaggedTypeIssues Tagged Types and Object-Oriented Programming in Ada 9X Tucker Taft - MRT Oct 18, 1992 This Language Study Note discusses the OOP features of Ada 9X that relate to tagged types. Although there are other features that support OO concepts (such as "package extension" via child packages, formal packages, formal derived types), we will focus on the "classic" features of OOP relating to inheritance and polymorphism. This LSN is fairly wide-ranging, because trying to cover a single syntax or semantics issue in isolation can miss the important integration and consistency issues. Furthermore, we want to discuss the fundamental model for OOP in Ada 9X, and repeating such a discussion in multiple LSNs would just be confusing. We will try to use capitalized headings to help the reader quickly find the section of most interest to him/her. LSN1046.Finalization Finalization in Ada 9X Bob Duff Oct 10, 1992 This Language Study Note discusses User-defined Finalization. At the Frankfurt WG9 meeting, the concensus was that finalization should be kept in the language, and should be moved to the core language. (It was at that time in the SP Annex.) However, two countries voted that the MRT should study the issue of removing a certain restriction from the proposal, and we heard the same concern from several DRs. This LSN addresses that concern. LSN1047.Protected Simplification of Protected Objects in Ada 9X Bob Duff - MRT Oct 10, 1992 This Language Study Note discusses certain simplifications of protected objects made since MS;4.0. The terminology is changed. These things are no longer called protected records. Instead, we have protected types and protected objects. This change was made because to the client of a protected object, the object is not a record -- there are no (visible) components to access, record_aggregates are not allowed, and so on. LSN1048.RequeueSimp Requeue Statements Simplifications Bob Duff - MRT Oct 14, 1992 This Language Study Note discusses certain simplifications of requeue statements that have been considered by the MRT. At the Frankfurt WG9 meeting in April, the consensus was that the requeue statement should be supported in Ada 9X. However, it was also suggested that the MRT study simplifications of the requeue statement. LSN1049.ATCSimp ATC Simplifications Bob Duff - MRT Oct 14, 1992 This Language Study Note discusses certain simplifications of the asynchronous transfer of control (ATC) facility of Ada 9X. The consensus at the Frankfurt WG9 meeting in April was that ATC should be in the language, but that the MRT should try to simplify it as much as possible. One specific concern was that we should make sure it is feasible to support the "two thread" implementation model, which has been proposed by Brian Dobbing (in addition to other implementation techniques, of course). LSN1050.AccessDisc Access Discriminants in Ada 9X Bob Duff - MRT Nov 4, 1992 This Language Study Note discusses access discriminants in Ada 9X. First, I show a simple example to illustrate the feature. Then, I discuss the semantics of the feature, and contrast it with other features (such as plain old record components that happen to be of an access type). Finally, I give several more examples, to show various situations in which access discriminants are necessary or useful. LSN1051.ComplexNumbers Choices for Complex Arithmetic Tucker Taft - MRT Nov 4, 1992 This LSN discusses the current state of proposals for complex arithmetic, both as independent ISO standards and in Ada 9X. It focuses on the relative merits of competing alternatives and makes recommendations for which I am seeking concurrence. LSN1056.Clone Limited Function Return and User-defined Clone Bob Duff - MRT Nov 5, 1992 LSN-1043 proposed a semantics for function return of inherently limited types that some have found unpalatable. For example, some people are uncomfortable with the idea of "deferred finalization", while others are concerned about the implementation of lazy stack cutting. On the other hand, we can't avoid the fact that for some kinds of types (e.g. finalizable types), a bit-wise copy simply won't work. Disallowing function return altogether for these kinds of types would be intolerable. LSN1057.C++Mapping !topic LSN on a Mapping between C++ and Ada 9X !key LSN-1057 on a Mapping between C++ and Ada 9X !reference MS-3.4.1;4.6 tagged types and type extension !reference MS-3.6.1;4.6 access discriminants !reference MS-3.9;4.6 general access types !reference MS-6.1;4.6 access parameters !from Tucker Taft $Date: 92/09/02 17:44:17 $ $Revision: 1.1 $ !discussion This LSN explores some of the issues in mapping between C++ and Ada 9X types and calling sequences. It is by no means complete, but it hopefully represents a good starting point. LSN1058.ATCRestrict !topic LSN on Single Statement Restriction for ATC !key LSN-1058 on Single Statement Restriction for ATC !reference MS-9.9.4;4.6 !from Bob Duff $Date: 92/12/15 16:19:12 $ $Revision: 1.2 $ !discussion This Language Study Note discusses a restriction on the abortable part of the asynchronous select statement (ATC, for "asynchronous transfer of control"). The restriction was suggested at the November ISO/WG9 meeting in Salem. This LSN is in response to resolution number 10-7 of the Salem meeting. Given that ATC is in the language, we must work to make it as usable, and as implementable, as possible. When usability and implementability conflict, we must make sensible trade-offs. LSN1059.TaskIdChecks !topic LSN on Dangling Task Id Checking !key LSN-1059 on Dangling Task Id Checking !reference MS-G.5.2;4.9 !from Bob Duff $Date: 92/12/16 15:49:14 $ $Revision: 1.2 $ !discussion This Language Study Note discusses the issue of dangling task ids. At the November ISO/WG9 meeting in Salem, it was agreed that task identifiers should be of some special type, and that attribute notation should be used to get the id of a given task. This left one open issue, which is whether or not run-time checks should be done to prevent access through a dangling task id. It was agreed to "let the MRT decide." The purpose of this LSN is to document our decision. The resolution is number 10-2 of the Salem meeting. LSN1060.LLPrims !topic LSN on Low-Level Primitives in the RT Annex !key LSN-1060 on Low-Level Primitives in the RT Annex !reference MS-H;4.6 !reference MS-13;4.6 !from Offer Pazy $Date: 92/12/16 16:08:28 $ $Revision: 1.4 $ !discussion This Language Study Note discusses the issue of introducing low-level primitives in the real-time annex. This LSN is in response to resolution number 3-4 of the ISO/WG9 Salem meeting. LSN1061.TaskAttr !topic LSN on Multiple Task Attributes !key LSN-1061 on Multiple Task Attributes !reference MS-G.5 !from Offer Pazy $Date: 92/12/16 15:52:44 $ $Revision: 1.6 $ !discussion This Language Study Note discusses the issues of supporting multiple task attributes in the Systems Programming annex. This LSN is in response to resolution number 9-E of the ISO/WG9 Salem meeting. LSN1062.Assert !topic LSN on Assert !key LSN-1062 on Assert !reference MS-K;4.9 !from Brian Wichmann $Date: 92/12/16 16:06:06 $ $Revision: 1.5 $ !discussion This Language Study Note discusses pragma ASSERT. It is in response to resolution number 10-3 of the Salem ISO/WG9 meeting. It is written in LaTeX format. Remove the ",a4wide" if you are printing on 8.5x11 inch paper. LSN1063.PrefRule !topic LSN on Ada 9X Preference Rule !key LSN-1063 on Ada 9X Preference Rule !reference MS-8.7;4.6 !reference RM83-4.6(15) !from Bob Duff $Date: 92/12/16 15:49:29 $ $Revision: 1.4 $ !discussion This Language Study Note is an update to LSN-1037. It addresses resolution number 9-8, "Preference Rule", from the Salem WG9 meeting. LSN1064.UDA !topic LSN on User-defined Initialization/Finalization/Assignment !key LSN-1064 on User-defined Initialization/Finalization/Assignment !reference MS-7.4.5;4.6 !reference LSN-1056 on Limited Function Return and User-defined Clone !reference LSN-1059 on Dangling Task Id Checking !from Bob Duff $Date: 92/12/16 15:49:30 $ $Revision: 1.4 $ !discussion This Language Study Note is an update to LSN-1056 on Limited Function Return and User-defined Clone. At the November ISO/WG9 meeting in Salem, the approach of LSN-1056 was tentatively approved (unanimously). Since the idea was so new, the MRT was directed (by resolution number 10-6) to study its impact on the rest of the language, and on implementations. This LSN is in response to that resolution. LSN1065.CompilerControl !topic LSN on Compiler control via Pragmas !key LSN-1065 on Compiler control via Pragmas !reference MS-K;4.6 !from John McHugh $Date: 92/12/29 18:20:21 $ $Revision: 1.1 $ !discussion LSN on Compiler control via Pragmas John McHugh Co-author Safety and Security Annex 21 Dec 1992 ms-4.6 ADA 9X SNAPSHOT OF MAPPING SPECIFICATION PRIOR TO REVISION Version 4.6, 21 May 1992 (TEXT FILE) IR-MA-1250-3 Ada 9X Mapping/Revision Team, Intermetrics, Inc. This report has been produced under the sponsorship of the Ada 9X Project Office under contract F08635-90-C-0066. It is provided for the Ada 9X Volunteer Reviewers to show our current progress in addressing the recommendations of the recent ISO WG9 and Ada 9X DR meetings. This document has not undergone the full quality control process, and should be considered a working draft. This document may be reproduced provided it is accompanied by this paragraph. Please see the Reader's Guide (Chapter 0) for more information. ms-4.6.ps ADA 9X SNAPSHOT OF MAPPING SPECIFICATION PRIOR TO REVISION Version 4.6, 21 May 1992 (POST SCRIPT) IR-MA-1250-3 Ada 9X Mapping/Revision Team, Intermetrics, Inc. This report has been produced under the sponsorship of the Ada 9X Project Office under contract F08635-90-C-0066. It is provided for the Ada 9X Volunteer Reviewers to show our current progress in addressing the recommendations of the recent ISO WG9 and Ada 9X DR meetings. This document has not undergone the full quality control process, and should be considered a working draft. This document may be reproduced provided it is accompanied by this paragraph. Please see the Reader's Guide (Chapter 0) for more information.