[plt-scheme] 369.5

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Jan 16 17:09:16 EST 2007

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



Posted on the users mailing list.