From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@fast.cs.utah.edu Date: Fri, 10 Aug 2001 15:52:36 -0600 (MDT) Subject: 199.20 The v200-tagged code in CVS for MzScheme and MrEd is now version 199.20. Changes: * Added `tcp-connect/enable-break’ and `tcp-accept/enable-break’. * Added `object-wait-multiple’ and `object-wait-multiple/enable-break’. The new procedures accept a timeout (possibly #f) and one or more arguments for waiting. They block until the timeout expires, in which case #f is returned, or until one of the objects becomes unblocked, in which case an unblocked object is returned. If a semaphore is returned, then its internal count has been decremented by the wait. The waitable objects, including their corresponding blocking states, are as follows: type of object blocking state -------------- ---------------------- semaphore internal count is zero thread running subprocess running TCP listener nothing to accept will executor no wills to execute input port: no characters ready file-stream pipe TCP The `semaphore-wait’, `semaphore-wait/enable-break’, `thread-wait’, and `subprocess-wait’ procedures are all technically redundant, but it seems worthwhile to keep them for error checking and code clarity. * Removed `semaphore-wait-multiple’ from the "thread.ss" MzLib library. * Added `letrec-syntaxes+values’, and changed the expansion of internal defines to use the new form so that a sequence of internal `define’ and `define-syntax’ defininitions creates a single, mutually recursive scope (as in Chez). * Fixed `write’ on symbols with uppercase characters to quote the characters (unless `read-case-sentitive’ is set to #t). * Changed the `datum->syntax-object’ interface for position lists. Added a fourth optional argument to `datum->syntax-errors’ for copying properties. * Fixed reader error messages to use `error-print-source-location’ and GNU-style source locations. * Unix, Windows: fixed bug in `sleep’ when asked to sleep for a large number of seconds. * Inside MzScheme: changed type of third argument for scheme_block_until() from void* to Scheme_Object*. * Inside MzScheme: added scheme_add_waitable() and scheme_add_waitable_through_sema() for extending the set of objects supported by `object-wait-multiple’. The MzScheme, MzLib, MrEd, mzc, and Inside MzScheme doc bundles have been updated. Matthew