Revision history for Perl extension List::SkipList. (Changes which may
not be backwards compatible are marked with an asterisk '*'.)
0.65 Thu June 3 2004
- updated README
0.64 Thu June 3 2004
- updated examples in documentation of custom node
- minor optimizations and code cleanup
- commented-out call to prev() in _debug
- removed use of Carp::Assert in tests
- redesigned benchmark script and included parse-out.pl
- updated Benchmark.txt
- updated README
0.63 Fri May 28 2004
- The default value of P is now 0.25, which appears to yield
better results in tests.
* renamed _random_level to _new_node_level
- SIZE_THRESHOLD/SIZE_LEVEL now decrease with deletions
- additional minor optimizations and code cleanup
- optimizations of Header and Null node types
- updated tests
- Benchmark: re-commented-out delete test for Tree::RedBlack
(which was accidentally uncommented in v0.62)
0.62 Tue May 18 2004
- fixed typo in (commented-out) assertion
- additional minor optimizations and code cleanup
- updated tests
- corrected README
0.61 Mon May 17 2004
* find no longer returns a finger in array context
* header is now a special subclass of List::SkipList::Node
- added special Null subclass of Header
- added null() method to return global null node
- a lot of minor code optimizations
- added comments
- maximum level of new nodes changed so that it is based on size
of list
- updated Benchmark.txt file
0.60 Sat Apr 24 2004
- updates to POD
- cleaned up comments
- added next function
- redid last_key, first_key and next_key functions
- last_key accepts arguments to modify LASTKEY
- changed calls to die to croak
- added experimental hooks to implement prev and prev_key methods
- added stub prev_key method
- bug fix: reset method called during copy method
- added more tests to heavy test script
* renamed find to find_with_finger and added find for searches
which do not return updated fingers
* renamed _search to _search_with_finger and added _search for
searches which do not return updated fingers
- modified next_key test to check for initial key of "0"
- removed if (CACHE_INSERT_FINGERS) tests
- additional optimizations and code cleanup
- added test to search for non-existent keys in Benchmark.pl
0.51 Mon Apr 12 2004
- fixed bug with next_key method called without first_key
- added tests for this bug
- added "heavy" test to distribution
- minor optimizations of delete method
- assertions are no longer required (which leads to ~3% speedup)
and removed section in POD about assertions
- removed commented-out references to forward method
- minor updates to source code comments
0.50 Mon Mar 29 2004
- section about Assertions added to POD
- documented level() method
- clear method now intitializes initial node header
- added various assertions
* removed the forward method from *::Node
- uses enum module
- added test for non-integer keys
- clear method now resets LAST_INSRT cache
- removed use of LEVEL for List::SkipList::Node
* key_cmp method accesses KEY directly rather than uses the key method
* calling convention for List::SkipList::Node is changed
- various optimizations to List::SkipList and *::Node
- added comparison to Tree::RedBlack in Benchmark.pl
- minor changes to _search method
- added Benchmark.pl script for generating benchmarks in distro
- redesigned benchmarking script
0.42 Sat Mar 20 2004
- fixed bug with Build.PL not autospliting files
0.41 Fri Mar 19 2004
* List::SkipList::Node is now array-based rather than hash-based
to improve speed.
- updates to POD, README, Benchmark.txt
- added search method as alias to find
- renamed Benchmark to Benchmark.txt
- optimized deletions
0.40 Wed Mar 17 2004
- added Benchmark file to distribution
* key_cmp now ignores when key is undefined
- _insert returns the value of $node->key_cmp($key)
- broke up test cases into separate files
- added finger caching to speed up sequential inserts
- fixed bugs with values, keys, copy, merge, first_key and next_key
methods related to use of search fingers
- fixed bug with append method
- fixed bug with search fingers: they were not being used
- _debug now prints to STDERR
* reset method is not called when a new node is added or deleted
(which is in accord with documentation)
- stub for next method added
- List::SkipList::Node ignores invalid and extra arguments
- minor optimizations in List::SkipList and List::SkipList::Node
- improved speed of _random_level
- disabled assertions (for 50% speed improvement!)
- inserted corrected comment in README about actual performance in
comparison to trees
0.33 Tue Mar 16 2004
- fixed typos in test cases that caused Makefile tests to fail
- removed causes of warnings in 01-SkipList.t
- replaced explicit package names with __PACKAGE__ placeholder
0.32 Mon Mar 15 2004
- renamed test.pl to t/01-SkipList.t
- added Build.PL to distribution
- updated README
- corrected and updated POD
0.31 Fri Feb 13 2004
- removed memoized node example from POD
- reformatted E-mail addresses in various files to foil
spam harvesters
- changes calls to keys to CORE::keys [Bug 5317]
- added version to List::SkipList::Node
- corrected errors in POD formatting
- corrected and updated POD
- added META.yml file to distribution
0.30 Tue Dec 2 2003
- ability to tie hashes
- made some methods autoloading
- added last_key and reset methods to allow auto-enumeration
- added least, greatest, keys and values methods
- added _first_node, merge, append and copy methods
- insert now returns a finger
- more updates to documentation
0.21 Wed Nov 26 2003
- bug fix: first_key method returns a proper finger
- added documentation and tests about memoization
0.20 Wed Nov 26 2003
- if no last_key specified for next_key, it returns first_key
- search fingers added
- find, first_key, next_key return a list in list context as part of
support for search fingers
- minor changes to documentation
0.13 Wed Nov 19 2003
- added call to validate_key in key_cmp in Node
0.12 Wed Nov 19 2003
- added validate_key and validate_node methods to Node
0.11 Sun Nov 16 2003
- modified test script to better check next_key function
- bug fix: next_key did not check that $last_key existed
0.10 Sat Nov 15 01:11:00 2003
- updated test script appropriately
- added first_key and next_key methods
- added ability to customize List::SkipList::Node
- moved debug method to after __END__ block
- renamed random_level to _random_level
- changed type checking to use isa() method
- updated documentation
0.02 Fri Nov 14 01:08:00 2003
- incorporated experimental code into module
- began writing initial test script
0.01 Fri Nov 14 00:50:00 2003
- original version; created by h2xs 1.21 with options
-X -n List::SkipList -v 0.01
0.00 Wed Nov 12 2003
- experimental versions, unreleased.