News ==== The last full release of the MIT Scheme system was version 7.1.3 in 1991. Since that time, there was a partial release of version 7.2 for i386/i486 machines and some MIPS R3000 machines. This section summarizes the changes that have occurred since version 7.1.3. The changes are divided into two parts: those that were incorporated in the 7.2 partial release, and those that were subsequently incorporated. Changes from Release 7.2 to 7.3 ------------------------------- 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 symbolnamestring ->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. * ->PATHNAME no longer accepts a symbol as an argument. Only strings and pathnames are valid. * Procedures eliminated: canonicalize-input-filename canonicalize-input-pathname canonicalize-output-filename canonicalize-output-pathname canonicalize-overwrite-filename canonicalize-overwrite-pathname home-directory-pathname init-file-truename pathname->absolute-pathname pathname->input-truename pathname->output-truename pathname->overwrite-truename pathname->string pathname-components pathname-default-host pathname-directory-path pathname-directory-string pathname-name-path pathname-name-string pathname-new-host pathname-relative? string->pathname symbol->pathname * `pathname-default' no longer accepts a HOST argument. * Representation of pathname directories changed to match Common Lisp. Directory is now either `#f' or a list of symbols and strings with first element either `absolute' or `relative'. * Unix pathnames now set DEVICE and VERSION to `unspecific'. `unspecific' now means that the field is not used by the operating system. * Parsing rules for unix filenames changed: the file type is the part of the name after the last dot, if any. If the dot occurs at the beginning or end of the filename, then it doesn't count -- in that case there is no type. Thus, names like `.' and `..' have no type. * 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