Unexpected PITA progress
Of all the Big Awesome Things I've tried to create over the years, PITA has been been one of the longest and most disappointing.
Conceived as the logical extrapolation of Perl's testing framework development into the future, the basic idea is zero conf 100% automatic testing in parallel across arbitrarily many different operating systems using one-time virtual machines.
Achieving that kind of process isolation in a way that doesn't require any manual setup and no human intervention has meant some extremely twisted internals and lots of unusual and complicated problems to solve.
After an initial development rush in 2006, I hit the wall and struggled to make progress in the face of problems like having no version of Perl on Windows with a compiler, the difficulty of embedding custom POE applications into regular applications, and the mind-bendingly awful problem of debugging code being run via a shell command from a different version of perl in the child of a fork spawned from a script called from a boot init script in a headless VM called from system command in the hidden fork child from an async loop spawned in a deep object model in the child fork of a daemon.
About once a year when the pain has faded from the previous attempt, I have a shot at solving the remaining problems again.
This year I seem to have finally nailed the last problem in the core processing loop on Windows after a 9 hour debugging session uncovered a bug in IPC::Run3's handling of STDIN when run recursively inside of itself (or something, I never quite worked out the specific problem).
I've also ripped out LWP for HTTP::Tiny (which has eased some complications caused by dependencies) and fixed a bug in File::Remove relating to END-time functionality running multiple times and deleting directories too early when you fork.
As a result, the test suite for PITA finally passes on both Windows and Linux, which greatly improves my ability to hack on it during idle moments at work.
This means that, after 7 years, the first third of the project might actually be working.
So by that measure, there's only 14 years of head-butting pain left to go!