Two interoperable implementations rule

Mike Cowlishaw MFC at
Tue Jul 15 00:18:15 PDT 2008

Maciej Stachowiak <mjs at> wrote on 14/07/2008 22:32:02:

> On Jul 14, 2008, at 1:46 PM, Mike Shaver wrote:
> > On Mon, Jul 14, 2008 at 4:37 PM, Mike Cowlishaw <MFC at> 
> > wrote:
> >> (The decNumber code is quite stable, for example -- averaging fewer 
> >> than one
> >> detected bug/year since its first release in 2001, is used in 
> >> numerous IBM,
> >> SAP, and other vendors' products, and is part of the verification 
> >> suite for
> >>, PowerPC, and IBM mainframe hardware.)
> >
> > I have no doubt; it's more whether the spec is sufficiently detailed
> > and clear that someone can work from it and produce an interoperable
> > implementation without using the same software impl.  Otherwise the
> > spec can just include the decNumber source in an appendix, I guess. :)
> I'd agree with the point of concern here. The risk is not bugs in 
> decNumber but that the spec might not match what it does, or may not 
> be sufficiently detailed to allow an independent interoperable 
> implementation. However, if decNumber implements something specified 
> in an independent standard (there's an IEEE standard for decimal 
> floating point, isn't there?), then I don't think this should count 
> against two implementations both using decNumber. For example, both 
> Gecko and WebKit use ICU but I would still count them as independent 
> implementations of HTML and CSS, since the shared component is only 
> used to implement the underlying Unicode standard, not the HTML and 
> CSS standards themselves.

Yes that's a good example (and decNumber is in fact a component of ICU). 
You can really think of it as providing an alternative to the hardware 
instructions on machine which don't have decimal floating-point hardware 
yet.  And yes, the relevant standard is the new IEEE 754.  decNumber is 
very platform-independent; I test it on both big-endian and little-endian 
machines, and Nelson Beebe has it running on more than 20 flavors of Unix. 
 It is also in GCC, where it is used for implementing the new C decimal 
floating-point datatypes.

For lots more specifications and details of implementation, hardware 
architecture documents, etc., see:


Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

More information about the Es4-discuss mailing list