[plt-scheme] 369.5
MzScheme and MrEd are now version 369.5 in the SVN repository trunk.
The changes are minor:
* The `print-struct' parameter defaults to #t. (This change affects
only printing for transparent structure types.)
* The guard for an `exn' struct now automatically converts a mutable
message string to an immutable string, instead of raising an
exception.
* Added an optional argument to `syntax-local-certifier' to indicate
whether the generated procedure attaches active or inactive
certificates.
The MzScheme manual offers the following advice for when to use
active versus inactive certificates, which captures the two common
cases:
Supply #t for `active?' when the syntax to be certified can be
safely used in any context by any party, and where access to the
syntax object should not confer any additional access. Supply #f
for `active?' when the syntax to be certified is not accessible to
parties that might abuse the access that the certificate provides,
and when the certified syntax eventually appears (via macro
expansion) within a larger expression from which it cannot be
safely extracted by other parties.
For example, the selector identifiers attached to a structure type
name by `define-struct' (at expand time) have active certificates. A
selector identifier can be safely used in any context, and getting a
selector identifier should not provide access to anything else in
the defining module. (The same is true for all the other identifiers
bound to a structure type name.)
In contrast, `define-fun-syntax' from the "foreign.ss" library uses
inactive certificates. The inactive certificates are attached to
bits of syntax that become accessible only in the expansion of a
`_fun' form (at which point the certificates are activated), and
those bits should not be extracted from the expansion of `_fun' and
used in a different way (and they can't be, because the certificates
are activated only for the whole expansion of `_fun').
* Changed `custodian-require-memory' to add an initial custodian
argument (which makes the requirement more composable, and also
matches our ISMM'04 paper).
* Under Mac OS X, a printer-dc% instances use scaling (as well as
landscape vs. portrait) information specified by the current
ps-setup%, and the `print' method of `editor<%>' now correctly uses
`current-ps-setup'.
Matthew