ANN: REXML 2.4.2 and 2.5.2

Sorry for the delay in this release, folks. I moved cross country
last month, and am only recently getting settled down again.

This is a release announcement for new revisions for both the stable
and development branch of REXML. This is primarily a bug fix release,
although there are some other small changes in the development
version. Many of these bug fixes were provided by Kouhei Sutou;
Kouhei has taken up the habit of submitting bug reports, WITH unit
tests, and often with patches that fix the problem. Kou also
maintains the the Japanese translation of the REXML documentation, so
he’s a very active guy. Kou isn’t the only user who supplies tests or
patches – and my thanks to everybody who does – but he did a lot of
them on this release in particular, and I want to offer special thanks
to him for this release.

Here’s the obligatory blurb, followed by the change log.

REXML is an XML 1.0 compliant, reasonably fast, non-validating XML
parser. It has an API that is designed to be intuitive,
straightforward. and terse. REXML includes a tree model parser, a SAX2
streaming parser, and a pull parser. It also includes a full XPath
implementation. All of REXML’s parsers pass 100% of the Oasis XML
non-validating tests. REXML supports multiple encodings, and the
development branch includes support for two Japanese-specific
encodings.

Changes common to both 2.4.2 and 2.5.2:

  • Fix from Kouhei WRT entity replacement.

  • Fix from Kouhei WRT ignore_whitespace_node

  • Fix from Kouhei that fixes Functions::substring_before and
    Functions::substring_after.

Changes for 2.5.2

  • Applied a patch from Takashi that fixed a bug in the encoding code.

  • Figured out a fix for the input buffer issue. This improves stream
    handling for things like XML-RPC, and solves a number of other
    performance problems.

  • Fixed the regular expressions to get around the poor handling of
    backtracking in regular expressions. This should reduce, if not
    eliminate those rare instances of “hanging”.

  • Improved the pattern for matching elements, so that more malformed
    XML is caught, and with a small speed improvement, to boot.