The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.71_01

  • fixed bug in benchmarks (was deleting bogus keys)
  • added some warnings
  • improved delete method
  • added truncate method
  • _search_with_finger now builds correct update vector
  • append calls _adjust_level_threshold
  • minor optimizations of node class
  • renamed internal key {LASTNODE} to {LIST_END} so as not to be confused with last_key method
  • _first_node is not autoloading since it's now used by first_key
  • updated POD to reflect issue with undefined values
  • improved copy method (undef values handled)
  • copy method can accept an argument: copy from key
  • copy method no longer resets first_key
  • _first_node no longer returns a finger (it was never used)
  • updated documentation on values for max_level and p
  • corrected typos in documentation
  • added tests for deleted greatest bug
  • fixed bug with greatest method when deleting last node
  • added _greatest_node method to find the last node as needed
  • other minor code changes

Changes for version 0.70_01

  • 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

Modules

Perl implementation of skip lists

Provides

in lib/List/SkipList.pm
in lib/List/SkipList.pm
in lib/List/SkipList.pm