[libdevel-nytprof-perl] annotated tag upstream/6.02+dfsg created (now 311ae82)

gregor herrmann gregoa at debian.org
Wed Aug 12 12:22:46 UTC 2015


This is an automated email from the git hooks/post-receive script.

gregoa pushed a change to annotated tag upstream/6.02+dfsg
in repository libdevel-nytprof-perl.

        at  311ae82   (tag)
   tagging  7f3e56e17481a77bb04054a4af8ee80c38fa78e9 (commit)
  replaces  upstream/6.01+dfsg
 tagged by  gregor herrmann
        on  Wed Aug 12 14:06:42 2015 +0200

- Log -----------------------------------------------------------------
Upstream version 6.02+dfsg

Adam Kaplan (28):
      Initial directory structure.
      Initial check-in. Note that this code is completely decrecated and probably fairly broken!  It is the oldest public release that I have, so I have uploaded it only as a benchmark of where the project started to measure how far it has come.  Get the next svn version!
      Version 1.11. Stable CPAN release.  Contains all changes from 0.02 through 1.11
      Added HACKING file and updated MANIFEST accordingly
      Added links to svn repo @ google code
      Added test15p/x/v for perl <5.8.0 only and limited test06 to perl > 5.8
      Added ModuleVersion.pm and changed everything to pull the distribution version
      Attempted fix for RHEL platform where %f is handled differently (?)
      Fixed compile errors on 5.8.8
      Reverted Trunk to r13 because of too many major changes. Branched previous changes into sandbox at branches/tim.bunce
      SVN Keyword tests...
      SVN Keywords tests 2...
      Added svn property Id to all these files
      Fixed a bug in these scripts where the output directory was being checked for
      Changed "print OUT sprintf..." to less redundant "printf OUT ..."
      nytprofhtml - fixed module version variable
      Testing new svn alert list
      svn alert email list test attempt
      Failing to locate a source file after a best-effort attempt is no longer fatal (but will still whine)
      Updated changelog, Readme version and module version number
      Temporary patch -- Pause uses MakeMaker to determine versioning, and won't evaluate the 'required' version number. (All files that use the XS need to include its specific package version)
      - Added $VERSION to each module because the PAUSE indexer doesn't actually evaluation that
      Merged changes from the tim.bunce branch into the trunk.
      Added new header prototype to the html output for the invidual files. The output seemed overly bland.
      Added formatting to the subroutine link table:
      Removed link from the package name in the subroutine dispatch table (didn't make sense).
      Added ability to switch between any profile modes from any profile page.  Current modes are 'block', 'line', and 'sub', however these can change arbitrarily without requirement any code in nytprofhtml to change.
      test.pl: swapped backwards warning messages.

Chia-liang Kao (2):
      Make DB::enable_profile work after finish_profile is called.
      first cut of the nytoprof to cachegrind calltree output script.

Christian Walde (2):
      ensure flamegraph.pl is called according to OS
      tell cpan about the repo

David Booth (1):
      Clarified the documentation

David Steinbrunner (29):
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      typo fix
      typo fixes
      typo fix
      typo fix
      typo fix
      typo fixes
      typo fix
      typo fix
      typo fixes
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$
      kill $Id$ even more
      fixed META_MERGE

Dylan Cali (1):
      fallback to checking PATH for nytprof scripts

Ed J (2):
      Fix so works when perl installed in directory with space
      Make bin/nytprofhtml work when perl in space

Gisle Aas (36):
      There is no copyright and contact information at the bottom of the test.pl file.
      Make the --open option imply --html
      Just pass on --open to nyprofhtml.
      Improved test descriptions.
      Make 'test.pl 5' run all the <test05.*> tests
      Don't complain about passing *.pm and *.pl files to test.pl
      Add the attributes missing from expected test output in r526.
      Make 'nytprofhtml --open' work on machines that does not run Mac OS X.
      Document the nytprofhtml --open option.
      Use standard tabstop (ts=8) in all vim modelines.
      Rename test.pl as t/20.runtests.t
      No need to calculate the $diff twice in fmt_incl_excl_time
      Improve the Englishness of the prologue text
      Produce more readable timestamps in the code prologs.
      Make fmt_incl_excl_time not repeat the unit
      Failed to consistently convert '1 times' to 'once'.
      Sort the call locations by the time spent in the funtion as well as call count
      Simplify; $caller_filename same as $filename.
      Don't show filename for call refs to the same file.
      Cleanup; load_profile_data_from_file do need a filename argument
      Cleanup; Use named constant for TIME_BLOCK marker
      Make indentation in the documentation code samples consistent.
      Use consistent POD item lists
      Add Devel::NYTProf::Data::Raw module
      Incorporate Tim's explanations of the mystery chunks
      Use '#!/usr/bin/perl' lines for the scripts
      Let $. track the chunk sequence numbers
      Reuse the same SVs for each callback call.
      Rename ::Data::Raw as ::ReadStream as suggested by Tim
      Complete the rename to ::ReadStream.
      Doc tweaks; document the header attributes used.
      Oops - missing braces on if-block
      Improve portability to older perls; gv_fetchpvs() not supported in 5.8
      The timestamps in TAG_PID_{START,END} are NV
      Can't rely on #!-line to always work
      Avoid triggering "gcc internal compiler error"

Helmut Wollmersdorfer (2):
      Typo in bin/nytprofhtml
      Typo in doc

Holger Schmeisky (16):
      added printer for plat_forms style reports
      added tests for plat_forms style printer
      added files to ignore
      added printer for plat_forms style reports
      Merge branch 'master' of https://github.com/holger-s/devel-nytprof
      removed extra test case for plat_forms
      changed version back to 5.05
      Merge branch 'master' of https://github.com/holger-s/devel-nytprof
      added tim's comments
      - removed old tests
      - removed extra platforms_tests
      Merge branch 'master' of https://github.com/holger-s/devel-nytprof
      - fixed test run
      - bumped version to 5.06
      Merge remote-tracking branch 'upstream/master'
      - fixed test count to 2 for .pf files

Jan Dubois (18):
      Fix signed/unsigned mismatch
      Declarations must come before executable code (for MS VisualC)
      Hash keys length are only 32 bits while STRLEN may be 64
      An (unsigned long) is still only 32 bits on 64-bit Windows. %Ix prints the right number of bytes for size_t values for both 32 and 64 bit Windows.
      Declarations before executable code (plus a missing 'const')
      Use %p to format pointer values. Solves potential issue with Cygwin, which may define WIN32 symbol too but doesn't use MSVCRT.dll
      This C, not C++.  Declaration must happen before any executable code inside the lexical scope!
      Perl built with the -DUSE_SITECUSTOMIZE option will execute an
      Fix type inconsistencies
      Add casts for 32/64 bit mismatches
      More 32/64-bit adjustments
      XSUB.h is supposed to redefine fgets under PERL_IMPLICIT_SYS, but doesn't
      There shall be only one plan per test file
      Need string form of eval() to defer execution of use() until runtime
      #ifdef works on symbols, not expressions
      Use File::Spec->catfile() for portability
      Move context definition into higher scopes
      Use "%"IVdf instead of "%ld" for printing IV values

John P. Linderman (1):
      This changes only documentation, no testing should be required.

Joshua ben Jore (8):
      bin/nytprof* --help exits true
      prefer usage() to &usage because we're not using any magic
      Invalid parameters to bin/nytprof* also prints usage
      Allow \ to escape things in NYTPROF environment variable
      Clean up crud
      Test \ escape in NYPROF environment variable
      Disable once, redefine warnings for t/31-env.t
      As of r748, require Test-More-0.81_01 or greater

Karen Etheridge (3):
      switch from JSON::Any (deprecated) to JSON::MaybeXS
      ignore new ExtUtils::MakeMaker artifact
      switch search.cpan.org URLs to metacpan.org

Mike Doherty (1):
      Document --minimal in nytprofhtml's POD

Moritz Lenz (1):
      [doc] Devel::NYTProf needs to be loaded as early as possible

Nicholas Clark (208):
      When reporting a token error in a profile file, also give the file offset, as
      Parse @ARGV to see if PERL_CORE=1 is there, which allows Devel::NYTProf to be
      Replace use of fputc() with fwrite() in output_int()
      Rename output_int() to output_tag_int(), optionally outputing the one byte tag
      Replace all fpuc(tag), output_int() combinations with a single call to
      Replace most uses of fgetc() in read_int() with a single fread().
      Make every internal C function static (and one variable that I spotted).
      Eliminate (well, paper over) two compiler warnings about unused variables.
      Use a typedef for PL_ppaddr_orig so that we can case the value assigned to it,
      c cannot be anything other than EOF here, as there's no other way out of the
      If the expected test data file is missing (and hence undefined) for any reason,
      Reverse r407. For some reason "works on my machine" doesn't hold for all "my"
      Wrap all FILE * output functions in NYT_* functions, and the FILE *out in a
      Wrap all FILE * input functions in NYT_* functions, and the FILE *in in
      Add a tag for "starting deflated data stream". Add a state flag to the NYTP
      Correct the bad prefix on my names -- s/NYT_/NYTP_/g
      Add NYTP_start_inflate() which is called when we get the tag
      Fix a typo in printf's name.
      Make NYTP_write() and NYTP_read() validate that the file state is either STDIO
      Rename parameters to file functions to ifile/ofile from in/out as it's bad to
      "deflate" the stream (by copying it via a buffer, and for now a deliberately
      "inflate" via a copy loop NYTP_read().
      And now invert the bits of everything we read and write.
      Modify the write code to write to a buffer, and only flush the buffer contents
      Remove my debugging fprintf()s that weren't supposed to be there.
      In struct NYTP_file_t, rename 'used' to 'count'
      Move the reading code into grab_input(), refilling the buffer as required.
      Fix the bug in NYTP_fstrerror
      In struct NYTP_file_t, rename buffer to small_buffer, as we will need two
      Add a large_buffer (which will become the buffer for the uncompressed data) and
      Eliminate NYTP_FILE_BUFFER_SIZE.
      Remove a duplicated initialisation.
      Include <zlib.h>. Link with -lz. Add a z_stream structure into NYTP_file.
      Deflate the output stream, inflate the input stream. All tests pass. (Finally)
      Refactor the library detection code in Makefile.PL to be more generic.
      Add a static variable compression_level, and use this to determine the
      Add a comment noting that the file is compressed, recording the compression
      In NYTP_tell(), for compressed files, instead of using the stdio file offset,
      Up the input and output buffer sizes to something sensible, now that we've
      Remove an extraneous -lz
      Replace file->state with a macro FILE_STATE(file), which can be conditionally
      Correctly wrap compression specific code in HAS_ZLIB so that it will compile
      Correct Perl_form() to Perl_form_nocontext().
      Change the return type for grab_input() and flush_output() to void, as by now
      Update the paragraph on compression.
      RTFM reveals that the LIBS paramter to ExtUtils::MakeMaker is a list of
      Cope with the fact that on some versions of perl, strerror() is redefined with
      Note the possibility of using pthread_atfork() to detect forks.
      Add comments after the compressed stream, noting the totals for uncompressed
      Calculate the available output using two pointers, rather than relying on
      After a flush, reduce the available output buffer such that after the next
      struct NYTP_file's end, which is only used for input, can be eliminated, and
      For output, replace use count in NYTP_file with zs.avail_in, as the later is
      In struct NYTP_file, shrink state from int to unsigned char, and stdio_at_eof
      Make the decision to use %e format based on the precision passed in, rather than
      Use e notation for values under 0.0001, to give at least 2 digits of precision.
      Disable output file compression if compression_level is zero. We don't yet have
      If inflate fails, report the position in the input stream. If we're at EOF,
      Add an option compress that specifies the compression level (with 0 disabling
      In set_option(), replace linear copy/paste strEQ() && atoi() for integer
      Fix grammar error.
      Fix a typo I spotted, and another that ispell found.
      Another typo spotted by ispell.
      Pass in the length of the string to sub_pkg_filename_sv(), as we always have it
      Add SPAGAIN after call_sv()s used to make callbacks. Without this, the stack
      Correct the documentation for callback parameters for TIME_BLOCK and TIME_LINE
      Revert r952. The documentation for TIME_BLOCK and TIME_LINE is correct and
      for_chunks SUB_CALLERS was not passing the callback the caller name.
      Move calls to normalize_eval_seqn() after the callback runs, so that the
      Convert several occurrences of 'in' to the parameter passed to the function.
      Replacce NYTP_type_of_offset() with a macro when HAS_ZLIB is not defined.
      Replace the common construction
      CROAK_IF_NOT_STDIO() can explicitly do nothing when HAS_ZLIB is not defined.
      compressed_io_croak() is only needed when HAS_ZLIB is defined.
      Change NYTP_close() from returning pass/fail to returning pass/errno.
      Move the logging out of NYTP_close() into its callers. This will make it easier
      Move all NYTP_* file handling functions into FileHandle.xs
      Create a package Devel::NYTProf::FileHandle which can open and close NYYProf's file handles.
      Refactor output_int() and output_tag_int() to take an explict file handle.
      Refactor output_nv() to take an explict file handle.
      Refactor output_str() to take an explict file handle.
      Add methods write(), output_int(), output_nv() and output_str() to Devel::NYTProf::FileHandle. It's now possible to write out a profile file from Perl.
      Refactor Devel::NYTProf::ReadStream::output_iv() to take a list of values.
      Refactor Devel::NYTProf::ReadStream::output_nv() to take a list of values.
      A tool for merging NYTProf profile files. This prototype can't merge yet.
      An initial implementation of FID remapping.
      profiler_duration needs to sum over all PIDs run, not just the last PID seen.
      Merge 2 (or more) NYTProf output files. Unpolished - error checking, sanity checking and tests not present yet.
      Actually add an entry to the fid mapping table when a given file is seen again.
      In addition to the regular fid mapping, track the mapping if fids for all evals
      Need to map the fids for TIME_BLOCK and TIME_LINE
      Track where related evals in different files (re)define the same subroutine,
      In pkg_fids_hv, use the SV type to track whether this is a new entry, and
      Add a heuristic to detect and ignore subroutine entries in %DB::sub with
      Use sv_setpvs() instead of sv_setpv() when possible.
      Avoid two possible "value computed is not used" warnings from the C compiler.
      A slightly tighter implementation normalize_eval_seqn(), which assumes that
      When iterating %DB::sub to find filenames for packages, skip over any entry
      We know the length of the text key of an attribute, so use it rather than
      Change store_attrib_sv() to take the length of the key, as we always know it.
      Replacing strEQ() of "-" and "-e" with character based checks allows gcc to
      The hashing code knows the lengths of the strings passed in, so can use memEQ()
      strtol() with a base of 0 is equivalent to the replaced code.
      In fid_is_pmc(), use only 1 temporary SV, and avoid *printf format parsing.
      Swap from char pointers to char arrays to avoid two strlen()s on constants.
      In incr_sub_inclusive_time(), copy a '\0' instead of explicitly writing one.
      In incr_sub_inclusive_time(), avoid a strlen() by remembering a pointer to the
      strlen(src) is already known, so no need to re-compute it.
      In pp_subcall_profiler(), a "longhand" check for "DB" produces terser object
      In append_linenum_to_begin(), avoid using *printf functions to build the sub's
      In append_linenum_to_begin(), avoid making 2 identical calls to *printf() like
      Skip this test if perl was configured to disable .pmc files.
      Avoid calls to *printf functions when the string is fixed or known.
      Fix a bug in the FID folding in nytprofmerge.
      Add a cache for CORE:$opname, to save repeatedly regenerating the same SVs.
      Use atoi() rather than SvUV() to get ticks_per_sec.
      When reading NYTP_TAG_ATTRIBUTE with a callback, assign directly to cb_args[2]
      Fix an off-by-two error in normalize_eval_seqn() introduced by r1018.
      Fix length calculation error if normalize_eval_seqn() finds a second eval
      Convert NYTProf_gets() to dynamically resize the read buffer, so that it can
      When merging, enforce identical profile file attributes where appropriate.
      In the merged profile, count the number of times each program was profiled,
      When merging, strip out the comment about "Compressed ... with zlib", as it's
      Missing a space before 'and'.
      Switch to using a typemap for Devel::NYTProf::FileHandle.
      Improve NYTP_gets() so that it will also work on compressed input streams.
      Add Devel::NYTProf::FileHandle::start_deflate.
      In nytprofmerge, enable deflation on output if the input files are deflated.
      Better test for RT#54600
      Add casts and consts to get NYTProf to build (and pass tests) under g++.
      Convert char *s to const char *s to eliminate g++ deprecation warnings.
      Add cast to remove g++ warning about mixing enums and non-enums in a conditional.
      In load_profile_data_from_stream(), avoid calling sprintf() if we don't need
      Fix a bug in the regexp of r1048 - we weren't actually matching the comment.
      In load_profile_data_from_stream, in the time_line and time_block handler,
      load_profile_data_from_stream() was failing to free buffer.
      Count system cpu time as well as user time in the loop in t/61-cputime.t.
      Pass the input file as an argument to read_int(), read_nv() and read_str().
      Abstract writing comments into NYTP_write_comment().
      Add a wrapper for NYTP_write_comment and use it from nytprofmerge.
      Abstract writing string attribute values into NYTP_write_attribute_string().
      Add a wrapper for NYTP_write_attribute_string and use it from nytprofmerge.
      Abstract writing signed attribute values into NYTP_write_attribute_signed().
      Abstract writing unsigned attribute values into NYTP_write_attribute_unsigned().
      Convert output_tag_int, output_nv and output_str to return the written count.
      Abstract writing process start into NYTP_write_process_start().
      Add a wrapper for NYTP_write_process_start and use it from nytprofmerge.
      Abstract writing process end into NYTP_write_process_end().
      Abstract writing a new file ID into NYTP_write_new_fid().
      Add a wrapper for NYTP_write_new_fid and use it from nytprofmerge.
      Abstract writing profile times into NYTP_write_time_block() and
      Add wrappers for NYTP_write_time_block and NYTP_write_time_line, and use them
      Abstract writing sub info into NYTP_write_sub_info(), wrap it and use it
      Convert output_uv_from_av() and output_nv_from_av() to uv_from_av() and
      Avoid returning 0 from output_str() when successfully writing an empty string.
      Abstract writing sub caller info into NYTP_write_sub_callers().
      Add a wrapper for NYTP_write_sub_callers and use it from nytprofmerge.
      Abstract writing source lines info into NYTP_write_src_line(), wrap it and use
      Move output_tag_int(), output_nv() and output_str() to FileHandle.xs from
      Abstract writing a discount marker into NYTP_write_discount(), add a wrapper,
      Abstract writing the file header into NYTP_write_header(), add a wrapper and
      Add NYTP_start_deflate_write_tag_comment(), which abstracts writing out the
      Remove the XS wrappers for output_int(), output_nv() and output_str().
      Start to convert load_profile_data_from_stream() to callbacks, by creating
      Move source line handling to a new function load_src_line_callback().
      Move sub info handling to a new function load_sub_info_callback().
      Move pid start handling into a new function load_pid_start_callback().
      Move pid end handling into a new function load_pid_end_callback().
      Move attribute handling into a new function load_attribute_callback().
      Move sub callers handling into a new function load_sub_callers_callback().
      Move new fid handling into a new function load_new_fid_callback().
      Move time line and time block handling into a new function load_time_callback().
      Start to break Perl callback handling out, by moving new fid callback
      Generalise the callback framework, and use it to also implement src line
      Move sub info processing into load_perl_callback().
      Move sub callers processing into load_perl_callback().
      Move pid start processing into load_perl_callback().
      Move pid end processing into load_perl_callback().
      Move attribute processing into load_perl_callback().
      Move comment processing into load_perl_callback().
      Move discount and start deflate processing into load_perl_callback().
      Move time block and time line processing into load_perl_callback().
      Move file version processing into the load_perl_callback(). It isn't actually
      Move cb_args into the (unified) state structure. Build strings for all tags
      Convert load_time_callback() to take an enum tag, rather than a raw char.
      Convert all the loader callback functions to take an enum for the tag
      Move input_chunk_seqn into the loader state. As it is the only thing that the
      Convert all loader tag processing to table driven callbacks.
      Move input_chunk_seqn_sv into Loader_state_merged;
      Split apart profile loading into load_profile_to_hv() and
      Pass the input file handle from load_profile_data_from_file() down into
      If a callback is passed, move the validity check on the type of reference from
      Move callback type checking into load_profile_to_callback().
      Convert nytprofmerge to using Devel::NYTProf::Data->new() directly, instead
      Allow the callback to load_profile_data_from_file() to also be a hash
      No need to set $. to 0 in load_profile_to_callback(), as it's always set in
      NYTP_start_deflate_write_tag_comment() needs to be wrapped with #ifdef HAS_ZLIB
      In the BOOT: section, replace the long run of calls to newCONSTSUB() that set
      Replace if (FILE_STATE(ifile) != NYTP_FILE_STDIO) with CROAK_IF_NOT_STDIO(...)
      Add a pointer cast to restore building with a C++ compiler.
      Fix grammar error.
      Push the call to finish_profile() onto the END of PL_endav at END time, rather
      Run finish_profile() from CHECK, not END when perl is invoked with -c.
      Update Devel::NYTProf::ReadStream to describe only version 4.0 of the file
      Remove two "spare" NVs from the sub_callers entries in the profile file.
      Remove the "extra items" count the sub_info entries in the profile file.
      Remove $eval_fid and $eval_line from the callbacks for time_block and time_line.
      Fix typos in the Changes file.

Peter (Stig) Edwards (21):
      Added missing t/test22-strevala.t to the MANIFEST.  I aslo wanted my first commit to be a small and simple one.
      Renamed t/\d\d.test.t files to t/\d\d_test.t for greater
      Renamed more files for greater portability (removing periods/dots for VMS)
      Renamed .js and .css files for greater portability (removing periods/dots for VMS)
      Added t/92-file_port.t as a developer-only and
      NYTProf.xs's open_output_file use mode 'wb' and not 'wbx'
      Skipping tests this way because of the way Test::Portability::Files::import
      getcwd() on VMS returns VMS paths, these looks like u:[username], sticking a slash results in u:[username]/test.t and this is not a valid VMS filename, not inserting a slash results in only 4 out of 31 tests and 21 out of 491 sub tests failing.  Getting there.
      Fixing previous VMS specific patch, compiler complains about invalid statement if VMS is defined, braces are required.
      Allow nytprof.out file to have 0 size on VMS as buffers have not flushed.
      Skip all fork() tests if on VMS
      This isn't pretty but it ensures the paths used are valid on VMS, previously they were an invalid mix of *nix and VMS.
      Filenames can have chars that are special regexp chars, escaping some I ran into on VMS.
      This is .js not .pl, the trailing comma caused a warning in MS IE
      Use quotemeta() to backslash non-'word' chars.
      On VMS fflush() does not fsync() to disk, have to skip this to avoid infinite loop.
      I didn't mean to add META.yml to the MANIFEST in my last change.
      Swap dot/period for underscore in outdir and new files to ensure is valid on VMS, skip test 14 and 60 as the expected profile data does not have VMS paths and will not match.  Now all tests pass on VMS.
      TIMTOWTDI and I agree \Q quote non-word characters till \E is neater.
      Yet Another VMS Fix, ODS-2 files are limited to 39.39 chars
      Trailing comma in .js causes warning in MS IE

Steve Peters (23):
      Cleanup from a few warnings from stricter C compilers.
      Core Perl change #4309 disabled OP_SETSTATE.  Change #33072 removed the last
      Quiet MANIFEST warnings from "make distclean".
      Notes regarding AutoLoader.
      CXt_LOOP was removed from bleadperl and replaced with four new defines.
      Skip the AutoLoad tests on Perl 5.10 for now until I have a fix
      Update the MANIFEST for the recently added files.
      Skip failing test on Cygwin.  I'm guessing its due to not having an
      Quiet the MANIFEST warnings.
      Standardize to HAS_CLOCK_GETTIME.
      First pass at using clock_gettime() for profiling.  Now Tim can refactor
      First steps in getting NYTProf to compile on Win32.  Not there yet, but
      These changes get Devel::NYTProf to compile on Win32 with Visual C++.  I
      Silence a couple of warnings in the XS.
      Add the noreturn attribute to compressed_io_croak().
      Quiet unused variable warning.
      Add some additional const'ing.
      Clean up some function prototypes.
      Quiet a warning from the current bleadperl.
      Clean up the MANIFEST to silence missing file warnings for files
      Silence some compiler warnings generated when compiling with Perl's
      Have git ignore a few additional files created while building and
      Format the installation steps in the README.md

Tim Bunce (1135):
      Fix MakeMaker LICENSE for old versions of MakeMaker.
      Simplify handling of option defaults.
      Fix 'Unable to access output directory' test to refer to $opt{out} not $opt{file}
      Factor out 'profiler' dir name, and create dir if needed.
      Make debug/trace output a runtime option.
      Add comment with $^P bit meanings.
      Make hash functions work for binary data. Also makes them faster
      Major update, including file format and data structure changes.
      Add context stack crawling to find line number of enclosing block and sub.
      Polish up context crawling code.
      Fix some edge cases
      Temp hack for Reader to enable access to fid_block_time and fid_sub_time data sets.
      Add TODO notes to HACKING.
      Fix PL_curcop for perl5.8.6
      Fix to fix getFileStats/get_file_stats and add -lib option. Patch from Chetan Sarva.
      Revert r91 (applied to wrong branch)
      Added some svn:ignore to ./t directory.
      Added gcc developer options to Makefile.PL (taken from the code I use in the DBI)
      Fixed a bunch of compiler warnings (seen now due to extra compiler flags).
      Added file size and mtime data (currently just zero).
      Implement normlization of eval sequence numbers.
      Add .rdt result files for fork test
      Replace all remaining .v tests with .rdt tests (as they're much easier to work with)
      Enable reporting code to be run under the debugger (perl -d) by only installing
      Change fid_filename array to always contain array refs, not just when the fid is an eval.
      Rename fid_filename to fid_fileinfo to reflect its ture nature.
      In "$sub called:\n" show total count of calls: "$sub called $count times:"
      Add prereq modules.
      Enable recording of block & sub level profiling data by default.
      Refactor env var handling in test.pl
      Refactor to enable full sets of tests to be run multiple times with different option configurations.
      Fix sub/block profiling for perl < 5.8.8 (mostly, still some issues)
      Pass --out directory option to csv and html generation.
      Yeah. block&sub level profiling now working for perl < 5.8.8
      Add alternative callback mechanism for geberating report lines.
      Reduce html report size by ~20%
      Generate -line, -block, and -sub reports.
      Fix links in and between html reports broken by previous commit.
      More random ideas dumped into HACKING for now.
      Reorg Makefile.PL to move the subs out of the initial code.
      Refactored header searching code to make it easier to extend and maintain.
      Recommend the more standard -Mblib approach over PERL5LIB=blib/lib:blib/arch.
      Put output from each test in a separate directory
      Record if called sub is XS.
      Start of great new feature: *inclusive* subroutine times.
      More work towards sub call inclusive timing.
      Refactor the elapsed time code into a common set of macros,
      Use CSS to create attractive header, avoiding need for static image.
      Added $0 to data file.
      Added "Per-line/block/sub", application name and date/time it was run into header,
      Rename sub_fid_lines to sub_subinfo to match fid_fileinfo and reflect its role as a home for per-sub data.
      Update demo script to run from top directory
      Assorted fixes and polish following on from previous changes.
      Accumulate sub call counts into subinfo data for direct access to totals.
      Factor out normalization of float values into sub in ::Util.
      Added call count and incl_time to sub table, removed line range.
      Added total inclusive time spent in each sub to prologue block for that sub.
      Added incl_time to returned sub_caller data.
      Added more inclusive time data to html report.
      Remove margin from header, which makes it look much smarter.
      Remove stray $DB::single=1;
      Put both header dates on right and right aligned them.
      Added mechanism for reporter to fire callback per-level.
      Moved calculate_median_absolute_deviation into ::Utils.
      Simplified code using calculate_median_absolute_deviation.
      Add severity colors to subroutine table. Yeah!
      Simplfy level of detail button formatting and use it to replace the "per-$level" text.
      Abstracted the interface to shift->{profile_modes}
      Addded level switching buttons to the index page
      Removed old .v test related code.
      More notes for HACKING...
      More cool ideas dumped into HACKING.
      Moved time spent and call count ahead of sub name to make them easier to read,
      Order list of calls made by a statement by incl_time spent first then subname.
      More notes for HACKING... one idea and one problem.
      Major update to Devel::NYTProf docs.
      More ideas for HACKING
      More notes for HACKING
      Added warning if any of PERL5DB PERL5OPT PERL_UNICODE PERLIO env vars are set
      Change XS test from using inet_aton to pack_sockaddr_un
      Bless fid_fileinfo and sub_subinfo refs into classes.
      Added mechanism to delete profile data for the internals of library files.
      Bumped version to 1.90 - will make developers release as 1.90_1 soon
      Updated t/test90-stress.p and related notes.
      Added dist config to Makefile.PL so "make dist" does clean+distcheck+disttest+tardist
      Added start of opcode hooks to handle 'leave' type ops.
      Major new feature to address two significant problems:
      Normalize eval sequence numbers in sub names.
      Test change omitted from previous change.
      Fix test count
      Switch back toa single index.html but with links to line + block + sub views of each file.
      Added a footer (in grey with links) to html report pages.
      Shorten file paths on index page by removing @INC prefixes.
      Ensure sub_subinfo & sub_callers always present in profile, even if empty.
      Switched over to using objects for sub_info.
      Updated docs for subs_defined_in_file().
      Enabled subs_defined_in_file to return subs defined in all files.
      Added generation of an index-subs.html page listing all subs.
      Removed image files and related css.
      Expanded object model further.
      Fix up some edge cases in the data methods.
      Add const char * typemap to keep perl 5.6 happy
      Having hundreds of sub names like "PPI::Node::__ANON__[(eval 286)[PPI/Node.pm:642]:4]"
      Merged sub_caller (sub-called-from-where) data when collapsing anon subs created within evals.
      The 'Jump to file' pulldown got broken somewhere along the line,
      Removed source_line_func as it was never used.
      Fixed html escaping typo from earlier commit.
      Added start of constants
      Major update to Devel::NYTProf docs.
      Just a jiffy...
      Workaround for perl 5.6 (probably could do better)
      Fixed fid redefinition warning to say something useful
      After a fork the new (child) data file doesn't have any knowledge of what the
      Bump version to 2.00. Yeah!
      More pod tweaks.
      Unified version numbers and added tests for them.
      Add docs about effect of recursion on sub inclusive time.
      Update test16.rdt for 0 ticks
      Add CLOCKS_PER_TICK define for the Time::HiRes case.
      Use NV instead of double to be consistent and allow for perl's configured with NV as long double.
      Added note about how to support compression.
      Convert Changes file to pod and add some details.
      Measure cumulative statement timing overhead.
      Thanks Steve in the Changes file for clock_gettime
      Added another sub calling test case.
      Added test for goto &$sub (which don't do the right thing at the moment).
      Fixed overhead statement overhead adjustment for inclusive subroutine time.
      Store sub exclusive times in profiler data structure.
      Fixed calculate_median_absolute_deviation to use the *median* of the distance
      Added subroutine *exclusive* timing. Yeah!
      Added demo/exclusive-sub-time.pl
      Improved readability of subroutine caller lists by getting the caller counts to line up, which will typically make the timings line up as well.
      Added note about 'Calls made via operator overloading' to LIMITATIONS
      Replaced use of fpurge() with a more portable approach
      Added more references for clock_gettime()
      Fixed sub name resolution to work in more, perhaps all, unusual cases.
      Added some thoughts on xsubs to HACKING
      Added options to test.pl to control/limit testing of option combinations.
      Added recording of xsub filenames (i.e. DBI.c)
      Fix up problems from earlier xs subname changes.
      Fixed calculate_median_absolute_deviation detection of no data.
      Tidied up file not found warnings.
      Add number of distinct places and fistinct files subs are called from.
      Refactor towards adding 'relevant files' table to the top of individual file reports
      Update VERSIONs
      Update test16 results (for perl5.10)
      Prep 2.02 release
      Added support for .pmc files (for Larry's work on perl6 compiler)
      Fix for threaded perls
      Improved formating of stats for subs called by a statement;
      Run perltidy on the perl source code.
      Add .indent.pro file (though I'vw not applied indent to the .xs file as it has problems)
      Update HACKING file to remove done items and clarify others.
      Use fwrite in preference to fputc loop, thanks to Nicholas Clark.
      Minor updates to the docs
      Only show "For more information ... full list of %d subroutines" if not all shown.
      Fixed (long-standing) bug in Reader where it wasn't accounting for time
      Various improvements to tracing.
      Tidy the NYTProf.xs file (4 space indent with expandtab)
      Added NYTP_TAG_* macros for items in the data file.
      Implement read_nv via fread thanks to Nicholas Clark.
      Tweak comments.
      Added use of newline-safe string i/o (is also null-safe but the reader code isn't)
      Warn about #line directives
      Polish up #line changes.
      Added initial support for utf8 strings in data file,
      Added fid flags to indicate if fid first seen via sub or stmt profiler.
      Fixed some compiler warnings.
      Replace begin=1 option with start=begin|init|end|no.
      Added SELECTIVE PROFILING section to docs.
      Perl 5.8.1 is now the oldest perl version supported.
      More ideas for HACKING.
      Added early detection of possibly corrupt filenames.
      Added all_subinfos method to ::Data class.
      Only warn about #line directives once per process.
      Added addpid=1 option to NYTPROF env var to append pid to data file name.
      Added created_via value to 'strange characters' warning.
      Make start=begin the default. (Also makes programs using Moose profile sanely.)
      Update HACKING to reflect progress.
      Bumped version to 2.03
      Avoid divide-by-zero error in reporting code reported in
      Give more detailed message for errors when reading a file
      Add universal error checking for NYTP_read and NYTP_write.
      Add dTHX for previous commit
      Make timing tests more generous for slow systems
      perltidy test.pl
      Added xsfile=0 option as workaround for perl5.8.8 CvFILE bug.
      Fixed indentation in Changes file and adjusted vim settings.
      Change default compression level to 6.
      Added test for $! (not) being changed by NYTProf.
      Fix Devel/NYTProf/Apache.pm to handle NYTPROF=no and NYTPROF=end
      Fix reading of zero-length string (probably, no test case).
      Avoid false warnings about #line directives that perl would ignore itself. RT#39411
      Improve the comments in test13.p
      Clarify comments in t/test13.p (missing from previous commit)
      Clarify control flow in NYTP_read_unchecked slightly.
      No longer warn about '/loader/0x800d8c/...' synthetic file
      When normalizing, strip prefix from start of string and also when embeded e.g., "(eval 42)[/foo/bar/...]"
      Save the source code of string evals! (The reader just ignores them for now.)
      Added extra table of all subs sorted by inclusive time.
      Add copy of jQuery and jQuery tablesorter to output report.
      Silence assorted compiler warnings reported by Richard Foley.
      One more compiler warning silenced thanks to Richard Foley.
      Use an empty string as the filename for xsubs
      Remove the xsfile option as it's no longer needed.
      Prep version 2.04 release.
      Prep for 2.04 release.
      Fixed alteration of $! during profiling thanks to Slaven Rezic.
      Tweak reader to store fid src lines in profile data structure
      Added some docs to Devel::NYTProf::Apache
      more notes on profiling httpd
      Fix title of Changes pod, so hopefully search.cpan.org will present it better
      Initial stab at supporting multiple clocks and falling back to CLOCK_REALTIME if the selected clock doesn't work.
      Add docs for new clock=N option.
      Add clock_id to attributes in data file.
      Add more detail into trace when reading subroutine timings.
      Fixed error when application ended after DB::disable_profile.
      Doc tweaks
      Prep for 2.05 release
      Update a test for the clock_id change (only run for perl5.10)
      Changed subroutine inclusive time to not count time spent recursed into the same subroutine.
      Removed use of vfscanf() to improve portability, thanks to Jan Dubois.
      Remove sanity check for OutCopFILE/CvFILE corruption as it's no longer needed.
      XS subs are now automatically associated with a source file that defines
      Remove stray line that got left in earlier commit.
      Add a couple of values to the sub_info dump in preparation for adding recirsion depth and recursion inclusive time.
      Defined macros for sub call array indices, and cleaned up related code.
      Add reci_time and rec_depth to sub_caller info.
      Patch from Jan Dubois to port to windows. Yeah!
      When normalizing, replace abs path prefix with /.../ so we can tell
      Make errno test independent of external modules (which might have changed $!)
      Update t/test16.rdt results missed from earlier commit.
      Assorted changes from code review by Jan.
      Fix "No file line range data for sub 'package::__ANON__[:703]'" warnings
      No longer ignore files that don't have any perl statements profiled
      Callers and timing information for xsubs are now shown at the
      Take more care to avoid changing errno by saving and restoring it
      Only apply margin-top: 5px to the calls in to a sub, not calls out.
      Include source code from -e '...' command line option (not used, yet)
      Move error check from NYTP_printf to NYTP_close.
      Record source from stdin (perl -) as well as perl -e '...'
      Remove vestiges of perl 5.6 support, thanks to Jan Dubois.
      Use 3-arg open.
      Point out the perils of profiling on virtual machines.
      Simplify the fork test code.
      Use "wbx" mode for the file, except on windows.
      Adjust trace levels slightly, mainly moving new fids and subs up to level 2.
      Exclusive and Inclusive time column positions have been switched
      Add migration of sub_caller data from eval fids. (big missing feature)
      Tidy up and expand Changes.
      Move sub_caller migration to new _migrate_sub_callers_from_eval_fids() method.
      Fixed *significant* error in time reported as spent in a subroutine,
      Add stmts=0 option to disable the statement profiler
      Make tag type consistently unsigned char.
      Major improvement to handling of string evals...
      Add ::Data method to read source, which gives preference to source embedded in the data.
      Move t/test90-stress.p to xt/test90-stress.p
      Regenerate MANIFEST via 'make svnmanifest'
      Tweaks to ReadStream docs.
      Add missing arg to 'invalid clock_id' croak message.
      Add test to demonstrate wrong line numbers given to subs called in while(condition).
      Update MANIFEST for new file in previous commit.
      Give slightly more feedback during report generation.
      Thank Gisle in the Changes file.
      Major update to docs about clock sources, SMP, processor affinity etc.
      Document stmts=0 option.
      Bump version to 2.07 (because PAUSE indexed the 2.06_RC1 release I made for cpantesters)
      Fix srclines_array() to drop the undef 0th line of source code.
      Unlink destination (.js) file before copying new one so it won't fail for readonly files.
      Docs my thoughts re savesrc option into HACKING
      Improved html conformance thanks to Leland Johnson.
      Add perftest.pl script for profiling NYTProf::Data and nytprofhtml
      Further optimizations.
      Removed column handling from Devel::NYTProf::Reader module,
      Format negative time values as seconds, not nanoseconds.
      Improve presentation of links to subroutine tables.
      Move ::ProfFile class out to new ::FileInfo class.
      Refactor part of strip_prefix_from_paths into new make_path_strip_editor function.
      Set NYTP_FIDi_EVAL_FI element as weakref to eval fileinfo in XS code for speed.
      Add array of refs from a fileinfo to the fileinfo's of all the string evals it executed.
      Hovering over times in subroutine or file summary tables
      Add trace for statement discounts.
      Add summary sentance to index page given overall time and other stats.
      Some initial exploratory work towards extending nytprofcsv to include
      Add ::Constants module (missed from earlier commits)
      Add Exporter, even though it worked just fine without it.
      Populate $fi->subs data direct into fileinfo in XS.
      Add NYTP_FIDi_SUBS_CALLED attribute to fileinfo containing a hash
      Added optimize=0 option to disable the perl optimizer
      Document effect of not being able to profile sub calls made due to overloading.
      Add total_sub_calls attribute to data model and html report summary line.
      Don't normalize to zero total_sub_calls in test results.
      Fixed searching @INC for source files for reports.
      Rework handling of filename, specifically don't call make_filenames_relative() to edit them to be relative.
      Add new test for nested string evals. Currently fails because we don't yet
      Add t/test21-streval3.x missing from previous commit
      Make delete_subs_called_info() adjust total_sub_calls attribute
      For $fi->abs_filename returning the still-relative filename is better than returning an undef.
      Prepare for 5.8.9+ & 5.10.1+ by ignoring calls to our own DB::_INIT sub which
      Add script to exercise calls made by overload
      Added savesrc=1 option to copy source code into the profile
      Add package-level summary idea to HACKING.
      Summary tables can be sorted by clicking on header columns. Woot!
      Fix $subinfo->package to work for multi::level::packages
      Add 's' unit to '0' value returned by fmt_time()
      Merge the separate pkg and sub name columns in the sub table
      Leave the table rows in their original order to start with
      Fix up test for fmt_time returning "0s".
      Call footer callback when footer used - this fixes @on_ready_js
      Time spent on statements in a string eval that was nested in another string eval
      Added $subinfo->clone method.
      Added $profile->package_subinfo_map method to return info on all the subs in a
      Add package summary tables to index page.
      Make $subinfo->is_xsub more strict.
      Reorg the demo code. Run the while(<>) example and update
      Report merged subs properly.
      Replace my_snprintf with plain sprintf because my_snprintf from pport.h is
      Add assorted thoughts to HACKING
      Major update and reorg of HACKING.
      Minor tweaks to HACKING
      Add NYTP_SIi_* constants for sub info
      Remote hard tabs that have crept into NYTProf.xs
      Add NYTP_SIi_CALLED_BY element to sub info ({ fid => { line => [...] } })
      Move sub info and sub caller time mormalizatio for tests into new normalize_for_test method.
      Detect version mismatch between bin/nytprofhtml and the core lib.
      Cosmetic tweaks to Devel/NYTProf/Util.pm
      Shift the normalization (for testing) of some data from input to output, to avoid throwing data away.
      Remove sub_callers element from profile data. Move data about callers to a sub
      Fix version number in bin/nytprofhtml.
      Reworked dumping of fileinfo data to include subs defined and subs called.
      Start work on normalizing eval sequence numbers in file and sub names.
      Avoid core dumps in the sub profiler if the cv isn't setup correctly
      FileInfo dump() now takes option to not dump internal details.
      Include details of string evals in FileInfo dump()
      Normalize total_sub_calls attribute to 0 for tests (due to use of Autoload from perl lib).
      Make savesrc option set PERLDBf_SAVESRC | PERLDBf_SAVESRC_NOSUBS.
      Avoid undef warnings from $si->merge_in(...)
      Add details of string evals to file table on index page.
      Colorize the package roll-up summaries on the index page.
      The sub profiler now calls reinit_if_forked() if the statement profiler (which
      Implemented normalize_eval_seqn, but left it disabled.
      Fix for http://www.nntp.perl.org/group/perl.cpan.testers/2009/01/msg2985535.html
      Initial work on swiching output to different profile files.
      Show 'Running tests with options ...' during 'make test'
      Implement DB::enable_profile($new_filename).
      Clarify a trace message.
      Be more generous with time limits when running automated tests
      Replace old $ENV{NYTPROF_EXIT_AFTER_LOAD} hack with shiny new $ENV{NYTPROF_ONLOAD} hack.
      make clean be more thorough
      Rewrite all "(eval \d+)" to "(eval 0)" while reading the profile data.
      Fix core dump at trace level >= 4.
      This one was wierd! It seems that the statement
      Make -v option to t/20.runtests.t slightly more useful.
      Using a sub with side effects isn't enough to avoid the weirdness.
      Save some headaches for windows users trying to profile mod_perl apps.
      Use NYTP_SIi_* constants.
      Save/restore errno in incr_sub_inclusive_time() and more finely in pp_entersub_profiler().
      Fixup t/test16.t for perl < 5.10
      Bump version to 2.08 for release, finally.
      Added note to HACKING about reporting when method cache is invalidated.
      Make html_safe_filename remove colons (and some other chars) from filenames
      Added Changes not for previous commit.
      Remove embedded dots from filename for html report generation.
      Fix tests to work with previous html_safe_filename change.
      Refactor (reorg) if/else logic in get_file_id() to make it easier to add better autosplit handling.
      Initial structural changes to support smarter autosplit handling.
      Give credit where it's due
      Fix up t/92-file_port.t to fail more gracefully when not runnable or enabled.
      Fix extra %s in log warn format.
      Add special case for NTP_write with length 0 as fwrite with len==0 is
      Add savesrc, compress, and abort (on first error) options to tests.
      Fix savesrc by writing source at end of profile run
      Revert to earlier t/92-file_port.t and do require Test::Portability::Files instead of use
      Don't set PL_perldb when processing options (from NYTPROF env var)
      Neaten the warning by removing the " (@INC contains..."
      Show NYTPROF and stdout of subprocess if it fails.
      Enable more detail on this test failure
      Add NYTP_DEFAULT_COMPRESSION constant to application can tell if zlib was compiled in.
      Add NYTP_FIDf_IS_ALIAS flag distinct from NYTP_FIDf_IS_AUTOSPLIT
      Add docs for "Unable to open '... (autosplit into ...)'" warning.
      update HACKING note re string evals in autosplit files
      Prep for release
      Prep for release - bump version
      Prep for release
      Last minute little fix for 'make clean'
      Tweak Makefile clean target to match VMS changes
      Initial work-in-progress using jquery treemap plugin. Quite rough at the moment.
      Fixed call count for XSubs that was one too high.
      Rough, but working, interactive package treemap using the JavaScript Information Visualization Toolkit (JIT)
      Add comment outlining a possible implementation of recording sub caller sub names.
      Yet another take on treemaps. This time using js-treemap.
      Avoid undef warnings where subs have no known line numbers (eg Moose)
      Fixed enable_profile() after fork thanks to delamonpansie
      Changed enable_profile() to discard the time spent since profile was disabled.
      Made NYTPROF_TEST=trace=N work for 'extra tests'.
      Removed unneeded (and problematic) mg_get thanks to delamonpansie
      Added detection of file names like "(eval 1)" that don't have the expected
      Fixed to use correct scripts during test and so avoid permissions
      Give a hint to users when they get no source code for -e (and some other cases).
      Only generate fake hint src line for -e & - cases.
      Switched to using raw (non-minimized) src code of js-treemap.
      Avoid core dump if eval fid refers to an invoking fid that we've not seen yet (should never happen).
      Add a summary report identifying which settings influenced failures, e.g.:
      Added test for "(eval N)" style filenames, i.e., missing the invoking filename.
      Improve treemap look and behaviour.
      Allow undef entries in fid_fileinfo_av
      Update a problem description in HACKING
      Fixed suprious "Unable to determine line number" warnings
      Use PL_retstack_ix <= 2 as additional check for is_preamble.
      Use PL_scopestack_ix instead of PL_retstack_ix because PL_retstack_ix is gone in 5.10
      Added license, homepage, bugtracker, repository and MailingList
      Tweaked warning message.
      Prep for release.
      Deleted files relating to old treemap code
      Deleted more old treemap files
      Updated MANIFEST
      Another move in the 'how slow are cpan testers' game...
      This one's a little harder to explain, but I'm happy enough to assume that it's
      Added test diag warning for people running on xen, due to it being a regular factor in test failures:
      Added treemap view of package and subroutine times, with drill-down.
      Changed left-click zoom from 'zoom all the way to the leaf' to 'zoom one level
      Added sysops=1 option which enables profiling of perl opcodes
      Record builtins, like sleep(), as having names begining with "CORE:"
      Assorted refactorings getting us closer to having a treemap on each file page.
      Don't include subs with 0 time in the treemap.
      Fix to minimize jagged gaps (submitted to JIT author)
      Updates to HACKING
      Don't create treemap boxes if they're too small to be useful.
      Add details to treemap tooltip and tweak style.
      Give the user a clue, or three, about the treemaps.
      Added columns to the main source code reports to show
      Merge pp_sysop_profiler into pp_entersub_profiler.
      Fixed recursion depth measurement.
      Fixed (rare) overflow bug for 32bit perls.
      Renamed sub_call_start_t to subr_entry_t and added a pointer to the previous
      Refactor pp_subcall_profiler to allocate the struct using SSNEWa directly,
      Store fid and lin in subr_entry_st as ints instead of formatted string.
      Use separate data file name for each test, so tests can be run concurrently.
      Switched to using context stack offsets instead of pointers to track current
      Added sysops=2 option to control how builtins are aggregated.
      Added note about standard deviation
      Added (undocumented) NYTPROF_FMT_TIME env var for experimentation.
      Refactored NYTProfTest to enable more flexible usage.
      Added recording of calling sub to subroutine profiler.
      Fix occasional failures when running 'make prove'
      Added the calling sub name to the sub call data structure
      Added .gdbinit http://cpansearch.perl.org/src/GOZER/mod_perl-1.31/.gdbinit
      Finally got robust calling subroutine name working in a way that doesn't
      Clarify the impact of the perl api call_*() functions not being profiled
      Updated tests to match modified xs file in earlier commit.
      Sub calls made outside of subs are now deemed to have been called from <Package>::BEGIN.
      Renamed MAIN to main::BEGIN to match the name derived elsewhere.
      Added t/nytprof*.out.* to Makefile clean target.
      Detect error writing to pipe to demo script
      Significant reworking of the subroutine profiler.
      Keep separate entries in subr_entry for called pkg name and called subnam (eithout pkg)
      Tweaks to Changes and HACKING
      Renamed NYTP_TAG_SUB_LINE_RANGE to NYTP_TAG_SUB_INFO and future-proofed
      Changed from using the hackish and limited subname_at_file_line() method, to
      Implemented a basic interactive Radial Graph view of the subroutine call tree.
      Renamed sysops option to slowops and added match and subst (s/// & m//) opcodes.
      Added --one option to tests as shorthand for --leave=1 --use_db_sub=0 --savesrc=1 --compress=1
      Added test for goto. (Its time to bite that bulleat as it's distoring the call graph, e.g, when Exporter delegates to Exporter::Heavy)
      Fix __attribute__format__ and the compiler warnings revealed by it.
      Sync test16 results.
      Change subr_entry caller_* name elements to use pv for package and sv for name,
      Added reuse of called_sub* details from outer subr_entr if they're available.
      Now the fun can begin... add generation of very basic Graphviz dot file.
      Just a little polish.
      Started work refactoring to (finally) profile goto &sub sanely.
      Major rewrite of subroutine profiling to include goto &sub calls in the call tree.
      Use "main::RUNTIME" as the name of "caller" of subs called by main:: code.
      Fix goto'd subs to not be treated as xsubs in perl 5.10
      Added fcntl to slowops and reenabled print as a slowop
      Added bin/nytprofcg to Makefile.PL EXE_FILES
      Removed inclusive time treemap as it's not actually useful.
      Add clusters (to groups subs by packages) to the graphviz dot file.
      Resync tests to include print and unlink slowops.
      Still fiddling with graphviz output...
      Sync test16 result for perl 5.10+
      Enabled slowops=2 by default, at least for now.
      Add gotobug directory containing a test case for a significant problem affecting perl <5.8.8.
      Fixed caller() problem with perl <5.8.7, many thanks to Bram!
      Tweak Test::More dependency.
      Finally got GraphViz file generation working in a reasonable way.
      Synced test61-submerge.rdt
      Made JSON::Any optional.
      Be more hintful in the 'inflate failed end of input file' error message.
      Clarify impact not being able to profile calls made by call_*() in older perls.
      Fix test results for tests that don't call subs from "main::RUNTIME".
      Added endatexit option (for internal use, e.g., by possible Devel::NYTProf::PgPlperl module)
      Added Devel::NYTProf::PgPLPerl module with docs.
      Rename subr_entry.completed to already_counted and use ++ instead of =1.
      subr_entry_setup() now always pushes a destructor onto the stack as a fallback
      Added sigexit option to enable a useable profile when the process exits due
      Updates to the LIMITATIONS section
      This test is sensitive to the perl version (calls appear from fid 3 or fid 4)
      Generate list of slowops via the Opcode module.
      Update to JIT 1.1.3 (which includes my earlier patches)
      Switch to a rectangular style gradient effect
      Fixed zeroing of subr_entry!
      Added PRIVLIB_EXP and ARCHLIB_EXP attributes to profile data file.
      Replaced old stdlib detection code with $fi->is_perl_std_lib calls.
      Added t/test62-subcaller1
      Bumped more VERSIONs (though I should have bumpled to 3.00, d'oh)
      Fix t/22-readstream.t to (try to) use the same perl in the subprocess
      Don't profile DB::_INIT and DB::finish_profile (only) because they
      Skip test60-subname for older perls because the call from example_xsub to will_die,
      Polish up change not re sigexit option
      Added forkdepth option, plus tests and docs.
      Sync'd the test60-subname.rdt and test62-subcaller1.rdt test results I'd
      Provide a little more detail if deflate() fails
      Added emulation of gv_fetchfile_flags that null-terminates the string.
      Added note re Scope::Upper unwind() in LIMITATIONS section
      Enable ARCHLIB_EXP to be undefined
      Tweak ARCHLIB_EXP comment and slowops Change note
      Tried to make t/30-util.t less prone to floating point issues
      Moved some $^P () settings into init_profiler.
      Add perldb=N option to force certain PL_perldb values
      Fixed handling of slowops that exit via an exceptions.
      Documented how goto &destination is profiled.
      Polish up the docs
      Disabled profiling of require slowop.
      Resynced test62-subcaller1 results
      Tried again to avoid (presumed) floating point issues like
      Fixed problems with profiling forks.
      Fix compiler warnings, mainly for perls built with -Duselongdouble (RT#51431)
      Update slowops list generation to match current state and document some issues
      Removed rand & srand from slowops because it turnsout it's very hard to configure perl
      Added tests for calls from sort() and s//sub()/e
      Fixed link to tablesorter css file
      Updated ops for 5.10 (will need to add #ifdefs for earlier versions )
      Fix OP_SUBSTCONT. Yeah!
      Add #ifdef for OP_SAY
      Added Devel::NYTProf::Run module with profile_this(src_code=>"...") function.
      Fixup handling of profile data file naming broken in previous commit.
      Move already_completed test out of slowop block so it'll also work for Scope::Upper's unwind.
      Reordered logic to not push the extra destructor until the end of the function
      Limit the damage when a confused NYTProf stack is detected.
      Fixed tortuous "goto into own sub that's been deleted and replaced" use-case
      No longer export do_foreach_env_combination as it wasn't being used.
      Added workaround for RT#50851 "deflate failed, error -5 (buffer error)"
      Tweak NYTP_FILE_LARGE_BUFFER_SIZE for minor optimization of zipping.
      Tweaked slowops.h generation. Added MANIFEST.SKIP.
      Made trace first option in NYTPROF during tests, so other options get shown if trace is set.
      Fixed extra newlines in trace message showing saved source code.
      Fixed chomping of newline in fid source code trace.
      Replaced open my $fh, '|-', @perl with open my $fh, "| @perl" to fix
      No longer warn about each instance of a negative time for a sub call, just count and warn at the end.
      Offer some concrete help to user of xen with clock problems
      Be a little more prescriptive, and fix whitespace
      Fixed compiler warnings
      Added listing of relevant env vars to t/00-load.t output
      Adjust t/test60-subname to move the "exit xsub via exception" test into the middle.
      Fixed example_xsub that was missing a PUSHMARK (causing occasional failing tests mentioned in previous commit)
      Added tests for CORE::GLOBAL::foo plus assorted data model methods
      Skip a test if $] < 5.008009 or $] eq "5.010000"
      Added t/40-savesrc.t missed from r914. Thanks Nicholas.
      Fixed file_line_range_of_sub to handle known subs with unknown file details, like UNIVERSAL::VERSION
      Added test for implicit utf8 SWASHNEW calls from regex (currently coredumps)
      Fixed t/test81-swash.t. Fails for perl >= 5.11.1.
      Don't output a diff if it's the same as the previous env-variant of the same test.
      Fixed to build with later 5.9.x's, thanks to Nicholas Clark.
      Added warning when reading a file with a minor version higher than expected.
      Enable assertions.
      Disabled savesrc=1 tests for perl 5.11.2 due to perl bug RT#70804
      Fixed dumb attempt to enable assertions.
      Added mention of quiet=>$bool argument to new() method.
      Added 'complete' attribute to indicate incomplete/truncated data
      Removed dofile from slowops for the same reasons as require.
      Protected some log messages from core dumps with corrupt data.
      Synced t/test12.rdt with removal of dofile from slowops in earlier commit.
      Added nameevals=0 and nameanonsubs=0 to make NYTProf less visible
      Fixed "Assertion failed: (isGV_with_GP(_gvstash))" from perl's t/op/caller.t and t/op/ref.t
      Better handling (ignoring) of threads/multiplicity, (at least good enough to pass perls own thread tests).
      Fixed for perl's t/op/caller.t
      Fixed typo in comment.
      Updated ppport.h
      Updated with recommendations from ppport.h.
      Added extra test that tickles an old perl bug. Currently fails.
      Added dot file for graph of "all inter-subroutine calls".
      Added some notes & comments re handling of xsubs and opcodes that call back into perl
      Give thanks where it's due!
      Added use of ppport.h to give compatibility to older perls
      Added $VERSION cross-check (I guess we really ought to use .PL files)
      Added crude testing of nytprofmerge. For every test with a .rdt file the .rdt file is
      Fix test count in t/test82-stress.t
      Added chunk of #ifdef-out code showing the sad state of the bug hunt
      Limitations docs: Two steps forward, one step back.
      Moved t/test82-stress.t into xt directory
      BEGIN's are now recorded as BEGIN at line to make them unique.
      Tweaked BEGIN at line test to cater for pre 5.8.9 and noted limitation in Changes.
      Noted in Limitations the lack of BEGIN/CHECK/INIT/END block calls for older perls.
      Added a DATA COLLECTION AND INTERPRETATION section to the docs.
      Added recommended perl version info to docs.
      Fixed "Total Time" in reports to be sanely formatted.
      Fixed avg/call time shown for subs called recursively.
      Don't build an unusable treemap if JSON::Any not install. Give reader a hint.
      Cop out of binding a key to move up a level in the treemap - just tell users to reload the page.
      There comes a time when you've just gott'a call it "Done!"
      Added documentation to nytprofcg.  Minor updates to nytprofcsv documentation.
      Fixed version number in nytprofmerge.
      Fixed typos in docs thanks to Jonathan Yu. RT#53146
      Removed use of vfscanf (which broke on windows)
      Removed some stray tabs from FileHandle.xs.
      Updated NYTProf docs, including noting major contributors, and referencing nytprofmerge.
      3.01, as released
      Tweak t/42-global.t to shed light on http://www.nntp.perl.org/group/perl.cpan.testers/2009/12/msg6603296.html
      Include more %Config details in t/00-load.t output
      Added docs section on making NYTProf faster.
      Changed subroutine profiler to be slightly more efficient.
      Added high-resolution (100ns) timer for Mac OS X thanks to Markus Peter.
      Fixed minor typo. Tweaked whitespace.
      Fixed handling of usecputime=1 option.
      If src not available then pad with blank lines so at least the data will be shown.
      Removed (old, undocumented) zero option.
      Fix off-by-one in recent src-missing change
      Sub profiler doesn't consider usecputime so shoudn't use ticks_per_sec.
      Added a test for RT#54600
      Avoid tripping over $! bug http://rt.perl.org/rt3/Ticket/Display.html?id=72850
      Don't profile goto \&sub if subr_entry_ix==0. Fixes RT#54600
      Added cputime test
      Updated cputime time test to better identify when cputime is really measuring realtime
      Ensure subprocess perl has same libs as us (e.g., if we were run with perl -Mblib)
      Minor tweaks to test harness.
      Rip out separate user & system cputime attributes as we're moving to a
      Implemented usecputime=1 support for subroutine profiler.
      Removed $fi->is_perl_std_lib and addressed the underlying need another way. Fixes RT#54204.
      Fixed up log errors and compiler warnings from r1069.
      Sort the sortable tables on-load so the sorted column gets a sort arrow. RT#47924
      Show "<- Index" backlink on all pages except the main index page.  Updated Changes.
      Only show excl_time in treemap mouseover box if different to incl_time.
      Prep for 3.02 (actually 3.01_90) release
      Restore file format compatibility with previous release..
      Avoided repeat reads from DATA in t/42-global.t
      Use PL_clocktick instead of CLK_TCK
      Make t/61-cputime more verbose, especially on freebsd
      More refinements to shed light on freebsd test failures like
      Fix Changes title (RT#54912) and tweak release details.
      Note that lvalue subroutines aren't profiled when using use_db_sub=1
      Whitespace tweaks in NYTProf.xs. Show d_sysconf in t/00-load. Show ticks_per_sec in t/61-cputime.
      Fix so $cpu1 on entry to foo() is accurate. (Test was failing on OS X
      Update for _96 dev release - hopefully the last!
      Don't generate index-subs-incl.html as it's not needed or referenced. RT#54895
      Added some notes re stub DB::sub sub.
      Added Makefile.PL options to control use of zlib/clock_gettime/machtime.
      Removed Devel::NYTProf::PgPLPerl module. That's now a separate PostgreSQL::PLPerl::NYTProf distribution.
      Made 'No file line range data for sub' warning less scary
      Make trace log for fids more informative
      Tweaked Changes for 3.02 release.
      Prep for dev release. Bumped version. Added Changes.
      Credit where it's due. Thanks Jan.
      Reverted r1158. More general approach to follow.
      Added skip_sitecustomize option to profile_this() and used it in tests.
      Added test t/70-subname using Sub::Name. Tweaked t/61-cputime to be less verbose.
      Added mechanism to help test if NYTProf.xs saves/restores errno (re t/50-errno.t)
      Tweak log levels of some messages
      Added Devel::NYTProf::Test::set_errno and used as probe in t/50-errno.t.
      Using SQLite for reporting on profile data might be a good direction...
      Tweak Changes for another dev release
      Updated HACKING file in various directions.
      Enabled savesrc=1 by default. Made 'read string' log less noisy. Tweaked some code indentation.
      Tweaked some trace levels
      Added evals=N option as part of ongoing work on string evals.
      Significant changes to support profile reporting on string evals.
      Corrected typos in nytprofhtml docs thanks to chocolate at cpan.org
      Some more nails in the coffin of ::Reader.
      Skip sequences of blank lines. (It turns out that perl doesn't save chunks of POD
      More major work on string eval support. This is now working well in the ideal
      Make incomplete profile message more consistent and add more details to the docs.
      Added docs about POSIX::_exit
      Assorted work towards string eval support plus collateral tweaks.
      Fix ::Reader handling of subdef_info and cleanup the code.
      Added collapsing of 'uninteresting' sibling string evals.
      Delete /tmp/ report dir contents before writing new one from .t --open
      More work on merging of string evals, including editing of sub called-by data
      Make eval dump info more descrptive. Sync golden test results
      Refine collapsing of evals to be more useful more often.
      Delete some old code.  Disable some debugging.
      Added automatic detection of calls to POSIX::_exit() by the sub profiler
      Prep for an alpha dev release
      Make t/10-run.t less likely to fail due to low resolution clocks.
      Assorted refactorings and cleanup.
      More string eval related polishing.
      Added docs and tests for string eval collapsing.
      Fix warning: comparison is always false due to limited range of data type
      Avoid dying when merging evals if any have no line_time_data.
      Write compression details comment on one line at end of file.
      Made it easy to disable run-time MULTIPLICITY sanity check if needed.
      Ignore 0's in calculate_median_absolute_deviation of file table on index page.
      Restore sorting of jump-to-filename drop-down.
      Added parent filename to collapsing-sibling-evals trace message.
      Finally worked out the secret to profiling mod_perl2 vhosts that use +Parent or +Clone.
      No longer normalise eval sequence numbers to 0 on loading a profile.
      Update docs for savesrc option and string eval processing.
      Only use perl -f when it's valid.
      Factor out handling of $this_perl and usesitecustomize -f into new perl_command_words sub.
      I'd missed another place where eval sequence numbers were normalized.
      Added CXt_LOOP to cx_block_type and the ability to show the int value for unknown types.
      Changed test24-strevalc.p so it's not sensitive to the leave option.
      #ifdef'd CXt_LOOP and added a comment. Removed a stray debug warn.
      Tweak to be more likely to get a diff from test errors on windows
      Don't bother checking for >0 time for t/10-run.t as it's not reliable.
      Avoid compiler warning
      Oops, forgot to static the buffer in cx_block_type()
      Fixed rec_depth in callbacks to be unsigned int not UV (which broke sub_caller
      Another thought for HACKING
      Allow heuristic that handles assignment of xsubs to source files
      Tweak trace level. Don't give 'already associated with package' message
      Add way to disable 'extra tests'.
      Hack test to make stable across different option settings.
      Multiple BEGINs (e.g., use) on the same line get distinct names
      Tweaked 'sibling evals' trace message.
      Uh. Still battling mod_perl2 PerlOptions +Parent issues.
      Avoid segv with mod_perl2. Not sure of root cause but removing the needless END
      Include app name in title of index page.
      Set endatexit and addpid options in Apache.pm.
      Update Changes and add item to Troubleshooting section.
      Added explicit NYTP_FIDf_IS_EVAL flag.
      Moved subs_defined_in_file(subs_defined_in_file=1) logic into new subs_defined_in_file_by_line method.
      Add note about DBI's xsub call optimization
      Fix filename_is_eval to allow "(eval N)" and not require the trailing "[...]"
      Add more detail of NYTPROF setting combinations when tests fail.
      Tweaked index page html title and Changes file.
      Drop unneeded trace message
      Shuffle order that NYTPROF option combinations are tested.
      Dodge option sensitivity in t/test51-enable by avoiding string evals.
      Better handling of profile data for line 0 (ie data that we couldn't associate with a line).
      Assorted trace tweaks.
      Fix and simplify padding of source lines
      Optimize fmt_fid_flags.
      More thoughts for HACKING
      Added NEED_my_strlcat
      Move subs that were called but have no filename (eg xsubs in packages that
      Prep for 4.00, finally!
      Disable some stray debug.
      Make the xen warnings stand out more.
      Note what still needs doing
      Restore use of normalize_eval_seqn for subs (ie anon) but not filenames (ie eval).
      Make subinfo dump (a little) easier to read
      Revert to disabling normalizing eval numbers - subs much be kept distinct and merged later.
      Allow collapse of sibling evals that have sub definitions (will only happen
      Bump NYTP_FILE_MAJOR_VERSION
      Fix the data format version check
      Revert to disabling normalizing eval numbers - subs much be kept distinct and merged later.
      Updated Changes, noted outstanding issues. Added item to HACKING.
      This now, finally, seems to do-the-right-thing for e.g. anon-subs that get merged
      Remove code for old 'merged subs have array of names' logic.
      Change some counters from int to UV.
      Add failing test showing problem with eval/anon merging.
      Extensions to other tests
      Limit impact on reports from outstanding eval/anon merge bug.
      Add Devel::NYTProf::Util::trace_level function.
      Replate $trace env var hack with new trace_level function.
      Fix test count.
      Finally escaped the eval/anon merging tar-pit by giving subinfo and fileinfo
      More notes re "Unable to determine line number" from 'preamble' in toke.c
      Bump the PL_scopestack_ix fudge for the "Unable to determine line number" warning.
      Add $fi->sibling_evals method and use to improve report output.
      Document collapsing of anon subs
      Fix case where eval has both merged and unmerged siblings.
      Use 'merge' in docs instead of 'collapse' to be consistent with the reports.
      Add note to subs that have been merged
      Doc updates, including link to updated example report.
      Only run mk_report_separator_line is there's something to follow.
      Added --minimal option to nytprofhtml to disable generation of
      Abort with more information when a cryptic death is forseen.
      Don't write a fake src line for "perl -e '...'" and "perl -" when src isn't available.
      Note some missing changes and credit Nicholas Clark
      Fix test to expect srclines_array to return undef when '-' file has no src.
      Fix links from block and sub level reports to evals to only use line level.
      Clarify perl version requirements for seeing eval source code. RT#58283
      Don't require VERSION number sync on so many modules.
      Bump version to 4.01.  Restore ordering of line-block-sub links on index page.
      Fix (silly) performance problem in $fi->evals_by_line
      Fix typo and tweak docs re performance.
      Remove old code to handle merged subs that had array refs as names.
      Add extra message to distinguish raw loading (Reading) with collapsing evals etc (Processing).
      Fix nytprofhtml --profself option.
      Tweak trace levels for reporting.
      More trace level tweaking
      Add cache to make_path_strip_editor()
      Added progress reporting to report generation
      Delete old script that's superceeded by nytprofheml --profself
      Use simpler scheme for progres indication (CR instead of BS).
      Bump version.
      For subs that recurse, show max depth and time in subroutine table.
      Move deletion of donor evals from parent to after the donors loop.
      Make percentage progress fixed width
      Update Changes
      Bump version to 4.03
      Flush trace log messages immediately
      Pre-extend PL_endav to reduce risk of crashes in apps that don't handle PL_endav carefully, like mod_perl.
      Start distilling various bits of info on memory profiling into a handy reference for the future.
      Updates to MemoryProfiling.pod, including links to email threads.
      Add $& to a couple of test files so we can test detection of PL_sawampersand
      Profile records presence of the slow regex match vars ($& $' $`).
      Flag the file on the index page in which we first saw the slow match variables.
      Add flag to fileinfo_of to avoid warning on undef arg.
      In collapse_sibling evals, update sawampersand_fid if it's one of the now-dead donors
      Add clear NOTE to the report for the sawampersand_fid explaining the issue.
      The cumulative inclusive time measured for subs that are involved in
      Prep for release. Bump versions. Update Changes. Move some items to HACKING.
      add exta link to memory profiling doc
      Tweak Changes for release.
      Mention B::Lint module (Devel::FindAmpersand "doesn’t work with a threaded perl").
      Be more liberal in assuming automated testing (and lax max timing).
      Tweak max allowed cputime.
      Fix some compiler warnings
      Add more items to HACKING and a comment in demo/demo-code.pl
      Added to HACKING:
      Bump noisy log output, when reading a profile, up to a higher trace levels.
      Protect against bad line numbers (eg -1 being treated as 4294967295) hanging report generation.
      Detect bad line numbers (-1 stored as unsigned) in sub caller data.
      Add $SIG{USR2} = \&Carp::cluck; as handy way to see what's happening
      Make 'file not found' messages related to Moose more self-explanatory.
      Prep for 4.05 release.
      fix t/10-run.t for bleadperl ac56e7d
      fix t/test08.t for bleadperl ac56e7d
      fix t/test09.t for bleadperl ac56e7d
      fix t/test23-strevall.t for bleadperl ac56e7d
      fix t/test20-streval.t and t/test50-disable.t for bleadperl ac56e7d
      Fix t/test61-submerge.t for bleadperl ac56e7d. The last one. Yeah!
      Prep for Devel-NYTProf-4.04_71 dev release
      Add Devel::NYTProf::Test::ticks_for_usleep($usec) to help test clocks
      Factor out clock initialization and ensure init'd from ticks_for_usleep.
      Preliminary reworking of statement time i/o
      Convert 'unsigned int's to U32's to be explicit.
      Move read_nv into FileHandle.xs
      Add workaround for some cpantesters failures.
      Prep for dev release
      Fix for sign issues on 64 bit systems.
      Add signed int i/o. Support signed tick counts for statements.
      Clarify the docs re clocks
      Added experimental BSD::Resource usage tracking
      clarify basic docs and add a link to a screencast to help initial users
      clarify error when unable to open profile file for writing
      Added note to the docs re profiling applications that use Coro
      Clarified usecputime=1 docs
      Add exit status to error message.
      No need for exclamation in "out of sync with source" warning
      add underscore to private function
      Updates tests for new functionality in Sub::Name 0.06 (assuming the relevant Sub::Name patch is applied)
      fix test count
      Improve trace messages related to associating packages with files
      Add preliminary (incomplete) test files for #line handling and Moose.
      remove unused import
      Improve handling of Class::MOP/Moose generated methods.
      Improve handling of embedded filenames, e.g., "(eval N)[$path]"
      Polish up handling of htmlopen option
      grumble about undef source lines
      reduce trace level for per-file messages related to src code
      Fix portability of pkg_name_len() to old perl versions
      Doc tweaks, mainly to the MAKING NYTPROF FASTER section.
      Tone down and update Testing details and add note about treating require as a slowop
      Added notes in HACKING re a start=begin option and a way to ignore CORE:accept time
      Make html option use the perl that's in the path
      Make t/68-hashline.t a developer only test for now
      Make stmt and leave trace messages more informative.
      Minor tweaks to t/71-moose.t
      Added "If Statement and Subroutine Timings Don't Match" and
      Note goto &sub (and thus AUTOLOAD and Memoize) as a cause of sub timing discrepancies
      Added --no-mergeevals option
      Minor tweak to ordering of fmt_time logic
      Fix skip_collapse_evals
      Update tests to be less sensitive to upcoming bleadperl changes
      Avoid undef warnings for lines with no time/call stats
      Some tweaks to HACKING
      Avoid nytprofhtml failure due to over-long filenames RT#62319
      Added NYTP_write_attribute_nv()
      Added special handling for the perl built-in accept()
      Sync tests.
      Document the special behaviour of accept()
      prep for release
      Silence compiler warnings
      Document removal of empty statements in 5.13.7+
      Disable the new initial CxMULTICALL support, and fix probable cause of segv on OpenBSD
      Prep for release
      minor edge case debug tweak for confusing CVs
      Added and clarified some notes in the troubleshooting docs
      Fixed html generation to be valid RT70207 (H.Merijn Brand).
      add some links to MemoryProfiling.pod
      Enable file=/dev/null to work as fix for RT74565
      add basic check for Apache2::SizeLimit and update docs RT#75912
      add note re using hide_subr_call_time to hide things like FCGI::Accept
      nytprofmerge no longer dies on some errors, RT#75918
      nytprofmerge de-tab
      sum cumulative_overhead_ticks in nytprofmerge RT#75909
      nytprofmerge now gets in man page installed, RT#75911
      Note Devel::NYTProf::Data is undocumented and why, RT#75914
      Added some TROUBLESHOOTING info
      Add --debug, add --open docs, use Browser::Open if available, rework related logic.
      Added section on "subroutine calls had negative time" to TROUBLESHOOTING docs
      Clarified docs re fork generating multiple files, RT#78873
      add ptest target to Makefile as alias for prove
      fix unused result compiler warnings
      add release date to Changes
      Fixed version numbers in nytprofhtml and nytprofmerge
      add note about flame graphs to HACKING file
      Bleadperl v5.17.3-252-gd3b9753 fix from David Mitchell.
      Prep for 4.09 release.
      Bumped VERSION
      Corrected spelling thanks to Alessandro Ghedini @debian RT80370
      Fixed to work with perl v5.17+, specifically string eval changes and hash randomization.
      fix unused var warning
      Fixed so tests ignore sitecustomize.pl, RT#79784
      clarify my (lack of) relationship to the NYT
      Fixed to sort tables with microsecond values in non-utf8 encodings, RT#77843
      Deprecate the usecputime=1 option
      prep for 4.11 release
      more prep for 4.11 release
      add .gitignore
      Fixed some doc typos thanks to Jesse Sheidlower.
      update MANIFEST.SKIP and MANIFEST
      add t/72-autodie.t
      add devstuff/ dir that has random stuff that is not part of the distro, yet
      add a few more demo/* scripts that were not previously checked in
      tweak .gitignore
      Removed usecputime=1 option. (Use clock=N instead if possible.)
      Update MANIFEST for previous t/61-cputime.t move
      add blib/ to .gitignore
      Fix stray non-ascii char in MemoryProfiling.pod
      Add =encoding to bin/nytprofhtml pod
      Fix the perl v5.17+ fix to do-the-right-thing for 5.17.4.
      remove now-unused struct tms start_ctime, end_ctime
      Fix stray non-ascii char in MemoryProfiling.pod
      Add =encoding to bin/nytprofhtml pod
      Fix the perl v5.17+ fix to do-the-right-thing for 5.17.4.
      Bump version to 4.12 and add Changes
      Merge branch 'nytprof-4.12'
      Rename CLOCKS_PER_TICK to TICKS_PER_SEC
      Use ticks_per_sec instead of TICKS_PER_SEC
      Replace cumulative_subr_secs with cumulative_subr_ticks. (First step of several)
      Convert initial_subr_secs to initial_subr_ticks.
      Convert called_sub_secs to called_sub_ticks.
      Convert incl_subr_sec to incl_subr_ticks.
      Convert excl_subr_sec to excl_subr_ticks
      Completed switch from accumulating secs to ticks in the subroutine profiler.
      Improved nytprofmerge behaviour with inconsistent attributes.
      Prep for 4.23
      minor tweaks to a few developer tests
      #if 0 a couple of unused funcs to silence warnings
      Updated Makefile.PL to refer to github
      add .travis.yml for CI testing via github and travis-ci.org
      Update the README
      Fixed tests to work with perl 5.17.7+ (PL_sawampersand gone)
      Further boost sub-profiler precision for POSIX and OSX clocks.
      Add travis-ci build status icon and link to README
      Note extra precision for POSIX and OSX systems with sub-microsecond clocks.
      Loosen timing constraints (for slow cpantester VMs)
      Clarify sigexit option docs
      Initial work adding sub entry and return events to the event stream
      Add some initial docs about the new call=1 option
      Add output and input handlers for sub entry and return data.
      Add call=1 to testing variants. Make env_influence report smarter.
      add note to t/test51-enable.x about need for more tests
      Use calls=2 to get entry events. Add depth to return events.
      Fix u2time clock (ie Time::HiRes, used by Windows).
      fixup MANIFEST
      update .gitignore
      merge Changes from v4 branch
      initial working nytprofcalls
      Squashed 'FlameGraph/' content from commit d9407a8
      Merge commit '8a0ed6170c6eae8f97b363d8b2a2fb6794b1bb41' as 'FlameGraph'
      Add FlameGraph/... to MANIFEST
      Cleanups for nytprofcalls
      working but somewhat inefficient/bloated on big files
      first step towards reusing the hashtable code
      another step towards reusing the hashtable code
      another step towards reusing the hashtable code
      work in progress on nytprofcalls
      Move next_fid into the hash struct as next_id. Make fidhash a struct again.
      Use entry_struct_size for allocation
      Pass Hash_entry to hash_op() as a pointer
      Fix setting of prior_inserted on insert branch of hash_op
      add subname->id mapping to same some memory
      rewrite nytprofcalls to use sane efficient tree structure
      add an optimization and some stats
      Adde tests for nytprofcalls
      add nytprofcalls to Makefile.PL
      normalize string eval seqn in nytprofcalls
      tweak docs, comments, Changes
      Rework option handling slightly. Add option values to data file.
      Complete work on adding options to data file and nytprofmerge
      Initial flamegraph support for overall program.
      Add caching to optimize url_for_file
      update to latest flamegraph.pl
      Use new flamegraph.pl features, including clickable functions.
      No longer warn about $& etc being slow if $] >= 5.017008.
      Set calls=1 and blocks=0 by default
      scale nytprofcalls output to (floating point) microseconds
      Fix nytprofmerge syntax error. Add SUB_ENTRY/SUB_RETURN.
      Added visualization of the time spent outside of any subs.
      quiet a test
      update flamegraph.pl
      rm FlameGraph
      remove old FlameGraph repo from MANIFEST
      Add Test::Differences to deps. Remove t/test14.calls
      Fixed test for perl 5.17+ hash randomization.
      Tweak wording on index page.
      Use actual micro character (latin1).
      ensure exit with 0 status
      sync test with recent micro change
      Add sanity check to nytprofcalls and disable broken optimization.
      bug fix for flamegraph.pl
      tweak the tracing for sub call/return
      Update Changes and HACKING
      sync tests for nytprofcalls fix
      Merge branch 'v5'
      update bin/flamegraph.pl
      use bin/flamegraph.pl --factor instead of floating microseconds
      improve open/close logging and clarity profiler_duration calculation
      update bin/flamegraph.pl
      include ticks_per_sec in init_profiler log msg
      Use profiler_active not profiler_duration for flamegraph total
      refector hash structs to be reusable
      Minor tidy up of hash structs. Added hash_stats() function and strhash table.
      Pass key & len to hash_op instead of &entry. Add get_str_id.
      Implement string ids to reduce output volume. Currently just for calls stream.
      mark bin/nytprofcsv as deprecated
      Tweak Devel::NYTProf docs.
      Don't index SVG package in bin/flamegraph.pl
      Dump assorted notes into HACKING
      add --no-flame option to nytprofhtml
      Merge remote-tracking branch 'origin/master'
      Merge branch 'pr/2'
      Update Changes.
      Merge remote-tracking branch 'remotes/origin/pr/1'
      bump version to 5.00
      update flamegraph to fix percentages
      Update MANIFEST
      update flamegraph with text improvements
      Fix memory leak reading sub call return events
      Do proper tree merging in nytprofcalls for sane memory use.
      Apply a little polish
      Prep Changes for 5.00 release.
      Merge pull request #3 from gisle/master
      Merge pull request #4 from gisle/gcc-error
      Update Changes
      Fix Windows build RT#84738.
      prep for 5.01 release
      Fix Windows build, properly RT#84738.
      Prep for 5.02 release.
      Merge remote-tracking branch 'origin/pr/5'
      Add meta robots noindex to html pages [Tokuhiro Matsuno]
      Avoid uninit warning
      bump VERSION for release
      Merge pull request #7 from doherty/nytprofhtml-pod-minimal
      Add "Other Tools" section to SEE ALSO with link to DTrace talk
      Merge branch 'master' of github.com:timbunce/devel-nytprof
      Add libcexit=1 option thanks to Zefram RT#75912
      Add documentation for endatexit and libcexit options.
      Mention nytprofhtml --minimal RT#86039 in Changes
      Allow negative times in tests, thanks to Gisle Aas, RT#85556.
      Prep for 5.04 release
      Fixed crash on "Can't use string as a subroutine ref" error, RT#86638
      Merge pull request #8 from dsteinbrunner/patch-2
      Merge pull request #9 from dsteinbrunner/patch-1
      Merge pull request #10 from moritz/master
      Fixed crash with libcexit=1, thanks to Zefram. RT#86548
      Bump VERSION to 5.05
      Update test90-strsubref.t for 5.18.x style error message
      Update Changes. Tweak PR#10 doc change
      Merge pull request #12 from dsteinbrunner/patch-1
      Update Changes for PR#12
      Fixed for perl 5.19.4. RT#88288 thanks to sprout.
      Fixed to no longer open a file when start=no. RT#87404.
      Fixed compiler warnings. RT#86728 thanks to Alexander Bluhm.
      Removed old benchmark.pl files. RT#86704.
      Bump version to 5.06
      Merge pull request #17 from zentooo/add_timestamp
      Polished up addtimestamp option and interaction with addpid option.
      Merge pull request #11 from holger-s/master
      Tweak plat_form support merge and add Changes file note.
      Wrap $SIG{USR2} assignment in an eval for Windows
      Avoid NV to IV cast for NYTP_OPTf_ADDTIMESTAMP
      Put quotes around env var values reported by t/lib/NYTProfTest.pm
      Fix t/test02.pf to not require unix-style file paths
      Fixed an '#if PERL_IMPLICIT_CONTEXT'.. Added link to explanatory comment. Added Changes.
      Add pf (platform) files to MANIFEST, plus .travis.yml
      Fix to write platforms test files to the temporary test output directory
      Add perl 5.8, 5.18 and 5.19 to .travis.yml
      Refactor some nytprofcalls internals. No functional changes.
      Refactor Time::HiRes support so it can be enabled independently
      Simplify diff_files() in t/lib/NYTProfTest.pm
      Better diagnostics for fileinfo_of('(eval 1)[-:1]') failure
      Only run t/70-subname.t if Sub::Name 0.11 or later is installed.
      Fixed link to screencast, thanks to Herwin. #19
      Workaround travis cpanm issues eg https://travis-ci.org/timbunce/devel-nytprof/jobs/35285944
      Improve .travis.yml
      Further tweaks to .travis.yml
      Added hint to use --no-flame for big reports. #28. Added t/test02.pf.csv
      Further tweaks to .travis.yml
      Fixed use of nytprofcalls and flamegraph scripts to not require PATH #21
      Fixed nytprofhtml --open for KDE4 thanks to HMBRAND RT#99080
      Fixed printf NV conversion compiler warnings thanks to zefram RT#91986
      Disabled optimize test25-strevalb.t if perl >= 5.20, perl RT#70211, #38
      Fix syntax of perl_rt70211 check in t/test25-strevalb.t
      Merge pull request #41 from wollmers/patch-1
      Merge pull request #40 from mohawk2/testfix
      Allow sub name buffer size to be set at build time
      Update Changes.
      Put sort block on one line due line numbering change in perl 5.21
      Move tie tests into perl version specific variants
      Commit the missing skip_all left off previous commit
      Install optional modules for better test coverage
      Don't fail due to failure to install optional prereqs
      Preload some Moose prereqs to avoid travis-ci 60 sec timeout
      Use travis_wait to workaround 'cpanm Moose' timeout
      Give up testing with Moose due to timeouts
      Add docs re FCGI::Engine and open('-|') #20
      Bump version to 5.07
      Clarification of the RUN-TIME CONTROL OF PROFILING docs
      Clarify reason for loading Devel::NYTProf as early as possible.
      Merge pull request #61 from calid/perlbrew-locallib
      Make t/50-errno.t write .out file in t/ like other tests
      Update MANIFEST.SKIP
      Update MANIFEST via "make manifest" and sort
      Use "Devel::NYTProf::Changes" as NAME in Changes
      Add File::Which to prereqs and update Changes for #61
      Merge pull request #63 from dbooth-boston/master
      Merge pull request #64 from wollmers/patch-2
      Merge pull request #67 from bulk88/PMC
      Merge pull request #69 from bulk88/setvbuf
      Clarified the docs re DB:: functions, #63 and updated Changes
      Add QueryPerformanceCounter clock for Windows
      Fix unused variable warnings RT#103107
      Bump version to 6.01 (in honor of Windows enhancement from bulk88).  Changes.
      Merge pull request #73 from karenetheridge/topic/json_any_deprecated
      Replace all search.cpan.org urls with metacpan.org urls
      Merge pull request #74 from karenetheridge/topic/metacpan_urls
      Merge pull request #75 from jandubois/context-fixes
      Updated to latest flamegraph.pl plus PR#62.
      Fix JSON::MaybeXS usage.
      Use --hash on flamegraph (experimental). Update Changes. Bump version to 6.02

Uwe Voelker (5):
      Rewrite test system: Each test now has its own .t file (using t/lib/NYTProfTest.pm). Next steps: Remove 20.runtests.t and update HACKING to reflect the new test system.
      Fixup t/test30-fork.0.t for Windows
      Remove no_plan from tests, allow additional tests (see example in t/test01.t)
      Removed t/20.runtests.t, fixed MANIFEST
      fixed test 30.util (wrong test count; issue 13)

bulk88 (6):
      update gitignore for Windows build products
      use PERL_NO_GET_CONTEXT everywhere
      reduce errno calls
      PERL_DISABLE_PMC might be anywhere, not in CCFLAGS
      Add QueryPerformanceCounter clock for Windows
      use setvbuf to increase buffer size

gregor herrmann (1):
      Imported Upstream version 6.02+dfsg

holger (2):
      - removed Data::Dump dependency
      removed Data::Dump dependency

zentooo (1):
      I'd like to add timestamp suffix to  for file purge in production environment

-----------------------------------------------------------------------

No new revisions were added by this update.

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdevel-nytprof-perl.git



More information about the Pkg-perl-cvs-commits mailing list