From: Matthew Flatt <>
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,


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.


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).