There have been a few improvements to SSAX and SXML tools
since the release of SSAX v4.9 two years ago. I've been holding a new
release because I wanted to re-write all low-level macros into
syntax-rules. Low-level macros is the last hurdle in unifying various
SSAX distributions (especially Gambit's distribution and Mike Sperber's
ones). The re-writing is under way: I re-wrote run-test (which makes
'"String" a case-sensitive symbol String on any R5RS Scheme system)
and a few other macros. I have come to realize that it would take
longer than I expected. First, it would probably take some two-three
weeks to finish the re-writing (more likely like two or three days but
I don't want to over-commit). Most importantly, it would take time to
verify that the resulting syntax-rules run on all Scheme systems of
interest. I have discovered that there are some variations in the
implementation of syntax-rules among Scheme systems. Some differences
stem from the fact syntax-rules aren't specified in R5RS precisely
enough. There are some dark corners.
Perhaps a better course of action is to release SSAX as it is
and make another release when the re-writing of macros is
finished. The latter release should be R5RS compliant and should work
with Scheme48 and Petite Chez systems (among many others) as it is. I
use Scheme48 and Petite Chez as a yardstick of R5RS (I can't use SISC
because Java doesn't work well on FreeBSD).
Thus I plan by this coming Friday or Monday to tag the SSAX CVS
repository with a RELEASE-4A tag. Kirill and I can work on turning
the corresponding code into release files. It might seem a good idea to
separate SXML-related code from the proper SSAX code. OTH, there is a
significant overlap between the code bases. I don't know what's
better: one distribution file as it is now or several?
After the tagging, I'll import some of the code with
re-written macros. This will give us the opportunity to test the macros
on various systems to make sure they run on all of them.