0.9.9 :
* Major bug correction

0.9.8 :
* Replace STR2CSTR by StringValuePtr

0.9.7 :
* Ruby 1.9
* Bug correction (Issue #1)

0.9.6 :
* "found and patched some serious memory leaks" (thanks to Tom)

0.9.5 :
* Bugfix in extconf.c (thanks to Stephane Mariel)

0.9.4 :
* ...

0.9.3 :
* Due to recent changes in Gentoo Linux's install system, ruby-xslt no longer installs correctly. Brendan fixed this.
* Cleaned up extconf.rb
* Removed unused debugging code (memwatch)
* Moved some things out of C into Ruby
* Made error handling much more useful
* Added some unit tests

0.9.2 :
* Changes to the way XSLT files are loaded, so that we can keep their base URI straight - Sorry Brendan !!!
* Major corrections

0.9.1 :
* Add XML/Smart support. XML/Simple support is still available
* Add REXML support.
* Add error classes and sets libxml error function
* Move samples scripts from tests to examples and add unit tests
* Changes to the way XSLT files are loaded, so that we can keep their base URI straight
* Major bugs corrections

0.8.2 :
* Configuration changes:
  
  ruby extconf.rb --enable-exslt (on by default) : enables libexslt support <http://exslt.org/>

  ruby extconf.rb --enable-error-handler (off by default) : enables a VERY crude error handler. error messages are appended to the class variable XML::XSLT and can be accessed with the class method XML::XSLT.errors (not very good, but better than trapping $stderr)

* API changes:
  
  XML::XSLT.new.extFunction("do-this", "http://fake.none", MyClass, "do_this")

  is now

  XML::XSLT.extFunction("do-this", "http://fake.none", MyClass)
  
  The callback function will now call the function with the same name as the function that was called. One (possibly confusing) exception is that when you register a function with a '-' in it the name of the ruby method called has the '-'s replaced with '_'s. This is because there seems to be a convention of naming XPath functions with hyphens and they're illegal in Ruby method names.

  The big stability change is that the external function table is now stored in a hash of hashes on the XSLT class object. (rather than a global xmlHash) It makes more sense to make it a property of the class and the hashes are an easy way to implement it.

  The type of objects that are passed to and returned from extension functions has changed to be more sane. REXML is now required to convert an xmlXPathObj to and from a VALUE; nodesets are passed to Ruby as an array of REXML::Elements and REXML::Elements / REXML::Documents returned from Ruby get turned into nodesets.

* Potential problems:

  xsltCleanupGlobals() shouldn't be called until we're done with whatever functions that are registered (probably when our program doesn't need ruby-xslt at all any more).
  
0.8.1 :
* Major bug correction

0.8.0 :
* Major bug correction in parameters support

0.7.0 :
* Add external functions support

0.6.0 :
* Major bug correction

0.5.0 :
* Add XML/Simple support
* Add parameters support

0.4.0 :
* Add cache

0.3.0 :
* Major bug correction

0.2.0 :
* Major bug correction

0.1.0 :
* Initial version
