SDOM NEWS --- history of user-visible changes Copyright (C) 2007 Julian Graham See the end for copying conditions. Send comments, questions, and bug reports to sdom-devel@nongnu.org Changes since development release 0.4.1 ** New functionality SDOM now supports the PLT family of Scheme interpreters (such as MzScheme and DrScheme). Note that this support has necessitated a change to the source distribution -- you must now use the included Makefile to customize SDOM to a particular Scheme platform. See the documentation in INSTALL for more information. Changes since development release 0.4 ** Changes to the SDOM test suite New tests have been added to cover the expanded support for entity and entity reference nodes that has been added in this release. ** Changes to the SDOM documentation SDOM node properties are now fully documented, as are the document parsing functions. Entries for SDOM event types have been added to the manual. ** New functionality SDOM is now able to recognize and, to some extent, parse XML Document Type Definitions (DTDs) and from them extract entity declarations. As a result it is now also able to resolve entity references during document normalization. Many internal optimizations have been implemented, leading to a significant improvement in the performance of most of the functions in the API. NOTE: As a side-effect, and, in order to bring SDOM into compliance with other Scheme APIs, many functions in SDOM's external API now return #f instead of the empty list, (), to indicate a null value. See the manual for a complete specification of function return types. ** New functions The following function has been added to the API (see the manual for more information): sdom:xml->sdom sdom:create-document-type ** Bugfixes Numerous bugs have been fixed. Among them: - Uneven internal handling of "SXML representation data" on Text and CDATA section nodes would sometimes lead to corruption of this data - Hashing of user data should be based on node pointer equality - Checks for read-only nodes weren't looking at the node itself, only its ancestors - Comment nodes no longer require special SXML representations - Removing a child now properly sets its parent node during text replacement - sdom:clone-node now works for Processing Instructions, Document Type Definitions, and Documents - The root name passed to sdom:create-document can now be null Changes since development release 0.1.2 ** Changes to the SDOM test suite The test suite has now grown to 245 tests, and now covers practically every important part of the core module that SDOM implements. ** Changes to the SDOM documentation Descriptions of constants and enumerations has been added to the texinfo documentation, along with better and more comprehensive information on the various functions and properties available in the API. ** New functions The following functions have been added to the API (see the manual for more information): sdom:replace-whole-text! sdom:compare-document-position ** New properties The following properties have been added to the API, or were previously not well-supported (see the manual for more information): sdom:prev-sibling sdom:next-sibling sdom:text-content sdom:base-uri ** Bugfixes Numerous bugs have been fixed. Among them: - Node adoption was not firing user data event - User data events were not being preserved across element renaming - Attr nodes should be allowed to have more than one child before document normalization - sdom:replace-child was not throwing the proper exception types - There was a typo in sdom:lookup-namespace-uri - Nodes cloned with sdom:clone-node should include an owner document annotation - Several destructive functions were not returning the proper value ** Optimizations Some simple optimizations have been made with an eye towards improving the performance of SDOM when it is used with the SCSS module, for which speed is of the essence. It is likely that significantly more work remains to be done in this respect. Changes since development release 0.1 ** Changes to the SDOM test suite Over 25 new tests have been added (including relatively complete sets of tests for node renaming and document normalization), though the suite is way shy of meeting its goal of mirroring the Java DOM suite. ** Numerous fixes over release 0.1 More of the API performs necessary checks on input and throws appropriate exceptions on error. Several instances of constant modification have been eliminated, and the system of external representations for internal nodes has been made more robust, particularly in situations in which updates are made to internal data when there are multiple bindings in the environment to external representations of the data. Copyright information: Copyright (C) 2007 Julian Graham Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn. Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. Local variables: mode: outline paragraph-separate: "[ ]*$" end: