From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@fast.cs.utah.edu Date: Sat, 7 Apr 2001 20:59:18 -0600 (MDT) Subject: 199.7 The v200-tagged code in CVS for MzScheme and MrEd is now version 199.7. Changes: * The `process’, `process*’, `process/ports’, `process*/ports’, `system’, and `system*’ procedures have been moved to a new MzLib library, "process.ss". MzScheme’s new built-in form is `subprocess’, which takes the same arguments as `process*/ports’. It returns four values: a subprocess value, an input port or false (the subprocess’s stdout, if one was created), an output port or false (the subprocess’s stdin), and an input port or false (the subprocess’s stderr). The new `subprocess-status’ procedure gets the status or return code of the subprocess, and `subprocess-pid’ gets its process id. The `process’, etc. procedures are implemented in terms of `subprocess’. Consequently, old bugs and gaps in support (especially for Windows) have been eliminated. The `execute’ and `execute*’ procedures were eliminated entirely. These changes are based on code from Eli Barzily. * Added a ’gl style flag to canvas%, for use with extensions that draw to the current OpenGL context. The canvas% class also has two new methods: `with-gl-context’ and `swap-gl-buffers’. The ’gl style is only supported in Windows for now. The OpenGl support is based on code from Greg Pettyjohn and the current wxWindows distribution. * Added an experimental "infix" conversion in the reader. Input of the form (left ...1 . mid . right ...1) is read as (mid left ...1 right ...1) I.e., a pair of dots between a pair of parens triggers the reader’s "infix" conversion. For example, the input expression (99 . < . 100) produces #t. Also, (1 2 3 . + . 4 5) produces 15, because the "infix" conversion requires a single element between the dots, but allows any positive number of elements to the left and right of the dots. Perhaps unfortunately, the input expression ((x) . lambda . x) produces the identity function, because the infix conversion is performed by the reader. * Added a `struct’ form for `provide’. * Added `fluid-let-syntax’. * Normalized source location reporting (for reader errors, syntax errors, and procedure names), and added source-location info to the reader exceptions. * Changed the C hash-table interface; documentation to appear. Temporary MzScheme and MzLib documentation is in the usual place: http://www.cs.utah.edu/~mflatt/tmp/mzscheme.pdf http://www.cs.utah.edu/~mflatt/tmp/mzlib.pdf Matthew