From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@fast.cs.utah.edu 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 102/9. 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 different). 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) Matthew