[plt-scheme] 203.5
The exp-tagged code in CVS for MrEd and MzScheme is now version 203.5.
IMPORTANT: `make-custom-input-port' and `make-custom-output-port' have
changed. If you supply #f as the first argument in a call to
`make-custom-input-port', just delete the first argument and
everything will be fine. If you supply #f as the first argument to
`make-custom-output-port', just leave it alone. Otherwise, see below
for more details, and see the documentation for full details.
Changes:
* Added `make-wrapped-waitable', `make-guard-waitable', and
`make-nack-waitable' a la Concurrent ML.
* Added `waitables->waitable-set', which is like `choose' in
Concurrent ML.
* Changed `make-custom-input-port' to drop the initial waitable
argument. Instead, the reading and peeking functions should return a
waitable when they would otherwise return 0. (Returning 0 is still
ok, but leads to busy waiting.)
Previously, if the waitable supplied as the first argument to
`make-custom-input-port' was a semaphore, then the system would
re-post the semaphore after a successful wait. Now, however, the
system may or may not wait on the waitable returned by a reading or
peeking function, and it takes no special action on success.
* Changed `make-custom-output-port' so that the first argument is #f
or a procedure to return a waitable (instead of #f or a waitable).
The waitable may or may not be used by the system, and no special
action is taken on success (in particular, if the waitable is a
semaphore, it is not re-posted).
* Added `make-semaphore-peek', which can be helpful in implementing
custom ports.
* Changed `make-struct-type-property' to accept a guard procedure for
the property.
* Changed `make-struct-type' to accept a list of immutable field
positions.
* Changed `struct-type-info' to return 8 values instead of 6. The new
information enumerates immutable fields and distinguishes the
init-field count from the auto-field count.
* Changed the handling of the "proc-spec" argument to
`make-struct-type'. If it is an integer, the value must be <
init-field-k. Overriding is disallowed (for consistency with
user-defined properties).
* Added `prop:waitable' for creating waitable structure types.
* Mac OS X: tab-panel% now draws a border around its content by
default.
* Added 'no-border style to tab-panel%.
* Added group-box-panel%.
* Windows: radio-box% buttons no long have an automatic border around
the button set, and the label now follows the requested positioning
of control labels (set in the parent). To get the border back, use a
group-box-panel%.
* Added `eventspace-handler-thread'.
* Added `vertical-inset' and `horizontal-inset' methods to
editor-canvas%.
* Changed text-field% to have margins of 2 (now matches the
documentation), and the reduced space between the edit-box border
and the editable text.
* Windows XP: switched to XP-style controls (comctl32 version 6).
Matthew