Release History

# Versions 0.1 to 0.2 #

Initial release and changes to fix some problems turned up by CPAN
smoker tests.

# Version 0.03 #

Major overhaul, resulting in massive improvements in speed and memory
usage.

Some notable changes:

* changes to calling conventions for resolve()
* removed "empty check block" code
* removed "duplicate check block" code
* improved fisher-yates shuffle (uses strings internally for speed)
* improved semantics for expansion of message/aux blocks
* extended test scripts updated to account for changed API
* new smoker.pl script for finding bugs
* some extended tests can now take a seed value (repeatable outputs)
* changed to github as main work repository
* experiments with "premature" edge deletion (backed out)
* various code cleanups (more readable)
* implement counts of unsolved nodes (big speedup)
* use separate up, down edges internalls (more speed gains)
* various in-lining (for speed)
* new "auxiliary rule" can solve more nodes than old algorithm
* improved data structures (hashes replaced by lists in many places)
* "lazy" expansion rule to avoid need to toggle entries in hashes
* remove code for generating graphvis graphs
* fix various bugs, typos
* when adding check blocks, don't make edges to already-solved nodes
* including Makefile.PL in distribution (generated by Module::Build)
* new and updated documentation (README.md, HISTORY, LICENSE, etc.)
* more/better DEBUG/ASSERT code (turn on/off via use constant)
* refactoring to improve readability
* allow (unsafe) fallback to rand() for machines without /dev/urandom

