Boost logo

Boost :

Subject: Re: [boost] [xint] Boost.XInt formal review
From: Gordon Woodhull (gordon_at_[hidden])
Date: 2011-03-09 03:23:52


Dear Chad, Volodya, all,

Please allow me to submit a fraction of a vote, as someone who does not foresee a personal need for big integers, but who has a general interest in data structures, algorithms, and abstraction.

With apologies to those who are eager to get a big integer library into Boost ASAP, I have to vote No at this time, but with encouragement to Chad to resubmit when the library has gone through another round of revisions.

> - What is your evaluation of the design?

The STL and its offspring are founded on the principle of separating data structures from algorithms. IMO this is important not just so that other representations of big integers could be used, but also for clarity of code.

> - What is your evaluation of the implementation?

In addition to the extraction of algorithms, which will probably cause interface changes (or at least the exposure of a few more interfaces and concepts), the possible elimination of COW and introduction of expression templates both seem like big enough changes to merit a second review.

I don't like the idea that the library has second-class fixed-size large integers which don't sound like they were fully thought out. But I suppose it is okay for a library to have experimental parts as long as the main thrust of it makes sense.

> - What is your evaluation of the documentation?

I only took a brief look. I too am wary of documentation that makes big claims about speed and its own completeness -- I guess I don't like marketing-speak or any language that invites people to poke holes in it.

> - What is your evaluation of the potential usefulness of the library?

Again, I have to emphasize that I am probably not a potential user of this library and hope my vote will be discounted accordingly. But I understand that huge integers are useful to a lot of people. ;-)

> - Did you try to use the library?

No.

> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?

Aside from tracking down what virtual inheritance was used for and closely following the discussion, not a lot of effort.

> - Are you knowledgeable about the problem domain?

Not really. I attempted to write a bigint for an interview and learned how difficult it is to get right!

Besides making the code the best it can be, I think a formal review really shows how well an author can cooperate with the community and how willing they are to change their code when better ideas come along. I am confident in Chad on both points, but I think enough changes are due that a second review would be productive, especially once there are container/algorithm interfaces.

On an aside, I'm a little concerned to read twice this week about people finding their designs becoming muddled by peer review. That's not what should happen!

It seems the review process can deter uncooperative authors, but I guess it is up to individuals to remain resilient against bad ideas. I hope that everyone will stand up for authors when it looks like they're getting railroaded into bad designs.

Cheers,
Gordon


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk