From: Matthew Flatt <>
Subject: [plt-scheme] 370.2
Date: Tue, 29 May 2007 11:30:09 +0800

MzScheme and MrEd are now version 370.2 in the SVN repository trunk.


 * Changed the treatment of `#! ’ and `#!/’, which start Unix script
   lines, so that they parse as comments anywhere --- instead of having
   load handlers treat `#!’ specially in the fist line of a file.

   Previously, load handlers did not treat `#!’ consistently, and there
   were probably lots of places in our tools where files were read
   without checking for a `#!’ line. Making `#! ’ and `#!/’ a general
   comment form means that the reader can handle script prefixes

   Requiring a space or slash after `#!’ is a little awkward, but it
   leaves room for `#!’ to be used as a prefix for other things.

 * Added `make-sibling-inspector’. For an example of why, see

 * Added `malloc-immobile-cell’ and `free-immobile-cell’ to `(lib

   An immobile cell isn’t automatically GCed, and it never moves after
   a garbage collection, but it can contain a collectable/movable
   value. This indirection is useful when you’d like to pass a pointer
   to a foreign library for your own use later, but the library will
   keep the pointer across GCs, and the the GC can’t see where the
   pointer goes. In that case, put the pointer in an immobile cell,
   instead, and send the cell pointer to the foreign library.

   Immobile boxes are already used inside MrEd/MzScheme (e.g., to
   connect a window in the underlying toolkit with a Scheme object),
   but we never got around to exposing them, for some reason.

   The names and API are subject to change over the next few days.

 * Added a ’no-focus style to canvas%, which prevents the canvas from
   ever getting the keyboard focus. This is mostly useful for
   implementing new kinds of controls by drawing on canvases; examples
   include the bottom-left language selector in DrScheme, and the GUI
   Builder toolbar (which now works, finally).

 * Added a `graph?’ argument to `read[-syntax]/recursive’.