scsh-0.5/doc/scsh-release-0.5

110 lines
3.7 KiB
Groff

We are pleased to release version 0.5 of scsh, the Scheme shell.
* Scsh
------
Scsh is a Scheme system designed for systems programming and high-level
scripting of Unix applications. It includes
- a complete Posix interface from Scheme, including complete
sockets support, signal handlers, and tty control;
- a uniform interface to other generally-universal Unix features,
such as symlinks and pseudo-terminals;
- a library of generally useful tools for scripting applications,
such as regular expressions;
- macro support for a high-level process notation, allowing one to
build pipelines of programs and redirect I/O, similar to Unix shells
such as sh and csh;
- a full R5RS-compliant Scheme, with important extensions: record types,
exceptions, and modules;
- command-line interface designed for writing scripts that are invoked
with #! triggers on their first line.
Scsh runs on most Unix platforms, including Linux, various BSD systems,
Solaris, AIX, and Irix. It is implemented as an extension of Scheme 48,
a portable, byte-code interpreter Scheme implementation.
* Obtaining scsh
----------------
You may obtain the new release at the scsh web page
http://www-swiss.ai.mit.edu/scsh/
which points to the following file, retrievable by anonymous ftp:
ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh.tar.gz
The tar file includes full sources, a detailed manual and a paper
describing the design of the system.
For the lazily curious, we also have the manual separately available as
ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh-manual.ps
Just click 'n view.
You should be able to build scsh for your system by simply ftping
the release file, and doing the following:
gunzip < scsh.tar.gz | tar xf -
cd scsh-0.5
./configure
make
make install
* New in this release
---------------------
Our last release had a lot of new code, and some elements were pretty
flaky. Scsh is now much more robust. All known bugs have been fixed.
Scsh now supports complete Posix, including signal handlers.
Early autoreaping of child processes is now handled by a SIGCHLD
signal handler, so children are reaped as early as possible with no
user intervention required.
A functional static heap linker is included in this release.
It is ugly, limited in functionality, and extremely slow, but it works.
It can be used to build scsh binaries that start up instantly.
There is a new command-line switch,
-sfd <num>
which causes scsh to read its script from file descriptor <num>.
Scheme 48's floating point support was inadvertently omitted from the last
release. It has been reinstated.
The regular expression system has been sped up. Regular-expression
compilation is now provided, and the AWK macro has been rewritten to
pre-compile regexps used in rules outside the loop. It is still, however,
slower than it should be.
We have introduced two new procedures for our Perl fans, for performing
regexp-directed string substitutions:
regexp-substitute
regexp-substitute/global
The design is not what you might expect, but they are quite powerful
and efficient.
Execing programs should be faster in this release, since we now use the
CLOEXEC status bit to get automatic closing of unrevealed port file
descriptors.
* Thanks
--------
We received many bug reports, improvements, fixes and suggestions from scsh
users. In particular, we'd like to thank Alan Bawden, Michael Becker, Jin
Choi, Sean Doran, Lutz Euler, Kevin Esler, Rolf-Thomas Happe, David Hull,
Shriram Krishnamurthi, Tod Olson, Michel Schinz, Bill Sommerfeld, Mike
Sperber, and Victor Zandy for their contributions to this release.
Thanks, guys; we really appreciate the feedback.
Olin Shivers Brian D. Carlstrom
Cambridge, Mass. Santa Clara, Ca.
May, 1997