English [en]

MIT/GNU Scheme release notes

Stable release 10.1.9

Bug:Fix botched edit in last release that broke Edwin.

Stable release 10.1.8

This is the "MIT Professors" release, after the two professors who reported the bugs.

Feature: When reading Scheme files, the reader now looks for and obeys a "coding" attribute. For example,

;; -*- coding: iso-8859-1 -*-
tells the reader to use iso-8859-1 coding, rather than the default utf-8 coding. The file attributes line uses the same format that Emacs accepts (multiple attributes separated by semicolons), except that the right-hand side of each attribute will be parsed by read and consequently must be valid Scheme syntax.

Bug: Make sure that Edwin reads and writes files in iso-8859-1 coding. This is the only coding that Edwin supports since it uses single-byte strings.

Note that there is no way to automatically override the default coding when writing files, other than to use (port/set-coding port coding) on the output port after opening it and before writing to it.

Bug: Fix a minor bug in IMAIL.

Stable release 10.1.7

Feature: Some support for upcoming changes to the ABI and compiler.

Performance: More performance improvements for Edwin and IMAIL.

Bug: More fixes to X11 graphics support.

Bug: Fix support for UTF-8 encoding of file names.

Stable release 10.1.6

Bug: Killing Emacs *scheme* buffer was not killing the scheme process.

Bug: Fix printing of string slices.

Performance: Minor tweak to character sets in Edwin regexps.

Stable release 10.1.5

Bug: Fix problems from X11 graphics support.

Bug: Top-level definition should return the name when evaluated.

Feature: Change param:reader-fold-case? to be settable.

Stable release 10.1.4

Bug: Fix problem where Scheme crashes when running under Emacs using --emacs.

Bug: Fix breakage that caused legacy make-hash-table to throw an exception.

Feature: Implement position option for textual ports, export binary-port-position,set-binary-port-position!, and binary-port-length, and fix bug in position of binary output ports.

Feature: Allow use of bundle? as a bundle predicate. Also allow #f to be passed, meaning the same thing.

Feature: New printer parameter param:print-hash-number-in-objects? controls whether objects with #[...] printed representation will contain the hash number for the object. By default, it's true so there's no change in behavior.

Performance: Speed up string operations for Edwin and IMAIL. These changes should provide noticeable improvements.

Performance: Don't use general predicate relations for record predicates; there's no advantage, and it's far slower than just chasing the parent link.

Stable release 10.1.3

Revise unix installation notes to be more specific.

A bunch of changes to smooth the process of installation.

Bug fix: make flo:integer? answer true only for finite inputs.

Stable release 10.1.2

Fix problem: x11 plugin wasn't being recompiled when installing from native distribution.

Stable release 10.1.1

Fix problem that required a working mit-scheme when building and installing one of the distributed native builds.

Stable release 10.1

This release has a few high-level changes in addition to those detailed below:

Major new features

SMP support

Preliminary support for symmetric multi-processing has been added, though the core functionality remains on an alternate branch. A multi-processing Scheme cannot rely on without-interrupts for exclusive, atomic access to the entire system. Thus without-interrupts is deprecated. Many of the system's uses of without-interrupts sought only to avoid interruption of a set of data structure modifications that would leave the data in an inconsistent state. These applications of without-interrupts were replaced with applications of a new procedure: without-interruption. Users of subprocess-global-status-tick and subprocess-status-tick relied on without-interrupts to ensure a subprocess could not change status between examining the tick and blocking to wait for a tick. Without without-interrupts, these users needed another mechanism to reliably block for subprocess status changes. The IO system already does this for IO using thread events, so a procedure similar to register-io-thread-event was added: register-subprocess-event.

GC Notifications

GC notifications previously ran in the after-gc interrupt handler, in whatever thread took the GC trap, or no thread at all if the thread system trapped. Unfortunately the notification procedure wants to write to a thread's dynamically bound current output port. Edwin uses this to re-direct the GC notices to its *scheme* buffer. When the thread system trapped, a random thread's (but often the only thread's) dynamic state was used to get a current output port. In anticipation of more finely threaded (and multi-processing) worlds, all of the surprising behavior was taken out of GC notifications. Interested threads are required to register and each runs a thread event soon after the flip (like an interrupt).

Thread Events

Minor new features

Minor changes and bug fixes

Incompatible changes

Experimental new features

Stable release 9.2

Stable release 9.1

Incompatible changes

Major new features

Experimental new features

Major changes

Minor new features

Minor changes and bug fixes

Stable release 9.0

(Note that we're skipping the 8.x version numbers because long ago there was an 8.x series that we never released.)

In the past my (Chris Hanson's) policy for a stable release was that the documentation had to be updated for the release before it went out. In practice, this has meant that there have been no stable releases in recent years. As of this release, we will no longer consider updated documentation a prerequisite for a stable release.

Major changes

Incompatibilities with previous releases

System usage changes

Changes to the runtime

Improved XML support

Changes to Edwin

Changes to IMAIL

Testing release 7.7.90

As of this release, MIT Scheme is a part of the GNU project and has been renamed MIT/GNU Scheme. The project is now hosted on Savannah. License text in the source files has been changed, and a license/warranty statement is now emitted during boot, to conform to the GNU coding standards.

This is the first testing release of MIT/GNU Scheme. I had originally planned to do a stable 7.8.0 release, but time pressures have made it difficult to bring the documentation up to date, so this release comes with out-of-date documentation. Additionally, there will be binaries only for GNU/Linux; users of other systems will have to wait for the stable release.

Incompatibilities with previous releases

Changes to the runtime system

Changes to Edwin

Changes to XML support

Stable release 7.7.1

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.

Stable release 7.7.0

This release provides hygienic macro support, as defined in R4RS and R5RS. 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.

User-visible consequences to this change

Other notable changes in this release


 [FSF logo] “The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom. We defend the rights of all software users.”