From: Matthew Flatt <>
Date: Sun, 5 Mar 2000 12:36:12 -0800
Subject: 102/9

The exp-tagged source (in CVS) for MzScheme and MrEd is now version

Significant changes to MzScheme:

 * Added immutable strings and pairs, with `string->immutable-string’
   and `pair->immutable-pair’. A string generated by `read’ is now
   immutable, but pairs from `read’ are still mutable.

   The strings and lists available from parameters like
   `current-directory’ and `current-library-collection-paths’ are now
   immutable, which motivated the change. Otherwise, a thread might
   change the current directory of a different thread by mutating the
   string returned by `current-directory’. Similar problems could occur
   via mutations to strings returned by GUI objects in MrEd.

 * Changed `time-apply’ to return four values --- including the gc
   time --- and changed its arguments to be like `apply’, where the
   new second argument to `time-apply’ is a list of arguments to
   supply to the function that is the first argument to
   `time-apply’. (The generalization that allows a number of non-list
   argument followed by a list is not supported by `time-apply’.)

   The `time’ syntactic form is unchanged (but its expansion is

   NOTE: due to this change, `time’ is currently broken in DrScheme’s
   debugging languages.

 * Added ’exec-file flag to `find-system-path’, which returns the path
   of the current executable as started by the OS. (The same path is
   initially bound to `program’ in MzScheme and MrEd.)

 * Fixed .zo writing to use indices for built-in primitives (as in
   53), instead of names (as, due to a bug, in 101). This fix shrinks
   the size of a .zo file by 20% on average.

 * Fixed missing `volatile’ annotations, which were needed to make
   MzScheme work with gcc 2.95.2 on Sparc.

Significant changes to MrEd:

 * X: Fixed list-box% to handle arbitrarily many list items. (PR 1342)

 * Added pop-down callback initialization argument to popup-menu%, and
   added the ’menu-popdown and ’menu-popdown-none event types to
   control-event%. The callback is invoked with a ’menu-popdown event
   after the callback for a selected item in a popup menu. If the menu
   is dismissed with no item is selected, the callback is incoked with
   a ’menu-popdown-none event.

 * Added `on-demand’ to menu-item-container<%> and
   labelled-menu-item<%> for building menu content on demand. The
   `on-demand’ method of a menu bar is called when the user clicks on
   the menu bar, before the click is handled by the menu bar. The
   `on-demand’ method of a popup menu is called before the menu is
   popped up. The default implementation of `on-demand’ in a menu item
   container calls the `on-demand’ method of all of its labelled menu
   items (which includes submenus).

 * Windows: fixed `get-font-from-user’ when a parent frame is provided.
   (PR 1371)