From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu 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. Changes: * 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 consistently. 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 http://list.cs.brown.edu/pipermail/plt-scheme/2007-April/017150.html * Added `malloc-immobile-cell’ and `free-immobile-cell’ to `(lib "foreign.ss")’. 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’. Matthew