From kh@athens.cs.waikato.ac.nz Mon Aug 8 22:10:39 1994 Received: from grace.waikato.ac.nz by dkuug.dk with SMTP id AA19324 (5.65c8/IDA-1.4.4j for ); Mon, 8 Aug 1994 19:54:50 +0200 Message-Id: <199408081754.AA19324@dkuug.dk> Received: from athens.cs.waikato.ac.nz by waikato.ac.nz; Mon, 8 Aug 94 10:07 +1200 Received: by athens.cs.waikato.ac.nz (16.6/16.2) id AA11111; Mon, 8 Aug 94 10:10:39 +1200 Date: Mon, 8 Aug 94 10:10:39 +1200 From: Keith Hopper Subject: Conformance -- to what? To: sc22wg15@dkuug.dk X-Charset: ASCII X-Char-Esc: 29 Hi, I have followed with interest the recent notes passing to and fro on the issue of conformance and have felt that perhaps I have been missing something -- at the very least my understanding of conformance seems to have been somehow dented in the rush. I remember at some time past a very impassioned plea from the UK delegation to consider defining conformance to POSIX in a different way, involving a new classification which, I believe, they termed rigorous. This seemed quite reasonable to me until I began to work on the M-2 binding (see WG13/D205 -- or SC22/16?? - mislaid the number, sorry). It was then that I began to see also some of the things which Steve has recently been mentioning in regard to applications. WG13 discussed this whole business at great length -- which is reflected in the conformance clauses in the binding WD -- much along the following lines :-- (1) An application is written in some source language X (say) and this is presumably translated by an implementation of a conforming language system. Some measure of this conformance rubs off into everything else used by that application. (2) If the application writer wishes to use package Y (which could happen to be POSIX of course) then there will be some binding defined for this package. Now the binding will have had to be specified in such a way that not only does the syntax and static semantics have to conform with language X, but so that in addition to any peculiarities of the dynamic semantics of language X, the dynamic semantics of Y are made available. Conformnce to this binding has therefore to be speciried in terms of the necessary mappings between X and Y. (3) The conformance to the package Y itself is not necessarily available to the application writer except as specified in the mapping for the binding -- which may not be total, of course. With these things in mind, I see the topic of conformance to POSIX itself as being something which has to be specified within the dynamic behaviour described in the standard. The syntactic/static semantic matters are the subject of bindings to various programming (or other languages), with the result that we can express something which WG13 decided to call 'Application Program Portability' rather than 'conformance' per se. In doing this we found that the UK suggestion of levels of decreasing portability was quite useful -- a. Rigorous --- uses a conforming implementation of the binding standard AND translated in standard mode by a conforming translator for language X AND runs using a conforming implementation of pakcage Y (eg POSIX) WITHOUT ANY IMPLEMENTATION-DEFINED EXTENSIONS. b. Strict --- uses a conforming implementation of the binding standard without using any permitted implementation-defined extensions, but need not have been translated in standard mode by a translator for language X and may use library material defined neither by the language nor binding standards. (Note that this still implies conforming to the semantics of package Y for which the binding is defined). c. Standard --- uses the binding, language X and package Y standards in any permitted combination and manner. In terms of what the recent discussion has been about as I have interpreted it, the 'Standard' level of portability which I have just outlined is, as Steve points out, not really very much use except for marketing 'hype' (dare I use that term?). The questions which pop up here then with regard to conformance testing relate to the combination used in producing an application, rather than the individual language/binding/package conformance. Are we in WG15 necessarily in the business of 'system integration' as opposed to 'component' testing. Frankly I'm not sure -- but I leave the question open, because it IS one which customers are going to want to know something about when they go shopping! Over to you! Keith