Two interoperable implementations rule
Mike Cowlishaw
MFC at uk.ibm.com
Tue Jul 15 00:18:15 PDT 2008
Maciej Stachowiak <mjs at apple.com> 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 uk.ibm.com>
> > 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
> >> power.org, 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:
http://www2.hursley.ibm.com/decimal/#links
Mike
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
More information about the Es4-discuss
mailing list