Two interoperable implementations rule
rubys at intertwingly.net
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 gmail.com
> <mailto:mike.shaver at gmail.com>> wrote:
> On Fri, Jul 11, 2008 at 7:10 PM, Maciej Stachowiak <mjs at apple.com
> <mailto:mjs at apple.com>> 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