[plt-scheme] 370.2
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