Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Motions 5 and 6 under discussion --



> From: John Pryce <j.d.pryce@xxxxxxxxxxxx>
> Subject: Re: Motions 5 and 6 under discussion --
> Date: Tue, 4 Aug 2009 23:03:21 +0100
> To: stds-1788 <stds-1788@xxxxxxxxxxxxxxxxx>
> 
> P1788 members
> 
> Looking at the concepts that underlie a "standard", I feel, now we  
> are getting down to details, that P1788 needs to agree what is meant  
> by "conformance". I hope, as far as possible, we shall use the same  
> terms and definitions (maybe reworded for extra clarity) as does 754.  
> Here is what I understand from reading IEEE Std 754-2008.
> 
> "Environment", apparently synonymous with "programming environment",  
> seems to be an undefined term.

	Yes, this is so.

> 
> 2.1.2 and 2.1.33 define "arithmetic" and "interchange" formats, with  
> more in 3.1.1 (and of course the gory details later).

	Things in section 2 define terms.  Section 3 gives the
	details of floating-point formats.

> 
> Definition 2.1.52 says
> "supported format: A floating-point format provided in the  
> programming environment and
> implemented in conformance with the requirements of this standard. ..."

	You should know that 754 distinguishes between an
	implementation & a programming environment.  Any given
	implementation (hardware + software usually in the form
	of libraries) may provide all that is needed to conform.

	So an implementation may be said to conform in the absence
	of a compiler.  But it is that + the compiler that is
	needed to conform at the language level.

	We came to this notion late in the game so the language
	we use to discuss it is sometimes unclear or inconsistent.

> 
> 3.1.2 says
> (A) "A programming environment conforms to this standard, in a  
> particular radix, by implementing one or more
> of the basic formats of that radix as both a supported arithmetic  
> format and a supported interchange format."
> 
> So apparently, "conforming" is something an environment does.

	Yes, just so.

	This section emphasises the issue of radix because that
	is a clarifier that identifies just which subsection of
	section 3 applies.

> 
> Previous to that it says
> - some things a conforming implementation of any supported format  
> shall "provide";
> - ditto, any supported arithmetic format;
> - ditto, any supported interchange format;
> 
> "Implementing" a format is not defined, nor is "providing" that  
> format, and they have slightly different meanings.

	Again, over 7 years the nomenclature used in a document
	like this can change.  As can the attitudes that lead to
	a given nomenclature.  We tried our best to make things
	consistent in the end but a 70 page document makes it
	difficult to get them all.

	Take it as a cautionary tale. :-)

> 
> And in 1.5 we read
> (B) "Conformance to this standard is a property of a specific  
> implementation *of* a specific programming
> environment, rather than of a language specification. "
> 
> I think I understand all this -- though (B) slightly contradicts (A)  
> -- except for the starred "of" in the previous sentence, which I have  
> asked Dan Zuras to clarify for us.

	I don't see the contradiction.  As I mentioned, radix is
	an issue in section 3.  But a given programming language
	may choose to support/implement binary, decimal, or both.
	So conformance at the language level would require the
	implementation of that which is needed for that programming
	language.

> 
> I had an attack of cold feet, wondering if we can vote on motion 6  
> before we have thrashed out the meanings, in the P1788 context, of  
> these crucial terms
>          environment, implementation, provide, support, conform.
> However, my feeling is that we can and should so vote, and should  
> discuss these terms as part of voting on the relevant chunks of  
> standard text (which I am having a go at constructing).
> 
> My two questions:
> - Do you agree with the previous sentence?

	I do.

> - Should we take the wording of 754 on these matters, with minor  
> changes? Or can we do better, e.g. by merging the ideas of 1.5 and  
> 3.1.2 into one section? I find 754 a bit "round the houses" on these  
> ideas, and had to jump around the text to get a grip on them.

	We can likely do better.  Or, at least, be more clear.

	But be warned that we may change our attitude on the exact
	nature of what it means to conform as we learn more about
	what we want in an interval standard.

	A good definition of conformance today can serve as a guide
	as to what we will accept within the standard.  Or it may
	need to be changed to accomodate features the implications
	of which we are now only dimly aware.

> 
> Best wishes
> 
> John Pryce

	Either way, good luck...


				Dan