Generated: May 6, 2005, 17:20:57 Copyright © 2005, Kurt Nørmark The local LAML software home page

What is new in LAML

Version 22 was never officially released, so I decided to bring all the recent changes out as version 23.

News in version 23:

  1. It is now possible to use numbers and characters as element contents items. Change processing mode with (set-xml-accept-extended-contents-in language value). It is also possible to affect the possible attribute values. Change processing mode with (set-xml-accept-only-string-valued-attributes-in language value). The XHTML LAML templates now makes it easy to use the various LAML processing options via the introduction of the a new LAML template ' Processing options ' in the LAML Emacs menu.
  2. The reporting of errors in case of XML validation problems has been improved. As part of the error messages, problematic document fragments are reported using Scheme syntax. Earlier, native XML syntax was used.
  3. The Emacs keybindings are now available in two different versions. The original keybindings are still maintained. A new set of keybindings, called hygienic keybindings, has been introduced. Most of these start with C-c (control C). As such, they do not conflict with existing and important Emacs keybindings. The choice of keybindings can be controlled in the LAML configuration file laml-config/configuration via the configuration property called emacs-keybindings. It is also possible to configure LAML without Emacs keybindings, by using the value none.
  4. The internal document representation now exists in two version: laml and sxml. Use of sxml is still experimental (but it works well throughout all LAML software). The choice of representation is made in lib/xml-in-laml/xml-in-laml.scm via the variable laml-internal-representation. In a future version, the choice of internal representation may be a configuration option.
  5. It is now possible to get access to the element content models, the action procedures, and the validation procedures through the a number of new maps in lib/xml-in-laml/xml-in-laml.scm. The procedure validate-ast! does explicit validation of an AST. In normal use of LAML, the XML validation is integrated into the mirror functions. If the AST is not created through the mirror functions it is useful to apply the procedure validate-ast! for full XML validation. Similarly the procedure process-ast! processes an AST by means of the designated action procedures. Notice that the mirror libraries will have to be loaded in order to use validate-ast! and process-ast!. Notice that it is no longer necessary to define the action procedures before loading of the mirror functions.
  6. Filenames with '<' and '>' cause problems in Windows XP. From this version of LAML, the Scheme Elucidator does not emit such file names.
  7. A new XML-in-LAML manual facility has been developed. It can be used to write manuals for Scheme software. It also serves as a convenient interface to SchemeDoc, which extracts interface document from Scheme source programs. Finally, the new LAML manual facility can be used to extract and format document from an XML DTD.

    The new LAML manual facility uses XHTML and CSS stylesheets. You can easily change the manual stylesheet for all LAML manuals by executing one of the scripts in the directory css-stylesheets/change-manual-stylesheet/. You can also make your own CSS stylesheets for you manuals.

    The LAML tutorial chapter on SchemeDoc and the LAML manual has been rewritten to take the new manual facilities into account.

    See also the new SchemeDoc home page.
  8. A new interactive command, xml-dtd-manual, can be used to make a LAML manual (in SchemeDoc) style of an XML DTD. This command can be used from an interactive LAML prompt, such as obtained by M-x run-laml-interactively in Emacs. The command xml-dtd-manual is defined and documented in the fundamental LAML setup file laml.scm.
  9. Similarly, the schemedoc command can be used to start the SchemeDoc tool. And xml-dtd-parse can be used to parse and XML DTD. Finall, the command generate-xml-mirror can be used to generate a mirror in Scheme of an XML language.
  10. In versions earlier than LAML 23, each tripple of laml-platform, operating-system, scheme-system had its own Emacs file for LAML processing. This caused a substantial overlap of E-lisp source definitions, and it was quite difficult to make a new set of LAML processing E-lisp functions.

    From version 22 these different files have been eliminated. Instead all the LAML processing commands are joined in the file emacs-support/laml-execute.el. The variations accross platforms, operating systems, and Scheme systems are accommodated in the two E-lisp functions start-laml-process and call-laml-process. Both of these are defined in the initial part of emacs-support/laml-execute.el.
  11. It is now possible to start or call (asynchronously or synchronously) a LAML process on a LAML file directly from dired. Dired is the Emacs directory editor. Try M-x dired. Two new keybindings (the same used for processing a LAML files, from inside a LAML file, C-c C-0 and C-c C-x C-o with the hygienic key bindings) have been introduced. They are bound to the E-lisp commands laml-process-selected-file-from-dired and laml-process-selected-multiple-files-from-dired. The first processes the selected file asynchronously. The second one may process several selected files synchronously. These commands are also available via Dired's operate menu.
Kurt Nørmark