*** empty log message ***

This commit is contained in:
bdc 1995-11-01 03:00:55 +00:00
parent 5d8af0d1f5
commit f471aa500d
1 changed files with 140 additions and 33 deletions

173
RELEASE
View File

@ -1,10 +1,74 @@
This is a release of scsh, release 0.4.0.
Scsh is a Unix shell that is embedded within R4RS Scheme.
It provides high-level shell notation and full access to
the Unix system calls. The current implementation is built
on top of Scheme 48, version 0.36.
Scsh is one
===========
We currently have scsh running on:
Scheme shell version 0.1 was released to the Net exactly a year ago today,
Halloween 1995. We are pleased to release scsh version 0.4 to mark scsh's
first birthday. The new release has many bug fixes, improvements and new
features.
The text below gives a general description of scsh, instructions for
obtaining it, pointers to discussion forums, and a description of the
new features in release 0.4. To read this document with emacs outline
mode, say M-x outline-mode.
* What is scsh
==============
Scsh is a broad-spectrum systems-programming environment for Unix embedded
in R4RS Scheme.
** Scsh as a scripting language
-------------------------------
Scsh has a high-level process notation for doing shell-script like tasks:
running programs, establishing pipelines and I/O redirection. For example, the
shell pipeline
gunzip < paper.tex.gz | detex | spell | lpr -Ppulp &
would be written in scsh as
(& (| (gunzip) (detex) (spell) (lpr -Ppulp)) ; Background a pipeline
(< paper.tex.gz)) ; with this redirection
Scsh embeds this process notation within a full Scheme implementation.
The process notation is realised as a set of macro definitions, and is
carefully designed to allow full integration with standard Scheme code.
Scsh isn't Scheme-like; it is Scheme.
At the scripting level, scsh also has an Awk design, also implemented
as a macro that can be embedded inside general Scheme code.
** Scsh as a systems-programming language
-----------------------------------------
Scsh additionally provides the low-level access to the operating system
normally associated with C. With the exception of signal handlers, the current
release provids full access to Posix, plus important non-Posix extensions,
such as complete sockets support. "Complete Posix" means: fork, exec & wait,
sockets, full read, write, open & close, seek & tell, complete file-system
access, including stat, chmod/chgrp/chown, symlink, FIFO & directory access,
tty & pty support, file locking, pipes, select, file-name pattern-matching,
time & date, environment variables, and more.
In brief, you can now write Unix systems programs in Scheme instead of C.
For example, we have implemented an extensible HTTP server at MIT entirely
in scsh.
As important as full access to the OS is the manner in which it is provided.
Scsh integrates the OS support into Scheme in a manner which respects the
general structure of the language. The details of the design are discussed
in a joint MIT Lab for Computer Science/University of Hong Kong technical
report, "A Scheme Shell," also to appear in a revised format in the *Journal
of Lisp and Symbolic Computation." This paper is also available by ftp:
ftp://swiss-ftp.ai.mit.edu/pub/su/scsh/scsh-paper.ps
** Scsh is a portable programming environment
---------------------------------------------
Scsh is designed for portability. It is implemented on top of Scheme 48,
a byte-code-interpreter Scheme implementation. The Scheme 48 virtual machine
can be compiled on any system with a C compiler; the rest of Scheme 48 is
machine-independent across 32-bit processors. Scsh's OS interface is
also quite portable, providing a consistent interface across different
Unix platforms. We currently have scsh implementations for
AIX,
CXUX,
HP-UX,
@ -15,47 +79,90 @@ We currently have scsh running on:
Solaris,
SunOS,
Ultrix
It's not hard to port scsh to new systems.
Scsh code should run without change across these systems.
Porting to new platforms is usually not difficult.
You can get a copy of scsh via anonymous ftp, from the following:
ftp://clark.lcs.mit.edu/pub/su/scsh/scsh.tar.gz
* Obtaining and installing scsh
===============================
You can get a copy of scsh via anonymous ftp, from
ftp://swiss-ftp.ai.mit.edu/pub/su/scsh/scsh.tar.gz
These tar files include a detailed manual and a paper describing
The tar file includes 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://clark.lcs.mit.edu/pub/su/scsh/scsh-manual.ps
ftp://swiss-ftp.ai.mit.edu/pub/su/scsh/scsh-manual.ps
Just click 'n view.
The current release is primarily useful for writing shell scripts
and doing general systems programming.
You *should* be able to build scsh on the standard platforms with exactly five
commands: gunzip, tar, cd, ./configure, and make. The configure script figures
out the special flags and switches needed to make the build work (thanks to
the GNU project for the autoconfig tool that makes this possible).
Real interactive use needs a parser for an sh-like syntax, job control,
and the gnu readline library. If you're interested in hacking
on these things, drop us a line at scheme-underground@ai.mit.edu.
We've got designs for most of this stuff; we're just short on time
and bodies.
If it's harder than this, and your system is standard, we'd like to know
about it.
New in this release:
- The scsh network package, a complete interface for Berkeley-style sockets.
We are going to keep the code for our higher-level protocols (ftp, telnet,
http, and so forth) close to home for one more release.
- The awk loop and field parser package.
* Getting in touch
==================
There are two main ways to join in scsh-related discussion: the mailing-list
scsh@martigny.ai.mit.edu
and the netnews group
alt.lang.scheme.scsh
These two forums are exactly equivalent, being bi-directionally gatewayed
at MIT.
These two packages are documented in the reference manual.
Bugs can be reported to
scsh-bugs@martigny.ai.mit.edu
Lots of plans for the next release: libraries with network protocol code,
the html parser and the server kit, module switches on the command line,
threads -- we'll do our best.
If you do not receive the alt netnews hierarchy, or wish to join the mailing
list for other reasons, send mail to
scsh-request@martigny.ai.mit.edu
We thank Brent Benson, Travis V. Broughton, Brian Dennis, Noah Friedman Mike
Gunter, Shriram Krishnamurthi, John P. Lewis, Tom Lord, Scott Schwartz, and
Bill Sommerfeld, Michael Sperber, Axel Wienberg, for bug reports, bug fixes,
and comments that were incorporated into this release.
Brought to you by the Scheme Underground scsh team.
* New in this release
=====================
** New system calls.
select, file locking, full tty device control, ptys, set-file-times,
process timing, seek & tell. We still don't have signal handlers; with this
exception, Scsh now has all of Posix.
** Automatic reaping of exited subprocesses.
You may wait on a subprocess zero, one, or more times without filling
up the kernel's process table or generating an error.
** New delimited-input reader procedures.
You may read input delimited by a newline character (read-line),
a blank-line (read-paragraph), or a character from an arbitrary
set (read-delimited). These procedures have native-code support
for reading from Unix input sources, and are quite fast.
** Better support for writing standalone scripts.
It's much easier to write standalone scripts now. Scripts can use
the new command-line switches to open dependent modules and load
dependent source code. Scripts can also be written in the Scheme 48
module language.
** Etc.
Control of I/O buffering policy, better error reporting, bug fixes,
here-strings, sub-second time precision, ...
* Thanks
========
We thank Travis Broughton, Charlie Conklin, Jin S. Choi, Brian F. Dennis,
Patrick May, Bill Sommerfeld, Michael Sperber, Steven L. Tamm, Ed Tobin, and
others for bug reports, bug fixes, and comments that were incorporated into
this release. We really appreciate their help, particularly in the task of
porting scsh to new platforms.
We'd like to thank everyone else for their patience; this release seemed like
a long time coming.
Brought to you by the Scheme Underground scsh team. Go forth and write
elegant systems programs.
-Olin Shivers & Brian Carlstrom
Cambridge & Sunnyvale
Cambridge
31 October, 1995