Algorithm-SkipList

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.70_01 Sun Jun  6 2004 
	- tests rewritten (work in progress)
	- fixed bug with next_key checking node when key was deleted
	- uses Test::More for tests
	- fixed "Too late to run INIT block" error with Test::More
	  use_ok, $NULL is now set in import() method
	- fixed bug where level sometimes exceeded user-set max level
	- P and max_level can now be set dynamically
	- added tests for max_level and p
	- checks for error when setting max_level or P
	- fixed bug with definition of List::SkipList::Null
	- $NULL is now an 'our' variable and accessible from outside
	- level method was changed to autoload, since it was redundant
	- minor optimization of _search_with_finger and _search
	* header method in Node is read-only - it returns a pointer
	  which can be used to change values anyway
	* key method in Node is read-only - it should not be
          changed once it is inside a list
	- added _adjust_level_threshold method from code that was in
	  _new_node_level to adjust SIZE_THRESHOLD/SIZE_LEVEL
	- _adjust_level_threshold is called upon inserts and deletes
	- SIZE_LEVEL does not decrease under MIN_LEVEL
	* removed null() method - it was never used
	* max_level cannot be greater than 32 (cleaner code)
	- increased coverage of "heavy" test script
	- minor updates to all test scripts

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.



( run in 0.885 second using v1.01-cache-2.11-cpan-e1769b4cff6 )