Boost logo

Boost :

Subject: [boost] This AFIO review (was: Re: [afio] AFIO review postponed till Monday)
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2015-08-22 16:28:51

On 22 Aug 2015 at 15:21, Glen Fernandes wrote:

> On Sat, Aug 22, 2015 at 9:21 AM, Niall Douglas wrote:
> > If you want to get started, everything is ready at the usual places
> > and the CI dashboard is all green on all supported platforms and
> > targets (the one fail was a timeout due to me pushing the CI too
> > hard, it's not important).
> In my opinion- I don't think you will need to worry about the tests
> being all green for a review.

I'm a perfectionist. I wouldn't have considered it ready for review
until it was all green across the board on all 60 of its per-commit
tested targets. I spent four hours on Friday coaxing wandbox to
compile AFIO again so you'd have a working C++ browser playpen you
can go play with AFIO in. Little details are important.

> > Today I'll be spending swapping my dev workstation hard drive as I
> > killed the poor thing this week during testing the AFIO tutorial
> > workshop examples. I'll then press on with finishing the final
> > key-value store example which is described in detail in the tutorial
> > but is currently without code nor benchmarks. That new code won't be
> > part of this review, but I can link to it here with benchmarks when
> > it's ready.
> One question: Are reviewers also reviewing the "Monad" and "APIBind"
> libraries? (I see them consumed as sub-modules in the AFIO
> repository).

Well I asked here about that a few months ago, and I was told that
there is precedent for this situation. Apparently historically you
review the library being presented for review only, mentioning only
the internal sublibraries if there is something catastrophically
worrying about them. One then expects the internal sublibraries to be
spun out into additional Boost libraries presented for review later
if that is appropriate.

I can tell you that I personally would not be comfortable sending
AFIO into the main Boost distribution until after Monad has been
reviewed here, so even if there is a universal unconditional
acceptance of AFIO by everyone here, I will personally guarantee I
won't send in a final AFIO until after Monad is reviewed here.

I think this only fair. Do note I walk you through monad<T> in the
tutorial with everything you need to know. And if you find bugs in
Monad not already in the Monad issue tracker, please do file them. I
know of at least half a dozen myself.

Does this sound reasonable?

Please do feel free to ask for any clarifications. I have sprinked
cautions and notes around the AFIO documentation to explain how the
presented AFIO is expected to differ from final AFIO after Monad is
reviewed, and indeed there is also a dedicated section listing the
expected differences in the release notes.

I would *emphasise* very little is expected to change in the public
API presented here, indeed I expect all the unit tests and tutorial
examples to compile as-is. You or anyone else can base your review on
the library as presented. The only real changes in final AFIO are the
simplification of some tutorial examples thanks to C++ 1z coroutines,
and better performance.

The library being presented today is very well tested, and should
*not* *lose* *you* *data* which is the most important quality in an
i/o library. Even if performance - as you will see in the tutorial's
benchmarks - is a bit poor in the current engine in some use cases.


ned Productions Limited Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at