Minutes from ASISWG/ASISRG Meeting of 11-12 March in Ft. Lauderdale FL, USA The Ada Semantic Interface Specification Working Group (ASISWG) and the Ada Semantic Interface Specification Rapporteur Group (ASISRG) met all day Monday and Tuesday (11-12 March) at Harris Computer Systems Corporation in Ft. Lauderdale, Florida, USA. The following people attended: Steve Blake, Thomson Software Currie Colket, SPAWAR Dan Cooper, Boeing Dan Rittersdorf, Harris Computer Systems Corporation Clyde Roby, IDA Sergey Rybin, Swiss Federal Institute of Technology Steen Silberg, DDC-I The primary goal of this meeting was to produce an ASIS specification for Ada 95 that will become the Committee Draft (CD) to be submitted to ISO/IEC SC22 WG9 for the ISO Standardization process by the end of April. Minutes and Action Items from November Meeting The minutes of the November 1995 meeting were accepted and approved by a formal motion and vote. The Action Items from the November 1995 meeting were reviewed (these are available on the AJPO's SW-Eng host). As one of our lesser decisions from this meeting, we decided upon a logo for ASIS. Be sure to drop by our updated ASISWG page to see it. ISO Standardization of ASIS The ISO/IEC JTC1/SC22 recently completed their ballot on 2 February 1996. The SC22 Ballot on the ASIS New Work Item (NWI) (N1943) closed with a tally of: 16 P members - approval without comment (Belgium, Brazil, Canada, Czech Republic, Denmark, Finland, France, Germany, Japan, Netherlands, Slovenia, Sweden, Switzerland, UK, Ukraine, and USA) 0 P members - approval with comment 0 P members - supporting disapproval 1 P Member - abstaining (Austria) with reason "Lack of Experts" 5 P members - not voting (Australia, Bulgaria, China, Greece and Romania) 1 O Member - approval without comment (Republic of Korea) The ASISRG is very pleased to have 16 P members approving without comment. ISO has an Observer member (or O member) status. An O member apparently can vote, but the vote is not counted by ISO. Consequently we are very pleased that the Republic of Korea (an O member) voted for approval without comment. We have been told that the SC22 Ballot is the most critical for establishing an approved NWI at ISO. However, JTC 1 will also have a ballot for the NWI. Their approval is vitally important as without their approval, there is no path to achieving an ASIS International Standard to Ada 95. The JTC1 ballot close date has not been established yet, but should be about 3-4 months hence (i.e., from early February). The first real step towards getting an international standard is to submit a Committee Draft (CD). Our latest ASIS for Ada 95 draft specification is ASIS Version 2.0.F. This version will be submitted to WG9 for their approval. Dr. Bob Mathis, chair of WG9, has agreed to a WG9 ballot on 14 June 1996 (at the WG9 meeting in conjunction with Ada Europe'96), providing we can produce the draft CD for distribution to WG9 members by early May. After the CD is approved by WG9, it must go up for SC22 approval and JTC1 approval. Comments are incorporated into a Draft International Standard (DIS) again going up the chain with ASISRG approval, WG9 approval, SC22 approval, and JTC1 approval. If all this happens before the next Ada standard is approved, we will then have our first ASIS International Standard. An optimistic ASIS schedule for ISO standardization (see below) was discussed. Once a Committee Draft (CD) is submitted, then ASISWG/ASISRG must formally address all comments. The ISO standard document template for ASIS was distributed. Of course, many sections will have to be completed. Expected ASIS Schedule for ISO Standardization As can be seen by the following schedule, we are still looking for an ISO approved standard ASIS 95 in the 1997-98 time frame. Dec 93 AJPO recommends ASIS V1.1.0 (ASIS 83) be used as interface to Ada 83 Program Library Mar 94 Design Goals for ASIS 95 identified Jun 94 ASISWG finalizes ASIS 83 as V1.1.1 with test suite Jun 94 Evaluate design approaches for ASIS 95 Nov 94 Finalize approach for ASIS 95 Nov 94 Categorize outstanding ASIS 83 deferred issues Nov 94 Proposed KINDS for ASIS 95 Feb 95 ASIS Home Page on WWW established http://www.acm.org/sigada/WG/asiswg/asiswg.html Mar 95 Finalize ASIS 95 Kinds Mar 95 Provide ASIS 95 in Skeleton format Mar 95 Organize ASIS 83 Deferred Issues and Current Issues Apr 95 ASISRG created unanimously by ISO/IEC JTC1/SC22 WG9 Jun 95 Approved initial ASIS 95 Element_Kind Type Hierarchy Jun 95 Approved changes to ASIS 83 to produce ASIS 95 draft standard Jun 95 Defined ASIS terminology Jun 95 Approved new library/environment model Oct 95 Prototype demonstration of ASIS for GNAT Nov 95 Draft ASIS 95 distributed for public comments Feb 96 SC22 approved ASIS New Work Item (NWI) Mar 96 ASISWG/ASISRG approved ASIS 95 ISO Committee Draft (CD) May 96 ASIS Committee Draft (CD) distributed to WG9 Spr 96 ASIS available for GNAT Ada 95 Compiler Jun 96 JTC1 ballot for ASIS NWI (ASIS assigned International Standard Number) Jun 96 Membership list and possible ASIS CD approval by WG9 (14 June 1996) Nov 96 Possible ASIS CD SC22 ballot Mar 97 Possible ASIS CD JTC1 ballot (ASIS registerable as DIS) Jun 97 ASISWG/ASISRG incorporate comments into ASIS DIS Aug 97 Possible WG9 approval Dec 97 Possible ASIS DIS SC22 ballot Apr 98 Possible ASIS DIS JTC1 ballot Sum 98 Possible ASIS International Standard printed ASIS on the Internet The following information is now available via the World Wide Web (either on the ACM host or via links to the AJPO host): * the ASIS Frequently Asked Question (FAQ) list * ASIS Vendor Products (both implementations and client products) * ASIS Related Work * ASIS Tutorials * information about ASIS for GNAT * information about the AJPO ATIP: ASIS/PVL * other information about ASISWG and its meetings, etc. The URL is: http://www.acm.org/sigada/WG/asiswg/asiswg.html AppletMagic is Intermetrics' Ada-to-Java code generator. There is information about this on Intermetrics' home page. Thomson is working with Intermetrics to convert their back ends to interface with Intermetrics' AdaMagic front end for an Ada compiler. Currie will update the ASIS FAQ for the upcoming Software Technology Conference in April in Salt Lake City. More information about the ASIS-for-GNAT project will be included. Steen suggested a question for the ASIS FAQ: Can ASIS be implemented in a subset of the combined Ada 83 and Ada 95 languages? The answer should be yes. Currently, the only feature of Ada 95 that we may be using is child packages. He pointed out that if ASIS is specified in Ada 83, it will be easy to rehost ASIS. (See Decision 9506-1; ASISWG might have to revisit this decision.) [Subsequent email discussions will require ASIS 95 to be in Ada 95 and the specification will use child packages.] Update on ASIS-for-GNAT Project Sergey Rybin distributed a paper to be presented at the upcoming Ada Europe'96 conference in the summer, titled "ASIS for GNAT: From the Prototype to the Full Implementation". ACT (Robert Dewar's company) is willing to support the project from the beginning of June making it an industrial project rather than a research project. The aim is to develop a full ASIS implementation. Currently, ASIS-for-GNAT is not complete; the multiple-unit capability must be implemented. After this, then the semantic queries can be implemented. Currently, ASIS for GNAT contains most of the ASIS 2.0.B structural queries for the GNAT 3.03 compiler. It is currently limited to processing only one compilation unit at a time. A summer 1996 release should provide processing for all compilation units in the current directory. ASIS for GNAT is availabe by ftp on the lglftp.epfl.ch host in the /pub/ASIS directory. DDC-I's work with ASIS Steen Silberg of DDC-I's office in Phoenix, Arizona, gave a short presentation about what DDC-I's interests in ASIS are. DDC-I won an AJPO sponsored ATIP-P project to make an ASIS 95 implementation and also to develop tools for ASIS 95. Test tools will generate structural tests for Ada95 code, but will not generate tests for all paths in the code -- only to cover the worst cases. Some will perform statement coverage. Some will have instrumented code inserted. DDC-I will try to make tools work on multiple vendors's compilation systems. Some tools will be non-intrusive and will use debuggers; ASIS can help generate the debugger scripts. Formal Issues discussed at this ASISWG/ASISRG meeting #003 - Traceability of Outstanding ASIS 83 issues Dan Rittersdorf mailed out outstanding issues to people who had submitted them and who still have active email addresses. Gary Barnes cannot adequately address all his issues but thinks that someone should look at them. Gary Bundy cannot address his issues, either. As part of the email message sent to everyone, we said that no answers to their comments by them would indicate that their issue would be closed out. It is now appropriate to deal with new issues as they come in. Issue #003 was closed out and Approved. #004 - Library Model for ASIS 95 The only change here was to change "Library" to "Environment" in the Title of the issue. This was approved; no other change was made to the issue or its status (which has been Approved). #005 - Proposed Conformance Rules Jim Lonjers was looking for the kinds of conformance coming out of the POSIX specification. We ought to reuse most of what POSIX did if we provide conformance rules for ASIS. Jim had indicated that there was a lot of discussion during POSIX conformance rules development and ASISWG should not lose those results (as formulated in POSIX's conformance rules). Three pages from the POSIX document concerning conformance were copied and distributed to the attendees: section 1.3 of POSIX Standard 1003.5-1992, pages 3-5. During discussions, several changes were made to these to accommodate ASIS. We then got into defining areas of conformance and what that means; also, into levels of conformance with respect to applications and implementations. Implementations and applications are defined as: Basic: required ASIS subprograms Full : required + all options subprograms Extended Basic: Basic + provider's extensions documented Extended Full : Full + provider's extensions documented We then came up with the following compatibility matrix: APPLICATIONS I | B | F | EB | EF M ----+----+----+----+----+ P B | OK | | | | L F | OK | OK | | | E EB | OK | | May| | M EF | OK | OK | May| May| ----+----+----+----+----+ Thus, conformance of applications and implementations is either Basic, Full, Extended Basic, or Extended Full. From the matrix, an application that uses only the Basic ASIS queries will be able to run on any ASIS implementation. But, an application that uses the Full ASIS queries will only run on a Full or a Extended Full implementation of ASIS. The reason for "May" appearing in some cells of the matrix is that different implementors of ASIS may implement different extensions which may or may not be used by an application. There was further discussion about implementation conformance and application conformance later in the meeting. Should Basic Conformant (see above) be subdivided into levels of conformance? Is it necessary? One suggestion was: 0: "black box" 1: syntax only 2: syntax and semantics 3: add implicitness to appropriate queries Another idea was that we should associate dates with conformance as implementations mature and as the test suite matures. As an implementation passes more maturing versions of the test suite, its level of conformance increases. This was followed by a discussion on the need for a conformance suite. Currie strongly encourages ASIS providers to make their conformance suites available to the public. For now, we will send ASIS up as a CD and if we get any comments addressing the levels of conformance issue, we will respond at that time. An argument against levels of conformance is that providers would build an ASIS implementation conforming to the lowest level and then provide that implementation as a product, going no further in developing their implementation until customers (with money) would drive them to implement more. We agreed that we would send ASIS up as a CD with our current definition of conformance (the matrix shown above with lots of words to back it up). Issue #005 was Approved. #011 - ASIS 83 Program Library to ASIS 95 Compilation Environment This was prompted mainly from email discussions among Sergey, Steve, and Robert Dewar since the last ASISWG meeting. Sergey gave a presentation about the Ada 95 environment. Robert Dewar insisted that ASIS should interface to the Ada 95 environment. Alfred Strohmeier insisted that it should not. If ASIS is to be a standard, it should use Ada 95 terminology. We looked at the definition of ENVIRONMENT as defined in Ada 95 (10.1.4) and the consequences associated with this definition. There was much discussion about what an ASIS environment is, what the Ada environment is, and what inconsistency means with respect to both. We must have an ASIS specification that is implementable by many vendors and usable by many tools. Steve's proposal (of 6 February 1996) has multiple libraries/containers in an environment. ASIS deals with an OPENed Ada 95 environment. Thus "Associate_xxx" may be renamed to "Define_Ada_Environment" or "Define_ASIS_Context". The Ada environment is defined at compilation time, at binding time, and at ASIS association time, depending upon what you are doing. We need to better explain ASIS CONTEXT. There are different ways of including units in an Ada compilation environment (according to RM 95). Dan Rittersdorf distributed some definitions for discussion; these dealt mainly with consistency. We don't have to say anything about consistency with respect to an ASIS context. It's okay to have inconsistent units in an Ada environment if an implementation allows it. Consistency applies to SUCCESSFUL Ada compilations. An Ada environment is well-defined by the Ada standard. However, we do need to say SOMETHING about consistency of units, because Context Association time is not compilation time, and the requirement for consistency of UNITS in the environment is only a compilation requirement. Likewise for legality. Supporters at compilation time must be legal and consistent, but we are not at compilation time (unless the ASIS implementation is compiling underneath, but that really doesn't matter with respect to the definition of association. It's okay to have inconsistent units in an Ada environment if an implementation allows it. Consistency applies to SUCCESSFUL Ada compilations; that is, consistency of supporters is a pre-condition to successful compilation (and some would argue, to starting compilation). Because RM95 leaves it to the Ada implementor whether or not a compilation unit is required to be legal before it is inserted into the Ada environment, it is possible for the environment to contain illegal units. Thus, the Ada environment is well-defined by RM95; however, its contents are implementation dependent. An ASIS context looks at the Ada environment the same way as the Ada implementation of the environment -- ASIS assumes a corresponding Ada implementation; the Ada implementation provides a means of specifying an environment for compilation, binding, and run-times. The ASIS context is intended to contain compilation units which the corresponding Ada implementation would consider to be "in the environment". We must say that the ASIS CONTEXT is defined in terms of the implementation of an Ada environment; RM 95 says that the Ada environment is implementation-defined. The ASIS CONTEXT is also defined in terms of an ASIS implementation. As a consequence, different implementations may allow inconsistent and/or illegal units in their ASIS CONTEXT. Thus, portability of ASIS applications is more highly probable if it analyzes only consistent and legal compilation units. Much of the rest of the discussion on this issue began with discussion of Steve's email message of 6 February 1996 "Proposal for ASIS Environment/Library changes". The old "Library" (based upon ASIS 83) is now called a CONTEXT. The "container" notion presented at this meeting is all new and allows ASIS to represent an Ada implementation's environment. Actually, a container is nothing more than a logical collection -- WITH NO SEMANTICS assigned to them. There is a notion of classification of units in an ASIS container (but no semantics goes along with this classification): PREDEFINED: Ada 95 predefined compilation units RUNTIME: runtime compilation units 3RD PARTY VENDORS: their compilation units OPERATING SYSTEM OTHER This notion of classification of units in an ASIS container can be discarded and in its place there could be the notion of a filter so that those not identified are not filtered -- so that ASIS could actually examine many fewer compilation units (usually only the ones a particular application is interested in, e.g., not the predefined ones). The application does not define the contents of a container. The container is an abstract logical representation of a collection of compilation units. Although the notion of containers can be similar to that of filters, it if is used in that manner, then an application who uses it in this manner will not be portable. The proposal will add a query to return all the units in a container. We must make sure that the list returned is a list of legal units. This query can be added as a toolkit interface in terms of other ASIS queries/interfaces, returning library units, etc., down to compilation units. We still must look at keeping the specification an Ada 95 or Ada 83 specification. We will examine this question again as to whether or not to use child packages. After must discussion, we decided to keep it as an Ada 83 specification (for now). Issue #011 was Approved. #012 - Terminology for ASIS 95 Glossary We went over an initial set of terms to include in a glossary. These will be distributed first to the ASIS Officers and then to ASIS-Technical for input. Steve noted that we should have these mostly defined so that he can begin finalizing 2.0 that will be used for the Committee Draft. Issue #012 remained Open. Coordination with Other Groups The revised ASISWG Charter was approved at the 7 November 1995 meeting of SIGAda's Executive Committee. Currie participated in a meeting concerning IEEE PDL -- does ACM want to get involved? ACM decided not to get involved as it was seen as a major effort. ISO/IEC JTC1/SC22 WG9 Annex H Rapporteur Group (HRG) is very interested in using ASIS in a number of areas. They want to use a new created pragma called "annotate". John Barnes (HRG's chair) is supporting ASIS based upon HRG's interest concerning Safety and Security. More on the HRG and pragma annotate can be obtained via the HRG home page at: http://www.npl.co.uk/npl/cise/systems/hrg.html ASISWG also coordinates with SIGAda's Ada Bindings Working Group (ABWG) and the Object Oriented Working Group (OOWG). The ASIS CD will be sent to all of OOWG's members. We have not yet identified any European groups. Other Issues for Consideration * Should there be a C interface to ASIS (e.g., a C layer)? What about this kind of information for a C language environment? Many customers are driving for a C and Ada combined interface. Future Meetings Software Technology Conference (STC'96) -- The Software Technology Conference will be held at Salt Lake City, Utah, USA from 22-26 April 1996. We will update the ASIS FAQ for distribution there. Currie will give a presentation about ASIS on Wednesday, 24 April, 8-8:45 AM in the Ada track. Ada Europe'96 -- ASISWG/ASISRG will meet all day at Ada Europe'96 in Montreux, Switzerland, on Monday, 10 June 1996. Ada Europe'96 will be held 10-14 June 1996. On Tuesday, 11 June, Sergey will present his paper on ASIS. On Wednesday afternoon, 12 June, is the ASIS panel. A WG9 meeting is scheduled for Friday, 14 June; at this meeting it is expected that WG9 will address ASIS as a Committee Draft. Washington Ada Symposium (WAdaS'96) -- WAdaS'96 is at Reston, Virginia, USA from 22-25 July 1996. We will distribute 3 1/2-inch diskettes at this conference. Tri-Ada'96 -- Tri-Ada'96 is at Philadelphia, Pennsylvania, USA from 3-7 December 1996 (Tuesday through Saturday immediately following Thanksgiving weekend -- a holiday in the US). ASISWG/ASISRG is planning to meet either before or after Tri-Ada in either the Washington, DC area or in the Philadelphia area. If we meet in the DC area, we might meet at IDA, MITRE, or at SPAWAR. Currie also noted that he may have resources available in Philadelphia for a meeting: perhaps ABWG's Bill Loftus's location in Valley Forge, close to Philadelphia. ASIS in AdaLetters and Other Periodicals Bill Thomas and Currie may work on an article for one of ACM's magazines/journals. Possible articles for future issues of AdaLetters include: * ASIS-for-GNAT update * Highlights of the March 1996 ASISWG/ASISRG meeting * Minutes of the March 1996 ASISWG/ASISRG meeting * Convert presentations at conferences into articles Next Meeting The next meeting will be held at the Eurotel Riviera from 8:00 AM to 5:00 PM at Montreux, Switzerland, in conjunction with Ada-Europe'96. Please look for meeting details on the ASIS Home Page.