From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu Subject: [plt-scheme] 369.5 Date: Wed, 17 Jan 2007 06:09:16 +0800 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