OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

office-formula message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [office-formula] Implementation-defined, Unspecified, and Undefinedbehaviors in OpenFormula

robert_weir@us.ibm.com wrote:
> I've been going through the current draft of OpenFormula, looking for 
> areas that are specifically called out as "implementation-defined", 
> "unspecified" or "undefined".  I did not find as many as I thought I would 
> find.
> I created a spreadsheet that illustrated each one of these cases, which I 
> am attaching.

I took your spreadsheet and added a new column, "Why Undefined in 
OpenFormula?".  I then filled this column in, in an attempt to document 
in more detail the rationale for WHY those items are undefined.

So, attached, is my attempt to answer those issues.  Of course, we don't 
have to agree with my attempt to answer these items. For example, maybe 
we've learned more since.  And in two cases (VARP and TEXT), I think we 
should change the spec as described below.  So this analysis by Weir was 
worthwhile for at LEAST that reason.

As you can tell by the attached spreadsheet, it turns out that there are 
actually very FEW causes for something to be undefined in OpenFormula. 
A few items that were SPECIFICALLY agreed to be undefined end up causing 
"undefined" in several places in the spec.  So, I named those reasons, 
which end up getting reused all over. See the attached spreadsheet for 
details; they are:
* OLD_BASE_CONVERTERS.  Basically, we want people to avoid these older 
functions in the future... we specify just enough so that they can 
continue to be used in older sheets.
* PERMIT_EXTENSIONS.  A desire to permit extensions in certain very 
limited areas, without requiring universal support.

These 5 issues explain the 85% ((61-9)/61) of the implementation-defined 
areas, plus 9 more that are very specific, which means we have 
REMARKABLY few implementation-defined areas.  That's great!  "Few but 
non-zero" is, to me, a sign of a GOOD specification.  "Non-zero" 
suggests that we've been practical; "few" suggests that interoperability 
with this specification is really good.

I added two more items not on Weir's list, at the end. (Not counted in 
the discussion above.)

This analysis brings out two points:
* What should VARP() do when passed one value?  Both Excel and 
OpenOfficce.org return 0.  I think that makes sense - if given only one 
value, its variance is zero.  I think we should SPECIFY this, removing 
one of our implementation-defined items.  Comments?
* TEXT() is vacuous.  We should at least define SOME format string 
commands.  Can anyone take this on?

--- David A. Wheeler


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]