The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for List::BinarySearch

0.25 2014-12-02
  - Microoptimization: Cache caller() out of loops. (Part of GH Issue 2).
  - Improve math to avoid possibility of overflow.
    (https://en.wikipedia.org/wiki/Binary_search_algorithm#Arithmetic
    and part of GH issue #2.)

0.24 2014-12-02
  - Fix SYNOPSIS typos in L::BS and L::BS::PP (Closes GH issue #1).

0.23 2014-12-01
  - Remove some diagnostics code.

0.22 2014-12-01
  - Comment reason why we goto &Exporter::import rather than calling SUPER::.
  - Make it easier to manage distribution version numbering.
  - Shift bugs/feature requests from RT to GitHub issues.
  - Recommend List::BinarySearch::XS v0.06 (was v0.05).

0.21 2014-12-01
  - Improve logic for overriding 'import' on pre-Perl 5.20.

0.20 2014-02-20
  - This time really do fix version numbers. ;)

0.18 2014-02-05
  - Fix version numbers.
  
0.17 2013-11-05
  - Custom wrapper for import() that touches $a and $b in caller's
    namespace for Perl versions < 5.020, to squelch "used only
    once" warnings.  This issue will be fixed in Perl 5.20.

0.16 2013-10-28
  - Fixed POD typo (bug in example).

0.15 2013-09-27
  - Removed unnecessary max==min test in L::BS::PP::binsearch (save a cycle:
    just an efficiency improvement).

0.14 2013-09-26
  - NEW API IS NOW STABLE: DEPRECATED FUNCTIONS HAVE BEEN REMOVED.
  - List::BinarySearch::XS will now be used as an optional default dependency.
  - In interactive mode, CPAN installers will prompt for permission to use 
    this dependency.  Default action is yes.
  - Set LBS_NO_XS to prevent installing the XS module, or answer 'no' in
    installer's interactive mode.
  - Test coverage is now 100%.

0.13_001 2013-09-24
  - DEVELOPERS RELEASE -- Testing Makefile's optional dependency code.
  - Added meta spec version and git repo to META information.
  - Updated examples/bsearch.pl to use binsearch
  - Makefile.PL prompts to add List::BinarySearch::XS dependency.
    (In non-interactive environment, this defaults to yes.)
    See POD for additional configuration information.
  - META_MERGE => recommends => List::BinarySearch::XS, for those clients
    that understand the 'recommends' semantics from META spec 2.0.

0.13 2013-09-17
  - TRANSITIONAL PUBLIC RELEASE -- DEPRECATED FUNCTIONS WILL BE REMOVED SOON!
  - Minimum Perl version supported is now 5.8.  Earlier Perl versions weren't
    compatible with this module's use of prototypes.
  - Additional coverage tests added: 100% branch and 98% conditional coverage
    of non-deprecated functions. (Don't worry about a single untestable
    condition in non-critical code.)
  - Fixed version number inconsistency (while bumping to 0.13).

0.12 2013-09-05
  - TRANSITIONAL PUBLIC RELEASE
  - Many of the old functions have been deprecated and should be removed from
    user code in favor of the new binsearch, binsearch_pos, or binsearch_range
    functions, which are easier to use, faster, and will cure acne.
  - POD revisions.
  - Establish interoperability with List::BinarySearch::XS; Install this
    module, install List::BinarySearch::XS, and when you use List::BinarSearch
    it will automatically upgrade to the XS functions for high performance if
    they're available.
  - THIS IS YOUR ONLY WARNING: Version 0.20 will remove deprecated functions;
    see the POD for tips on simple migration to the new syntax.

0.11_003 2013-09-04
  - DEVELOPER'S RELEASE
  - Strengthened language on deprecation of obsolete functions.
  - Improvements to isa tests.
  - Fixed a typo in the POD demonstrating comparator complexity for complex
    datastructures (see, it bit me too).
  - Restore Perl 5.6 compatibility for the pure-Perl implementation.

0.11_002 2013-09-03
  - DEVELOPER'S RELEASE
  - POD revisions to recommend installing List::BinarySearch::XS
  - Updates to tests, including tests to verify we get the correct
    binsearch implementation depending on availability of XS module.
  - Split pure-Perl implementations of binsearch and binsearch_pos
    into List::BinarySearch::PP, included with distribution.
  - List::BinarySearch will now use List::BinarySearch::XS for 
    binsearch and binsearch_pos implementations, or the ::PP module
    (included) if the ::XS hasn't been installed.
    (May be overridden by setting $ENV{List_BinarySearch_PP} true.)

0.11_001 2013-08-20
  - DEVELOPER'S RELEASE
  - Deprecated all existing functions under their current names.
  - Three new functions: binsearch, binsearch_pos, binsearch_range. These
    replace bsearch_custom, bsearch_custom_pos, and bsearch_custom_range.
    The others will not be replaced, as they can be created using the more
    generalized functions.
  - Major documentation changes.
  - Announce upcoming List::BinarySearch::XS that when installed will be a
    silent and automatic performance upgrade.
  - $a and $b now permitted in place of $_[0] and $_[1].  The old @_ paramater
    passing has been deprecated.
  - The next major release, v0.12 will formally deprecate according to
    the list above.

0.11 2012-11-02
  - "Changes" now CPAN::Changes::Spec compliant.
  - t/09-changes.t added to verify spec compliance.

0.10 2012-10-25
  - API ADDITION: Added bsearch_custom_range function.
  - Added explanation and example to POD on how to handle lists 
    sorted according to the Unicode Collation Algorithm 
    (Unicode::Collate).
  - Added tests for bsearch_custom_range.
      
0.09 2012-05-30
  - BinarySearch.pm is now B::Lint friendly.
  - Added an examples/ directory.

0.08 2012-05-09
  - API IS STABLE.
  - Applied improvements to Makefile.PL from lessons learned in other
    more cranky modules.
  - Improved Kwalitee for Makefile.PL
  - Improved minimum Perl version handling (still 5.6.0).
  - Added t/13-kwalitee.t
  - Improved Perl::Critic compliance in test suite and Makefile.PL.
  - Minor bugfixes t/00-boilerplate.t

0.07 2012-05-05
  - API ADDITION: Added bsearch_custom_pos function.
  - API DELETION: Removed bsearch_general, and bsearch_general_range.
    They were redundant, and prone to user-error.
  - POD improvement: Added a quick reference to aid in selecting the
    most appropriate search function from the several choices.
  - Added bsearch_custom_pos.
  - Removed confusing and redundant _general functions.
  - Improved testing on the _pos and _range functions.

0.06 2012-05-04
  - API CHANGES -- SEE BELOW.
  - Added five functions:
      bsearch_str_pos - Return value always gives an insert-position.
      bsearch_num_pos - Return value always gives an insert-position.
      bsearch_str_range - Return a range.
      bsearch_num_range - Return a range.
      bsearch_general_range - Given a pair of targets returns a range
                              of element indices between (inclusive).
  - The _general functions are deprecated and will be removed from next
    release.
  - Tests added for five new functions.

0.05 2012-05-01
  - POD corrections
  - POD Example code.
  - POD Spelling.


0.04 2012-04-30
  - POD corrections (Thanks to Corion).


0.03 2012-04-30
  - POD corrections.

0.02 2012-04-30
  - Stable release.  API may only break compatibility after a
    deprecation cycle.
  - bsearch_arrayref gets prototypes and becomes bsearch_str,
    and bsearch_num.
  - bsearch_transform_arrayref becomes bsearch_transform.
  - bsearch_custom is born.
  - bsearch_list is gone.
  - All functions now have prototypes to gain the familiar
    user-interface of List::Util and List::MoreUtils.
  - A few POD typos fixed.
  - Many POD changes to clarify text and simplify examples.
  - Several logic paths were unrolled to eliminate relatively expensive
    subroutine calls inside of tight loops.

0.01_005 2012-04-28
  - Beta testing.  API may change.
  - Developer's release.
  - Breaks compatibility with previous API.
  - Order of args for bsearch_arrayref and bsearch_transform_arrayref
    rearranged to match bsearch_list.
  - Fixed a few POD formatting issues.
  - Changed Test::More dependency from '0' to '0.98' to assure a version
    of subtest() that doesn't fail under Perl 5.10.0.
  - POD changes to reflect updated API.
  - Test t/11-search.t modified to support API changes.
  - Reworded a few portions of the POD for (hopefully) better clarity.

0.01_004 2012-04-27
  - Beta testing.  API may change.
  - Developer's release.
  - Breaks compatibility with previous API.
  - Changed bsearch_array() to bsearch_arrayref()
  - Added bsearch_transform_arrayref(), and supporting POD and tests.
  - See API CHANGES.
  - Added a few more tests to 11-search.t.

0.01_003 2012-04-25
  - Beta testing.  API may change.
  - Developer's release.
  - Removed //= from bsearch_array() to establish backward compatibility
    with Perl 5.8.0 and older.

0.01_002 2012-04-25
  - Beta testing. API may change.
  - Developer's release.
  - Fixed a coderef detection bug in bsearch_list().
  - Many POD revisions.
  - Completed 11-search.t tests.
  - Many test suite revisions.
  - List/BinarySearch.pm is now Perl::Critic level 2 compliant.
  - Test suite is Perl::Critic level 4 compliant.

0.01_001 2012-04-23
  - Beta testing.  API may change.
  - Developer's release.
  - Initial release to CPAN.
  - Unstable -- Seeking smoke test results.