From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu Date: Thu, 6 Mar 2003 15:55:20 -0700 Subject: [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