Go to the first, previous, next, last section, table of contents.
The last full release of MIT Scheme was version 7.3.1 in 1994. The
first section summarizes the changes that have occurred since version
7.3.1. Following that are changes from previous versions.
This highlights some of the more important changes to Scheme since the
7.3.1 release. For complete details, see the `RCS.log' files in
the source code.
Changes to Scheme:
-
MIT Scheme is now supported under OS/2.
-
Illegally-placed internal definitions now signal an error.
-
Stream operations from the upcoming new edition of SICP are
implemented.
-
The
load-option
procedure is now extensible, allowing users to
add their own options to the database.
-
Daylight-savings-time information is now included in the decoded time
data structure.
Changes to Edwin:
-
Cut and paste between Edwin and the system's clipboard (in X11, the
"selection" mechanism) is now supported. This support is directly
integrated into the kill and yank commands: killing some text (e.g.
C-w, C-k, C-M-k) stores that text into the clipboard;
yanking text (e.g. C-y, M-y) inserts text from the
clipboard. This support is transparent in that it has no effect on
Edwin except when some other program puts text into the clipboard.
-
Old RCS support has been replaced with VC ("Version
Control") as in Emacs 19. VC is significantly easier to use. At
present, VC supports only RCS.
-
New command: M-x step-expression; steps through the evaluation of
a Scheme expression.
-
New command: M-x grep, as in Emacs.
-
RMAIL and Unix mail files are now stored in Unix text format,
regardless of the underlying operating system. This allows these files
to be more easily transferred between operating systems.
-
The editor variable
evaluate-in-inferior-repl
now defaults to
#t
.
-
Customizable imaging of characters is now supported. The per-buffer
variable
char-image-strings
holds a vector of 256 strings that
determine how characters are displayed. Using an approriate vector
allows the use of fonts with extra characters, "hex" displays,
compound characters for displaying ISO Latin text in plain
ASCII, and lots of other tricks.
-
Dired's commands are now more like those in Emacs 19.
-
Dired mode is no longer case-sensitive.
-
Dired now supports marking of multiple files. Many commands, such as
M, C, and R, now work on the marked files if there are
any.
-
New command in Dired: + creates a new directory.
-
OS/2 and Unix only: Fetching mail from a POP server is now
supported, using the `popclient' program as a subprocess. Supports
three different `popclient' password schemes: standard, Debian
GNU/Linux, and Kerberos V4. Do M-x variable-apropos RET pop RET
to see the variables that control the use of the `popclient'
program.
-
OS/2 and Unix only: Compressed files are now fully supported. Edwin can
read, write, and append compressed files. Methods are provided to
support the `gzip' and `compress' compression programs, using
the suffixes `.gz' and `.Z', respectively. If Edwin is
attempting to open a file that doesn't exist, but it sees what appears
to be a compressed version of that file, it opens the compressed file
instead.
-
OS/2 and Unix only: In Dired, s now toggles between alphabetic
sorting and time sorting.
Changes Specific to Windows:
-
Long filenames are now supported.
-
The network `\\host\directory' notation is now
supported.
-
Scheme no longer supports the
^Z
end-of-file convention for
files. A ^Z
appearing in a file is treated as an ordinary
character, and output files do not have ^Z
placed at their end.
-
The runtime system now has better heuristics for determining the
user name and home directory.
-
The catatonia timeout has been extended to 120 seconds -- much more
reasonable on slow machines.
-
Window text color now defaults to the system default rather than to
black.
-
The default window font family and size is now selectable by the
environment variable `MITSCHEME_FONT'.
-
process-time-clock
now returns the process time, rather than the
real time, under NT or any variant of Win32 that supports
GetProcessTimes
.
-
A bug has been fixed in the directory reader in which the OS handle was
never closed. This was manifested under Windows 3.1 as Edwin being
unable to do filename completion or file saving after 32 handles were
opened but never closed.
Changes Specific to Edwin under Windows:
-
File systems with either long or short file names are now supported.
Edwin modifies its behavior depending on the file-system type, for
example, using Unix-style `.~n~' backup names with long
files.
-
Multiple Edwin screens are now supported.
-
The handling of windows has been significantly improved; it is now
faster and less buggy.
-
New Edwin commands include M-x set-font, M-x
set-default-font, M-x set-icon, M-x set-foreground-color
and M-x set-background-color.
Changes Specific to OS/2 (since the 7.4.1 release):
-
The main console window now supports a Copy command. Any text appearing
on the window can be copied to the clipboard by marking it with the
mouse and invoking the Copy command.
-
The main console window now has a menu bar, which provides the following
operations: Exit, Copy, Paste, Set font, and About.
-
The main console window now has a list of fonts that it tries to use to
set the default font, rather than just
"4.System VIO"
. It tries
these fonts in order until it finds one. This allows Scheme to be used
on systems that don't support the `System VIO' font, as is true of
some non-US versions of OS/2.
-
Closing the main console window using the window Close command now asks
whether you want to kill Scheme or just close the window and leave
Scheme running; usually you will want the former. Previously, it did
the latter without asking.
-
All windows created by Scheme now have icons to give them a distinctive
appearance when minimized.
-
Compilation of the microcode is supported using IBM Visual Age C++,
Watcom C/C++, or EMX/GCC.
-
Unix file systems are supported specially, e.g. Linux
ext2
or
Unix NFS. End-of-line translation is not done for files on such
file systems, so that the files are read and written properly.
-
The network `\\host\directory' notation is now
supported.
Changes Specific to Edwin under OS/2:
-
The Close command on the window menu of an Edwin window now acts like
C-x C-c if this is the only Edwin window for this process.
-
In Dired, S now toggles between showing and hiding system/hidden
files; these files are initially hidden.
-
Dired has an M command to set the attributes of a file. It
prompts for an attribute string such as `+r' or `-h' and makes
the corresponding change to the file's attributes.
This is an abbreviated list of the changes that have been incorporated
in the 7.3 release since the (partial) 7.2 release.
-
Support for MS Windows (3.1 and NT).
-
Native compiled-code support for DEC Alpha.
-
Compiler can now generate C code. This is used to support the Sun SPARC
and IBM RS6000 architectures.
-
Support for dynamic loading of compiled C code on several operating
systems, including HP-UX, OSF/1, SunOS 4, and AIX.
-
New data structures: red/black trees and weight-balanced trees.
-
Redesign of hash tables makes them much faster and somewhat more
flexible.
-
Completely new random-number generator. The interface to the
random-number generator has been changed to be like that of Common Lisp.
-
Record abstraction now uses a special record type to represent
records (previously it used vectors).
define-structure
now
creates records by default; these records are identical to those created
with the record abstraction.
-
call-with-current-continuation
is now properly tail-recursive.
-
New command-line switch `-no-suspend-file' prevents the generation
of `scheme_suspend' files.
-
Uncompression of compiled-code debugging information is now memoized
to save time when doing many accesses to the same information (a
common occurrence).
-
Constant space now grows automatically when needed.
-
New procedures:
call-with-values ;replaces with-values
current-load-pathname
error-output-port
fold-left
fold-right
interaction-i/o-port
notification-output-port
prompt-for-command-char
prompt-for-command-expression
prompt-for-confirmation
prompt-for-evaluated-expression
prompt-for-expression
standard-unparser-method ;replaces unparser/standard-method
stream-first
stream-rest
symbol<?
trace-output-port
-
string-pad-left
now truncates from the left instead of the right.
-
Argument to
make-graphics-device
is now a symbol.
-
Each REPL now has its own working directory pathname and pathname
defaults.
set-working-directory-pathname!
changes only the value
for the current REPL.
-
The definitions of the following procedures have been changed to
implement more useful behavior:
string-capitalized?
string-lower-case?
string-upper-case?
substring-capitalized?
substring-lower-case?
substring-upper-case?
-
New Edwin features:
M-x dabbrev-expand
M-x describe-syntax
M-x rcs-ci-locked-files
M-x rcs-diff
M-x rcs-list-locked-files
M-x rcs-log
M-x recover-file
M-x show-parameter-list
M-x sort-lines and other sorting commands
auto-mode-alist
variable (as in Emacs)
Encryption/decryption of files in Dired
Undo upgraded to match GNU Emacs 18.57
Buffers grow/shrink with constant amortized time
Emacs 19 tags support (multiple tags files, inclusion)
-
Edwin compression/uncompression commands changed to use
gzip
instead of compress
.
-
Edwin now has text-properties mechanism that permits implementation
of highlighted and mouse-sensitive regions.
This is an abbreviated list of the changes that were incorporated
in the (partial) 7.2 release since the 7.1 release.
-
Support for MS DOS.
-
Native compiled-code support for the Intel i386 and i486 architectures.
-
Fixes to MIPS compiled-code support MIPS R3000 with large cache-line
sizes.
-
Complete redesign of the error system.
-
X11 graphics interface redesigned. The new design is smarter about
interaction with the window manager (for example, it implements the
WM_DELETE_WINDOW
protocol) and has some limited support for event
handling. Windows are now closed when they are reclaimed by the garbage
collector.
-
Redesign of I/O ports. New design supports ports that perform both
input and output.
-
Ports now have better-defined control over blocking mode and terminal
mode. Flushing of output buffers is not done automatically, except for
the console port.
-
New procedures:
*default-pathname-defaults*
->namestring
->truename
close-port
directory-namestring
directory-pathname
directory-pathname-as-file
enough-namestring
enough-pathname
file-access
file-attributes-direct ;same as file-attributes
file-modification-time-direct
file-modification-time-indirect ;same as file-modification-time
file-namestring
file-pathname
file-readable?
host-namestring
i/o-port?
make-generic-i/o-port
make-i/o-port
open-i/o-file
pathname-simplify
pathname-wild?
pathname=?
port/copy
port/input-channel
port/operation
port/operation-names
port/output-channel
port/state
port?
record-copy
record-modifier ;replaces record-updater
set-port/state!
-
with-input-from-file
and with-output-to-file
no longer
close the port when they are exited abnormally.
-
Redefined
#!optional
and #!rest
to be something distinct
from symbols.
-
Strings now accept
"\nnn
" octal character escapes, much
like those in C.
-
Redesign of pathname abstraction. New design is very similar to the
Common Lisp pathname abstraction.
-
New Edwin features:
M-x manual-entry
M-x outline-mode
M-x shell-resync-dirs
M-x shell-command
M-x shell-command-on-region
M-x telnet
RMAIL summary
RMAIL sort
REPL mode and asynchronous evaluation
Printing commands
"run light" for evaluation commands
Reading and writing of compressed files (".Z"
suffix)
Reading and writing of encrypted files (".KY"
suffix)
Compress/uncompress commands for Dired
Support for X protocols: WM_DELETE_WINDOW
and WM_TAKE_FOCUS
Time, load, and mail notification in mode line
Go to the first, previous, next, last section, table of contents.