Release Notes - MIT/GNU Scheme 7.7.91
Description: MIT/GNU Scheme 7.7.91

Next: GNU Free Documentation License, Previous: Edwin, Up: Top

## Appendix A Release Notes

The previous full release of MIT/GNU Scheme was version 7.6.1. This section describes changes that have occurred since that time. For more detailed information, see the ChangeLog files in the source code.

Note that MIT/GNU Scheme still conforms to the Revised^4 Report on the Algorithmic Language Scheme, but not to the Revised^5 Report on The Algorithmic Language Scheme.

These are the changes since release 7.7.0:

- Release 7.7.1 fixes several bugs in IMAIL; fixes a bug that prevented the use of server sockets on Windows systems; and fixes a bug that caused the debugger to generate errors in common circumstances.
- Release 7.7.0 provides “hygienic” macro support, as defined in R^4RS and R^5RS. This is a complete rewrite of the syntax engine, so any program that uses macros should be rewritten to use the new engine. A subset of the old macro-definition syntax is still supported, but this will eventually be removed. Note that the new syntax engine has no effect on the compiled-code format; most binaries compiled by release 7.6.x should continue to work.

  There are several user-visible consequences to this change:

  - These syntactic keywords have been eliminated: `define-macro`, `in-package`, `macro`, `make-environment`, `scode-quote`, `unassigned?`, and `using-syntax`.
  - The syntactic keyword `the-environment` has been restricted to use in top-level environments. It is no longer allowed in the body of any binding form (e.g. `lambda`, `let`).
  - Syntactic keywords are now stored in environments, rather than in a separate syntax-table structure. The environment abstraction has been enhanced to support this, as well as to make it more general. The changes are documented in the reference manual.
  - The syntax-table abstraction has been eliminated, and most procedures and arguments involving syntax tables have been removed. One exception is the `load` procedure, which still accepts a syntax-table argument, but ignores it.

  Although the 7.6.1 release had a workaround for problems with certain AMD Athlon processors, the workaround was ineffective on machines running Windows operating systems (and possibly OS/2 systems as well). This version fixes that problem.

  The hash-table abstraction is now always loaded. It's not necessary to call `load-option` prior to use of hash tables. For upwards compatibility, calling (load-option 'hash-table) is still permitted but does nothing.