Welcome to String::Approx 3.0.

This release is a major update from String Approx 2,
of which 2.7 was the last release.

The most important change was that the underlying algorithm was
changed completely.  Instead of doing everything in Perl using regular
expressions we now do the matching in C using the so-called Manber-Wu
shift-add algorithm.  You have met this algorithm if you have used
the agrep utility or the Glimpse indexing system.  More details
in the file README.apse.

This change brings both good and bad news.  Good news first.

* We are now 2-3 times faster than String::Approx version 2.
* There should be no limit on the length of the pattern.
  Extremely long patterns haven't been tested much, though, so
  please do not assume overmuch.  The used algorithm is actually
  _independent_ of the length of the pattern: it's O(kn) where
  k is the number of errors and n the length of the text.

Then the bad news:

* You do need a C compiler.  If your system does not have a C compiler
  you should either get one or find a friendly soul to compile this
  extension for you.
* The semantics of asubstitute() have changed.  The match is now
  always stingy; that is, as short as possible.  Previously
  if you matched for "word" with edit distance of two, "cork"
  and "wool" both would have matched -- and they still do.
  But: the matching parts will be "or" and "wo" and nothing more.
  There's still the stingy option but that's rather pointless now
  as far as shortening the match goes: it is now useful only for
  sligthly speeding up matching.  This change messes up asubstitute()
  rather badly, I'm very sorry about this.  I will try to think of
  something better in future releases.
* aregex() is gone not to return because we no more use regular expressions.
* The 'compat1' option to be backward compatible with String::Approx
  release 1 is no more supported.
  
Perl 5.004_04 required (but I recommend 5.005_02).

Installation is as horribly complicated as before:

	perl Makefile.PL
	make
	make test
	make install

Let me (jhi@iki.fi) know of any trouble.  Also let me know of
cool uses you put String::Approx into.

That's it.  Enjoy.
