[plt-scheme] 204.7
On WindowsXP with a fresh exp tagged CVS tree and clean build,
> mzscheme -mqvL- setup.ss setup --
... works, creates lots of zos and stuff, etc.
> "setup plt.exe"
<crash!>
----- Original Message -----
From: "Matthew Flatt" <mflatt at cs.utah.edu>
To: <plt-scheme at list.cs.brown.edu>
Sent: Tuesday, July 01, 2003 20:03
Subject: [plt-scheme] 204.7
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> The exp-tagged code in CVS for MzScheme and MrEd is now version 204.7.
>
> Changes:
>
> * Added a "package.ss" library to MzLib. It exports `package' and
> `open', which correspond to Chez's `module' and `import', plus a few
> other forms.
>
> The `package' and `open' forms are especially useful to macro
> implementors:
>
> "Extending the Scope of Syntactic Abstraction"
> Waddell and Dybvig
> POPL'99
> http://www.cs.indiana.edu/~dyb/papers/popl99.ps.gz
>
> Beware that `import' doesn't act like `define' or `require' when
> introduced by a macro. Roughly, `import' exposes bindings that were
> hidden, rather than introducing new bindings. See the manual (and
> the paper above) for examples.
>
> The "package.ss" library is based on Scott Owens's "structure.ss"
> library, and "package.ss" replaces "structure.ss". To support the
> let*-like behavior of Standard ML structures, "package.ss" provides
> `define*', `open*', etc.
>
> * Added `module->namespace', which takes a module name and returns a
> namespace that corresponds to the body of the module.
>
> Evaluating with this namespace is like evaluation in DrScheme's
> interactions window in the `(module ...)' language, except that
> changing a namespace binding changes the corresponding module's
> internal and exported defintions. (This is like Tung's environment
> circa 1992.)
>
> * Added `namespace-module-registry'.
>
> Previously, a namespace was defined to contain the table of loaded
> and instantiated modules. That definition doesn't work with
> `module->namespace', where different namespaces share the module
> table. The result of `namespace-module-registry' represents this
> sharing. It's useful mainly to module name resolvers.
>
> * Added #; reader comment syntax (again, like Chez).
>
> * Added `namespace-undefine-variable!', which is like MzScheme's old
> `undefine'.
>
> * Changed `syntax-local-context' so that it returns a list for
> internal-define expansion, instead of 'internal-define, and changed
> `local-expand' so that it accepts a list to mean internal-define
> expansion.
>
> For built-in expansion, each list item identifies an active
> internal-define expansion context. Transformers that call
> `local-expand' for internal-define-like expansion should generate a
> key that represents the context; use the same key for each expansion
> in a set of definitions, and cons it onto `(syntax-local-context)'
> if the result is a list (or cons it onto null if the result is not a
> list).
>
> See also `(lib "context.ss" "syntax")'.
>
> This change supports the `package' and `open' forms, so that they
> work right with macros such as `unit', `class', `local', or anything
> else that needs `local-expand'.
>
> * Added `syntax-local-get-shadower'. See the docs for details.
>
> * Changed top-level `define-syntaxes' to treat zero results
> from the right-hand side as a kind of abort, so that
>
> (define-syntax (id ...) (values))
>
> declares the ids without binding them. This is useful for macros
> that expand to mutuaully recursive definitions of private variables
> (like, of course, `package').
>
> Matthew
>