New version, v5.0, of SSAX.scm
[email protected] Thu, 29 Apr 2004 17:35:36 -0700 (PDT)
| Newsgroups | gmane.lisp.scheme.ssax-sxml |
|---|---|
| Message-ID | <[email protected]> |
Hello! Version 5.0 of SSAX.scm is the first version of SSAX.scm that should run on any R5RS Scheme platform. There are no interface changes compared to the previous version, v4.11. Therefore, no existing code (on a R5RS-compliant system) should require any modifications. Although the changes to SSAX.scm are transparent to any user, the changes are significant. As before, the main SSAX parser file relies on many, quite complex macros. Previously, those macros were of a define-macro kind. All those low-level macros are gone now, replaced with R5RS syntax-rules. The SSAX.scm code and the code of the supporting input parsing, string, utility, etc. libraries has been re-written to get rid of define-macros. A year and a half ago I thought it was impossible to replace all low-level macros with syntax rules. Fortunately, I was wrong. The SSAX project and all of its test cases now run on Petite Chez, SCM, Bigloo and Gambit platforms. Some of these platforms support case-sensitive symbols; some do not. The macro-systems of these platforms are different (and certainly the macro-expanders are all different). The fact that all the tests in SSAX.scm pass on the Petite Chez system is particularly gratifying, as Chez Scheme is one of the most compliant systems. It is expected that SSAX/SXML should run and validate on other R5RS Scheme systems, such as SISC and Scheme48. One may wonder how the code with syntax-rules can ever run on Gambit 3.0. Gambit does not natively support R5RS macros. Neither does the latest versions of Bigloo, unfortunately. Since version 2.5, Bigloo includes Dorai Sitaram's "Macros-by-example" as the high-level syntactic facility. Although Macros-by-example work well for simple syntax-rules, Macros-by-example are not, and never intended to be, an R5RS-compliant macro facility. I have found numerous problems using the latest version of Bigloo with non-trivial syntax rules. Actually, I have found that Bigloo becomes confused even with non-trivial Scheme code (such as Al Petrofsky's portable macro-expander, which itself uses no macros). Therefore, I have used Al Petrofsky's portable macro-expander running on Gambit 3.0 to macro-expand SSAX.scm. The resulting code, which contains no syntax-rules and no library syntax, runs (quite fast) and validates on Bigloo 2.6d and on Gambit. The new version of SSAX.scm is committed to the CVS repository. Also committed is SSAX-expanded.scm, the macro-expanded version. ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click