Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!longway!std-unix From: jsh@usenix.org (Jeffrey S. Haemer) Newsgroups: comp.std.unix Subject: Standards Update, IEEE 1003.5: Ada-language Binding Message-ID: <492@longway.TIC.COM> Date: 5 Jan 90 02:38:11 GMT Sender: std-unix@longway.TIC.COM Reply-To: std-unix@uunet.uu.net Organization: USENIX Standards Watchdog Committee Lines: 144 Approved: jsq@longway.tic.com (Moderator, John S. Quarterman) From: Jeffrey S. Haemer An Update on UNIX* and C Standards Activities December 1989 USENIX Standards Watchdog Committee Jeffrey S. Haemer, Report Editor IEEE 1003.5: Ada-language Binding Update Ted Baker reports on the October 16-20, 1989 meeting in Brussels, Belgium: The P1003.5 group is producing an Ada-language binding for 1003.1. The Brussels meeting had two objectives: to reach consensus on a draft document to be distributed for mock ballot, and to solicit input from the European community. We achieved the first but not the second; only one of the ten attendees was European (Olle Wikstrom, from Ericsson). The technical editor (David Emery) and the chapter authors had worked very hard between meetings to produce version 3.2 of the document, and Dave brought copies to the meeting. The working group reviewed it to try to correct any serious errors or omissions before mock ballot. There was a lengthy discussion about schedule and logistics for the mock ballot. The present plan is to send out copies of the next draft, in ISO format, to both the ISO and the entire 1003.5 mock- ballot mailing list. [Editor's note: All committees are re-formatting their documents in ISO format to smooth the way for ISO acceptance (see Dominic Dunlop's report on WG15 for more details), and an IEEE copy editor appeared on the scene in Brussels to give P1003.5 guidance and help in this.] Since there is no way that enough input can be received before the next POSIX meeting, in January, the group has scheduled a special meeting for mock ballot resolution, between the January and April POSIX meetings, to be held in Tallahassee. The objective will be to produce a proposed standard to be reviewed at the April meeting. Most technical issues discussed were minor, compared with previous meetings. The most significant, and complicated, was the treatment of system configuration limits. Here are three problem areas: __________ * UNIX is a registered trademark of AT&T in the U.S. and other countries. December 1989 Standards Update IEEE 1003.5: Ada-language Binding - 2 - 1. Tri-state configuration parameters (true, false, undefined) in the POSIX C binding need to be treated differently in the Ada binding, because Ada prohibits references to undefined symbols. (I.e., Ada lacks an "#ifdef" facility.) 2. For the same reason, it isn't clear how an Ada binding can accommodate future POSIX extensions. Suppose, for example, a future extension adds a new configuration constant. How does one write an Ada program that takes advantage of the new feature on implementations where it's available without preventing the same program from compiling on older implementations, where it's not? 3. Because Ada compilers can do optimizations, such as dead code elimination, based on static expressions (the nearest analog to some C preprocessor capabilities), it is important to provide compile-time constants, where safe. At the same time, to support "bubble pack" software that is usable on different system configurations, programs should also be able to defer binding such values until run time. The group did achieve consensus on a treatment of configuration limits for the mock ballot. It includes a combination of functions, to allow software to defer resolution of system limits and characteristics until runtime, and implementation-defined constants and numeric ranges, to allow optimizers to take advantage of information available at compile time. This does not fully solve all the problems mentioned above. Perhaps the mock ballot process will turn up some suggestions for improvements. The treatment of process arguments and environment variables, which must be provided as parameters when starting a new process or calling Exec produced another controversy. Unlike C, Ada does not allow pointers to stack or statically allocated objects. An Ada POSIX interface implemented over a C-language binding must bridge this gap somehow. For example, an implementation might use a C-compatible data structure and hide the non-Ada details, or use an Ada data structure and translate between the two forms. Everyone agreed that the interface should avoid constraining the implementation, but the first interface solutions appeared to rule out desirable implementations. The present solution permits an application to insure that if the Ada POSIX interface machinery allocates any "heap" storage this storage is be recovered, while allowing an implementation to impose restrictions that would permit stack allocation. A price paid for this compromise is that writing portable applications takes more care: an application that works OK with one implementation may lose storage or exceed size limits with another. At the previous two meetings, we had substantial interaction both with December 1989 Standards Update IEEE 1003.5: Ada-language Binding - 3 - other groups working on language-independence and with P1003.4 (real- time). There was much less this time, partly because the group was concentrating so hard on getting ready for mock ballot, partly because meetings were spread over several buildings, and partly because P1003.4 mostly skipped Brussels. On the administrative side, Steve Deller was promoted from Vice Chairman to Chairman (in charge of external affairs and running meetings) and Jim Lonjers was chosen as Vice Chairman (in charge of administering ballot resolution). This change was required because the ex-Chairman (Maj. Terry Fong) has been unable to participate regularly in the working group recently, owing to conflicts with his professional duties. Another issue that came up was whether working group members are at liberty to publish papers or present talks on the 1003.5 work. The answer is, "Yes." Until now, some members have been exercising self- censorship, based on an earlier agreement designed to discourage anyone (e.g., defense department personnel) from making commitments (e.g., requiring use of the POSIX Ada binding in contracts) based on erroneous (e.g., overly optimistic) progress reports. It did not take much discussion to agree that such censorship is now counterproductive, and may never have been wise. At this point, P1003.5 certainly wants public exposure of its draft document, and hopes that such exposure will generate more reviewers and active working group members. December 1989 Standards Update IEEE 1003.5: Ada-language Binding Volume-Number: Volume 18, Number 2