On 2/9/2013 18:11, Andrea Pescetti wrote:
A good practical example of backwards-incompatible changes in version
4.0 is the behavior of Calc while computing 0 ^ 0.
You can find a long issue, with different points of view, about this at:
https://issues.apache.org/ooo/show_bug.cgi?id=114430
but in short:
- Obviously, 0 ^ 0 is an illegal operation in mathematics and the result
is undefined/invalid
- In 3.4.1, "=0 ^ 0" returns 1
- In 4.0, as patched by Pedro (see issue), "=0 ^ 0" would return an error
- According to ODF, valid results are 0, 1, error
- We gain interoperability since Excel returns an error too
- We lose backwards compatibility if someone was relying on the fact
that OpenOffice returns 1 as the result of "=0 ^ 0"
I'm OK with the proposed change, provided we advertise it in the release
notes. I'm not aware of any cases where someone is actively using the
fact that in Calc 0 ^ 0 evaluates to 1, and even if someone did, I would
say that his spreadsheets should not compute 0 ^ 0 at all. A side
benefit would be that school students quickly wanting to find out what
is the result of 0 ^ 0 would be told the truth (it's an error) instead
of being presented with a numeric result and no warnings. (Then the
student would go on and write "= - 2 ^ 2" and have a lot of fun, but
this is out of scope here).
Is there consensus that this is a reasonable backwards-incompatible
change, or compelling reasons to revert it?
Regards,
Andrea.
If we keep the change (+1 from me), someone more adept than I should
write something like a POWER0(a,b) function. This can be substituted
easily for POWER, or a ^ b, and returns 0^0=0. If we're sure to break
some spreadsheets, let's make a quick fix easy. (I'd bet that in half of
the "broken" cases, someone will say, "Aha! That value should never be
0! We've finally found that old bug!" In short, we'll be helping some
folks.)
/tj/