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.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site cca.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!ucbvax!decvax!cca!creedy From: creedy@cca.UUCP (Christopher Reedy) Newsgroups: net.lang.ada Subject: Re: Ada '88 musings Message-ID: <5458@cca.UUCP> Date: Thu, 2-Jan-86 15:44:45 EST Article-I.D.: cca.5458 Posted: Thu Jan 2 15:44:45 1986 Date-Received: Sat, 4-Jan-86 05:14:25 EST References: <> Reply-To: creedy@cca.UUCP (Christopher Reedy) Organization: Computer Corp. of America, Cambridge List-Id: In article <> stt@ada-uts.UUCP writes: >Here are some proposals for Ada '88, arising from >our use of Ada in building compilers, database managers, etc: > > 1) Support user-defined finalization for > packages and limited types. > 2) Support user-defined assignment for limited types. > 3) Extend identifier visibility rules to eliminate need > for most "use" clauses. . . . >One mechanism for implementing (1) would be as follows: . . . > >Let me be the first to say that the proposed syntax is pretty >ugly, . . . (Let me be the first to agree with you :-) Actually, I like this idea. However, I think you left out support for user defined initialization for limited types. Without this it does not seem possible to determine when an object is uninitialized except for the case of access variables, where the compiler supplies a default initialization. (See comment to #2 below.) > >The implementation of (2) is pretty straightforward, stealing all >the rules from user-defined "=", except that the subprogram spec must be >of the form: > procedure ":="(L : in out LIM_TYPE; R : in LIM_TYPE) is ^^^^^^ > begin ... end ":="; Interesting choice. I would have thought that the proper form of the argument is "out", not "in out". The semantics of "in out" would seem to require that the object be initialized prior to invoking the procedure. This isn't possible if the assignment is specifically intended to initialize the object. This usage might be feasible if there is a defined initialization (compiler or user) for objects of type LIM_TYPE. > >The implementation for (3): >Add a third place to search for identifiers after consulting >"direct" visibility and "use" visibility -- "defining-package" >visibility. . . . I also like this idea. However, in keeping with the general philosophy of Ada that "hidden" defaults should not be a source of confusion to the programmer and maintainer, it would seem that something like a limited form of USE that makes the operator symbols visible without making the entire package visible would be more appropriate. Chris Reedy