Two interoperable implementations rule

Sam Ruby rubys at
Tue Jul 15 05:16:56 PDT 2008

Mark S. Miller wrote:
> On Mon, Jul 14, 2008 at 8:45 AM, Mike Shaver <mike.shaver at 
> <mailto:mike.shaver at>> wrote:
>     On Fri, Jul 11, 2008 at 7:10 PM, Maciej Stachowiak <mjs at
>     <mailto:mjs at>> wrote:
>      > [...] For example, would Rhino and SpiderMonkey count as
>      > sufficiently independent implementations?
>     Similarly, if we end up with, f.e., both WebKit and Spidermonkey using
>     decNumber as our internal implementation of Decimal, does that count
>     as two interoperable implementations?  It seems like we'd be at risk
>     of mostly testing that code against itself, so I would hope that we
>     look for such reuse cases when we're making sure that we actually have
>     usefully-distinct implementations of features to validate the spec.
> Adding decimal to Rhino would presumably build on the BigDecimal class 
> already present in Java. Is Java's BigDecimal class sufficiently 
> conformant to the relevant IEEE spec to support a conformant 
> implementation of the decimal proposed for EcmaScript? And is the 
> implementation sufficiently independent of the implementation the IBM 
> guys might add to WebKit or Spidermonkey to count as a cross check on 
> the spec? IBM guys, would you be interested in contributing such a 
> decimal implementation to Rhino?

Let me answer that in three parts.

1) Would I be willing to participate in developing a compatible Decimal 
implementation for Rhino?  Absolutely!  (Though probably not until next 
month at the earliest).

2) Is the Rhino implementation sufficiently _different_ than the one I 
just started working on based on SpiderMonkey.  I would think so.  Note 
that I changed the word from _independent_ to _different_ in this question.

3) Would having the same people who are involved in writing the spec 
provide two different implementations provide the needed assurance that 
the specification is somehow ready for standardization?  That I am not 
so clear on.

Note: we are focusing on Decimal here, though I sensed that the original 
question was meant to be much more general.  Decimal may not be the best 
example as we are talking about implementing a thin interface over a 
mature and time tested specification.  Even the interface itself is 
based on a lot of prior art and experience.

- Sam Ruby

More information about the Es4-discuss mailing list