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:
