From: ser@... (Sean Russell) Date: 2003-12-09T22:57:02+09:00 Subject: ANN: REXML 2.7.2 Hi, Long time, no release. 2.7.2 is in the CVS repository, so it should be included with Ruby 1.8.1. Here's the change log since 2.7.1: * More fixes for compatability with the Ruby 1.8 series * Exceptions are normalized * Some changes to the Light API * Improvements to encoding support. iconv is now used whenever possible, falling back to the old encoding mechanism for backwards compatability (Ruby < 1.8) * Bug to maintain inline external entity instances * Removed a cascading tainting issue with encoding * Function::string() now handles Element nodes properly, which means that XPath text() now works properly. * A minor indentation bug was fixed * Applied a patch from Simon Conrad-Armes that improves REXML's handling of namespaces in the SAX2 parser * Encoding support is more reliable and thread resistant. The Output class now works like you'd intuitively expect it to. It is now much easier to shift between encodings in various was -- by changing the encoding, by creating an Output with the encoding, etc. * Document::DECLARATION is deprecated. Use XMLDecl::default() (static method). Thanks to all the people who submitted patches, fixed, or reported bugs. Notice that most of these changes are bug fixes. Optimization is still the issue that's at the top of my list, but I've had a hard time getting anywhere with it. Ruby optimizations are entirely counterintuitive to me; I think this is just the nature of high level languages. My optimization strategy includes a three-pronged attack: * Optimize the base parser. This will improve performance across REXML, since all parsers use it. * Finalize the Light API. This will improve (memory) space requirements for those who choose to use it, and will provide the leanest, fastest possible tree parser. * Add libxml awareness. That is, if REXML sees libxml is installed, it'll use that as the base parser instead of the native Ruby parser. Next in line after optimization is documentation. The main documentation needs to be rewritten, and I need to work on the changelog. I've got a system for automating the changelog, but I need to merge it with the REXML project. The tutorial is out of date, and incomplete, and I haven't looked at the rdoc output in a while -- I'm sure it's pretty ugly. Just below that is the creation of some utility classes, which probably won't become part of the standard REXML distribution: RelaxNG validation, an XPath tool, and so on. Then there's some work on Namespace support that Tobias has been hounding me about; I've placed that on the back burner for the moment, because it only applies to writing sub-trees -- which, while admittedly desireable, isn't useful in any XML processing *I* do, and requires a major overhaul of Namespace support in REXML. If this is important to anybody, I recommend contributing patches to REXML, 'cause I've got other things which I think are more important, and I don't know when I'm going to get to it. Finally, I've been really bad about getting back to people, and I'm sorry about that. The bug tracker has been having chronic problems since we upgraded the server, and I haven't had time to fix it. I've dropped the Freshmeat entry; it was too much of a pain maintaining 4 release announcement mechanisms. BTW, the darcs repository is now the preferred repository to make changes in, despite the fact that the Subversion repository is listed in the RAA. The reason is that it is much easier for users to submit, and for me to accept, darcs patches; as Subversion doesn't have any concept of patches, I have to either provide direct write access to the repository to contributors, or I have to manually pick apart and apply patches, and darcs is just easier. The REXML home page is, as always, http://www.germane-software.com/software/XML/rexml/ The Subversion repository is at: http://www.germane-software.com/repositories/public/rexml with the standard trunk/, tags/, and branches/ subhierarchy. The darcs repository is at: http://www.germane-software.com/darcs/rexml That's the root of the development branch. darcs is at: http://abridgegame.org/darcs/ Thanks for your patience, Sean -- ### SER ### Deutsch|Esperanto|Francaise|Linux|XML|Java|Ruby|Aikido|Dirigibles ### http://www.germane-software.com/~ser jabber.com:ser ICQ:83578737 ### GPG: http://www.germane-software.com/~ser/Security/ser_public.gpg