From: Matthew Flatt <>
Date: Sun, 28 Oct 2001 20:19:35 -0700 (MST)
Subject: 199.27

The exp-tagged code in CVS for MzScheme and MrEd is now version 199.27.

The changes are small:

 * Changed `struct?’ to return #t for v only if `struct->vector’
   exposes one or more fields of v with the current inspector.

   [The theory is that all values are implemented by structs at some
   level, and the only difference is whether the struct is opqaue or

 * Changed `equal?’ and `equal-hash-code’ so that two structs are
   considered equal only when they are instances of the same type,
   have no opaque fields, and have equal `struct->vector’

 * Changed `struct-info’ and `struct->vector’ to work on all values.

 * Added `send/apply’ to "". (For now, I left the odd dotted
   apply forms in place and improved the documentation.)

 * Added `prefix-all-except’ form for `require’.

 * Changed load handler obligations when a module is expected; the
   load handler must now restore all reader parameter values to their
   default settings, except `read-accept-compiled’ should be #t.

   The new `with-module-reading-parameterization’ procedure in
   "syntax"’s "" sets the parameters correctly.

 * Added a mode to `subprocess’ so that an exact Windows command-line
   string can be provided.

   (In Unix, the vector of string arguments is already exact, but
   Windows programs actually receive a single string, which the
   program can parse any way that it wants. There’s a quasi-standard
   for parsing command lines, but doesn’t obey it,
   of course!)

 * Windows: if `delete-directory’ fails, then MzScheme resets the
   OS-level working directory to the thread’s `current-directory’
   value and tries again.

 * Changed `syntax-source-module’ to produce module path indices
   instead of sresolved module names.

 * X: when an external program is executed for PS printing or preview,
   command-line flags can be supplied, and the stdout/stderr output of
   the program is directed to MrEd’s original stderr.