Add a new tag to store source code (for eval "")
Add a new '-source' option, to selectively save source code in the trace file
Add option to collect the source code for all evals that have at least one sample
Add option to collect the source code for all evals
TODOne
Preserve errno if timer thread creation fails
Set timer thread as detached, so it frees all associated resources on termination
Only set the "runloop entered" flag if the full setup succeeds

Otherwise code in $SIG{__DIE__} invoked by the croak()s in enter_runloop()
thinks it's trying to re-enter a running runloop.
Fix create_trace() for the case where the trace is there but the file has been closed

For example if child_after_fork() fails between the close() and
reopen_output_file() calls.
Test that we can read/write very long strings

Cheating a bit because it uses eval "" that is only tested later in the test suite.
Prepare to add support for output compression

Instead of calling stdio directly, read from/write to an intermediate buffer
that is going to be compressed before being written out.
Add csnappy sources "stolen" from Sereal repository
Rename this to this_ to make csnappy compile as C++
Compress trace data before writing it to disk

Simply compress individual buffers using Snappy (~10 compression ratio).
Add a method to merge a report into another
Add flags set to true when metadata/sections changed in the current frame
Record parent-child information while parsing profile files
Add class to incrementally aggregate profiles into multiple reports

Still missing a way to collect all partial reports in a single file for load
speed, but the functionality is mostly there.
Store genealogy information in report aggregator