Tuesday 3rd March 2015 1.30pm
Tue, Mar 3, 2015 Woke up after particularly little sleep last night to find a sea of green on the AFIO CI dashboard as you can see below (yes, the number of test targets is very considerably higher now, plus there is now official support for Apple OS X/iOS and Android). Which was a surprise actually. Megan returned to work four weeks ago now, and I was supposed to have shipped AFIO v1.3 before she did as my babysitting duties were going to substantially increase and therefore my free time substantially decrease. And indeed they have increased, and I initially had thought with a few late nights I might get the thing out the door.Well, fast forward four weeks and approximately 100 extra hours expended between midnight and 5am … and I finally have a sea of green, albeit the below is not stable, it just happened to go all green last night and might not remain so tonight or any other night. In fact, that was exactly the code I was adding last night, a stack backtracer which tracks the paths of code an op takes through the engine, and therefore when something spuriously errors it can now say exactly which combination of code paths preceding the engine and which within the engine led to that error. Then when I next get some random unpredictable failure, I'll have the telemetry to figure out how it occurred.
I must admit to being exhausted though. This past month I get maybe 25-30 hours of sleep for most of the week, and maybe two nights with a decent amount. And feeling quite run down, plus the load on Megan is considerably higher, she might not quite be looking after Clara as much, but she also no longer gets morning lie ins. Still, here is the remaining todo list before I can release, and start going to bed at a reasonable hour again:
1. Add unit test swapping two directories each with an open file in them and make sure it doesn't get confused.
2. Implement rename and delete and hard link on the handle. Look into a "add hardlink to open handle" function i.e. an undelete function, though this will be a Linux and Windows only feature.
3. Add unit test making sure that race free file renaming and deletion works as expected, probably to path_works.
4. Write tutorial section on tracking files over time.
5. clang-reformat everything, and set up the CI to auto clang reformat all new commits from now on.
6. Run compilation time benchmarks on all platforms. Fix any regressions. You might think this easy, but AFIO has about twenty different build configurations now.
7. Run performance benchmarks on all platforms. Fix any regressions. Add a benchmark for race protection.
Phew. What are my chances for a March v1.3 release???