XML-in-LAML: The major good news in this release is that the Scheme mirrors of
XML languages are now fully validating in relation to the XML DTD. Based
on the parsed content models from the XML DTD we automatically generate deterministic
final automata that checks the LAML documents. This affects XHTML,
SVG, LENO, and a number of other XML mirrors in LAML. If you make a Scheme mirror
of you own XML language, you will take immediate advange of this
too. The automata are supported by a new
final state automation library
in LAML.
For illustrative purposes, this full distribution includes the XHTML1.0 transitional
DTD in the directory
tools/dtd-parser/sample-dtd/
together with a script that parses it. In the directory
tools/xml-in-laml/sample-mirror-generation/
we provide a script that generates the fully validating XML-in-LAML
mirror of XHTML1.0 transitional.
LAML now support of both guile and mzscheme on linux. Configure LAML with laml-platform
unix and operating-system linux.
XML-in-LAML: Attributes are now output in the same way as the document contents.
In earlier versions an attribute list of an element was aggregated
as a string before being transferred to the output (a string or an open output
port).
XML-in-LAML: Characters in XML attribute values are now 'protected' in the same
way as the textual contents. More concretly, the characters '<', '>',
'&', single quote, and double quote characters are converted to appropriate character
entities. As in ealier versions, this is done by means of the
HTML character transformation table
.
This is primarily of interest for XHTML, of course.
XML-in-LAML: The pp option in write-html has been improved. Now the pretty printing
is done directly on the LAML AST, in a way closely connected with
raw output. In practical terms it means that XHTML and SVG can now be rendered
and pretty printed with a better result, and much faster than in earlier
versions of LAML. I am quite happy with the result. Take a look at
the source of this HTML file for an example.
The collect-skip library in lib/ has been extended such that it is possible to take
input from a string. Earlier, it was only possible to read input from
an open input port.
dtd-parser-4.scm in tools/dtd-parser/: Much inproved parsing of content models of
XML DTDs.
Some LAML users have complained about the Emacs key bindings made by LAML. As a
consequence it is now possible to avoid LENO and Scheme Elucidator
support (and hereby a bunch of key bindings). Two new boolean options
have been introduced in laml-config/configuration:
leno-emacs-support
and
elucidator-emacs-support.
In addition, the LAML configuration program now tells new the LAML user
how to affect the key bindings.
XML-in-LAML: A new form
(char-ref x)
represents character references in XML-in-LAML documents. As an example,
(char-ref "amp")
is rendered as
&.
In some Scheme systems it is awkward to implement the LAML compatibility function
sort-list,
which sorts a list. The sorting functions from
SLIB,
located in
lib/compatibility/sorting/
solves this problem.
The older pieces of LAML software has been identified, and factored out from the
main table, as presented on the LAML software home page.
The Scheme Elucidator can now process Scheme programs with vector constants.
Detailed notes
have beend added about the individual Scheme systems, platforms, and operating systems
on which LAML is supported. We also provide some
run time measures.
LAML has been tested with SCM 57d on Linux. Overall, it works very well.
See details.