=head1 NAME

Changes - Revision history for DashProfiler

=head1 RELEASES

=cut

TODO:
Flush at rollover (new profile node created - may not be reliable/safe)?
Option to Flush (_if_due) only at period end
Move DashProfiler::Dump* packages out to modules DashProfiler::DumpTo::*
Ponder need for workaround for systems with clocks that go backwards
    such as cygwin http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg630399.html
    current assumption is that it doesn't matter if profiling for 'long enough'.
Add test for throwing an exception in context2edit as way to veto sample - and document
Add tests for set_precondition

disabled should set inuse so the check for disabled can be moved inside the 'already inuse' block

=head2 DashProfiler 1.13 - r50 - May 8th 2008

  Changed DashProfiler subs that may be used as Apache handlers
    to return -1 (DECLINED).

=head2 DashProfiler 1.12 - r48 - Mar 25th 2008

  Fixed period_exclusive sample calculation of overheads.
  Fixed period_sample to be disabled until start_period_sample() called.
  Slight performance boost (0.000015 instead of 0.000017).

=head2 DashProfiler 1.11 - r45 - Mar 24 2008

  Now ~17% faster (cheaper) when using DBI >= 1.603.
  Make tests more robust and work with Perl 5.10.

=head2 DashProfiler 1.09 - r43 - Feb 20 2008

  Added $sample->current_sample_duration method.
  Added $core->period_start_time method.
  Added DashProfiler->profile_names method.
  Added DashProfiler->set_precondition method.
  Added DashProfiler::Core->estimate_sample_overheads.
  Added automatic measurement of sample overhead time.
  Updated DashProfiler::Apache to use set_precondition
    to start sample periods only for initial requests.
  Updated DashProfiler::Apache docs to suggest PerlInitHandler
    instead of PerlPostReadRequestHandler.

=head2 DashProfiler 1.08 - r36 - Sept 11 2007

  Fixed fatal error in visit_profile_nodes() for DBI profiles with no Data.

  Changed propagate_period_count() to not reset period_count.
  Changed to increment period_count in end_sample_period() not start_sample_period().
  Changed start_sample_period() to not call end_sample_period() automatically.
    So now multiple start_sample_period() calls without end_sample_period() calls
    are harmless - the period runs from the most recent start_sample_period() call.

  Added period_strict_start and period_strict_end attributes to control how
    missing/multiple start_sample_period() & end_sample_period calls are handled.
    The attributes can be code refs which are called when needed.
  Added extra_info attribute for use by scripts to carry any extra information.

=head2 DashProfiler 1.07 - r32 - Aug 16 2007

  Added DashProfiler::Apache
  Added -optional syntax to DashProfiler::Import

=head2 DashProfiler 1.06 - r29 - Aug 14 2007

  Fixed DashProfiler::Import :optionally to still export stubs
  Changed DashProfiler reset_all_profiles() to not call start_sample_period_all_profiles().
  Changed DashProfiler::Auto to use file name not full path.
  Changed DashProfiler::Core end_sample_period() to do nothing if no period is active.
  Added more docs, especially to UserGuide and Auto.

=head2 DashProfiler 1.05 - r25 - Aug 10 2007

  Added :optional to DashProfiler::Import
  Added dbi_profile_args to pass extra args to dbi_profile_class->new().
  Added DashProfiler::Auto for simple uses, including one-liners
  Added lots of documentation.

  Require perl 5.8 (just due to sprintf '%$N' usage in tests). Works for 5.6
  Made Scalar::Util::weaken optional.
  Removed spool_directory arg (use dbi_profile_args => { Dir => ... } instead)
  Set local $ENV{DBI_AUTOPROXY} to avoid risk of problems
  Generalized get_dbi_profile() to take a '*'
  start_sample_period and end_sample_period check for overlaps
  end_sample_period now returns period_sample DBI Profile object not dbh
  Changed semantics of flush_hook return value.

=head2 DashProfiler 1.03 - r15 - Jun 23 2007

  Fix flush_hook attribute in flush(),
  Make Hash::Util optional.
  Make Perl::Critic optional.

=head2 DashProfiler 1.02 - r12 - Jun 21 2007

  First full release (1.01 was incomplete)

=cut
