From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu Subject: [plt-scheme] 371.2 Date: Sun, 2 Sep 2007 12:05:50 -0600 MzScheme and MrEd are now version 371.2 in the SVN repository trunk. MzScheme now provides `provide-for-syntax’, `require-for-label’, and `provide-for-label’. Also, Setup PLT now takes care of building and hyperlinking Scribble-based documentation, `provide-for-syntax’: The `provide-for-syntax’ form allows a module to export any of its for-syntax bindings, such that a plain `require’ imports those bindings (still for syntax) in addition to any regular bindings provided by the module. This is a restricted form of R6RS’s multi-phase export. for-label bindings: The `require-for-label’ form introduces a new dimension of binding, as motivated by the needs of the new doc system. It imports into a "label phase" whatever the source module normally exports. Bindings in the label phase are visible only via the new `identifier-label-binding’ and `module-label-identifier=?’ procedures. The `provide-for-label’ form is analogous to `provide-for-syntax’: it causes a `require’ of the exporting module to import for-label binding. Scribble: The Scribble documentation now starts with a "How to Scribble" chapter that explains how to get started with the new doc system. After running Setup PLT, you’ll find this document in "doc/scribble/index.html" within your installation. Some pieces of the new doc system are still missing: * There’s no support in Help Desk for the new docs. In particular, you can’t search the new docs, yet. In fact, Help Desk can’t render the new documentation HTML well enough to be readable. * The forms for documenting classes and interfaces are not yet themselves documented. (They exist, though, because the MrEd manual has been ported.) Cleaning up those forms and documenting them is one of my next tasks. * The forms for documenting units and signatures don’t exist, yet. Of course, forms for documenting units and signatures should just be a Scribble library, much as the unit system itself is just a library. I think we’re getting close to being able to do that, but the core documentation forms are not quite extensible enough. Those who have already started writing Scribble documentation will find that they need to use `require-for-label’, because bindings in the label phase determine the meaning of typeset Scheme identifiers (including identifiers that are being documented). Matthew