From: Matthew Flatt <>
Date: Wed, 10 Oct 2001 17:29:50 -0600 (MDT)
Subject: 199.25

The exp-tagged code in CVS for MzScheme and MrEd is now version 199.24.


 * Fixed a serious set of tail-call+thread-or-exception+GC bugs in the
   core interpreter. These bugs are old, and they could strike at any
   time (leading to a seg fault from reading address 0); I’m puzzled
   that they escaped undetected for so long.

 * The prefix in `current-module-name-prefix’ is applied only when a
   `module’ declaration is evaluated, not when it is compiled or
   loaded (which was strange).

 * Plugged some safety/security holes related to module re-definition.

     - A module declared in a namespace via `namespace-attach-module’
       cannot be redeclared (and this restriction subsumes the old
       hack on #% names). Otherwise, a DrScheme client program could
       crash DrScheme be redefining the `class’ module, for example.

     - Cyclic module imports are detected late --- at instantiation
       time, instead of at compile time. (There’s no potential problem
       at compile time anyway.)

 * Added an `exn:module’ exception type for various exceptions,
   including bad redefinitions, cyclic imports, and
   expected-a-module-that’s-not-there on file loads.

 * Restricted all label string arguments to <= 200 characters (so that
   MrEd doesn’t trip over label size constraints in the underlying GUI

 * X: changed the default "forceFocus" resource value back to 0.
   Making sawfish 0.37 work the way I expect looks hopeless, and
   forcing the focus interacted badly with other window managers.

The MzScheme, MzLib, MrEd, mzc, and Inside MzScheme doc bundles have
been updated.