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.