Saturday 24th August 2013 5.18am
Sat, Aug 24, 2013 Boost.AFIO finally goes all green on the CI … you have no idea how many dozens and dozens of hours of debugging race conditions in other people's code (and then figuring out workarounds in AFIO code) it has taken to reach this point.I am actually quite emotional. Such a huge amount of effort. So many, many bugs and weirdnesses in the older STLs and Boost. And even the occasional very subtle bug in AFIO: there was one very rare corner case race condition where correct behaviour meant /hiding/ an exception propagation and pushing it on to somebody else to deal with :)
Anyway, that means that AFIO is finally debugged thank god. You may be wondering about the lack of unit testing for libc++ … that's because I'm completely refactoring the FreeBSD snapshotting VM right now, and also because libc++ on Linux simply isn't production ready yet and hangs all over the place when you're driving it as hard from so many threads as AFIO does. You can my word though that on BSD, AFIO is all green too on clang 3.3 + libc++.
So, that's us ported to and debugged on all intended compilers and operating systems, even with the hideous hacks I had to make to get VS2010 to work at all without segfaulting. What comes for the rest of GSoC so? Well, we need to finish the documentation, clear all issues from the AFIO issue tracker at https://github.com/BoostGSoC/boost.afio/issues?milestone=2&state=open including seeing if we can improve performance (probably not dramatically, I already did a lot of work there during the race condition debugging to tune any poor looking code, but it certainly would do no harm to write some formal benchmarks), and implement the features voted for by the Boost community at http://boostafio.uservoice.com/forums/218980-boost-afio-feature-request. Just one month to go, and so much to do!