Measuring Wine's API completeness
Michael Jung
mjung at iss.tu-darmstadt.de
Sun Nov 13 12:39:46 CST 2005
Hi James,
On Saturday 12 November 2005 02:52, James Hawkins wrote:
> The proposed method is superfluous and adds unnecessary words to the
> docs and source. You really don't get any extra information by
> labeling a function as sketchy or substantial. It's dangerous to
> label a function as reviewed, because it gives the impression that the
> function is absolutely complete and free of bugs.
As Dimi pointed out, 'reviewed' is kind of orthogonal to the other keywords.
So it's indeed probably a bad idea to mix it into an 'implementation status'
annotation. But I would guess that most hackers won't be fooled into a '100%
bug free' blindness by a tag like 'reviewed'.
> We have a system right now that works well. The three states are stub,
> semi-stub, and implemented, though implemented is usually denoted by the
> absence of stub or semi-stub.
In my opinion it's not a good idea to interpret the absence of stub or
semi-stub as 'implemented': I guess very few of wine's APIs would be
considered implemented, yet most of them don't have a 'stub' or 'semi-stub'
annotation. This would lead to a level of false positives, which would render
the result almost meaningless.
> A stub means nothing happens at all in the
> function; semi-stub means that the function does something, usually
> just enough to appease some apps; implemented obviously means it's
> implemented. This is also the easiest method in that you would just
> need to change c2man to parse the FIXMEs at the beginning for the word
> 'stub' or 'semi-stub'. They are already in most functions, and it
> would be beneficial to add them to the rest.
The problem with this is that it's not obvious that the presence of
'(semi-)stub' in a FIXME macro has an effect on c2man. So it's kind of a
hidden side-effect. If we instead put it in a special section in the
API-comments, people will recognize it and start to immitate it.
If we can agree on a implementation status tagging scheme, it would be cool if
we would write a small tool, which would scan for 'stub' and 'semi-stub'
FIXMEs and map those to a 'STUBBED' or respectively 'SKETCHY' implementation
status flag. This would give us a head start with the number of API's tagged.
Bye,
--
Michael Jung
mjung at iss.tu-darmstadt.de
More information about the wine-devel
mailing list