scsh-0.5/RELEASE

255 lines
8.9 KiB
Plaintext
Raw Normal View History

Scsh 0.5.2 Release notes -*- outline -*-
We are pleased to release scsh version 0.5.2. 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.5.2. (Emacs should display this document is in outline mode. Say
c-h m for instructions on how to move through it by sections (e.g., c-c c-n,
c-c c-p).)
This release is the first new release of scsh in over a year. We've been
using it, and have had no problems. However, we only recommend eager users
download it. We'll upgrade it to a 0.5.3 release after a week or two, when
this release has been shaken out.
1995-10-31 22:00:55 -05:00
* 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.
1995-11-01 18:27:31 -05:00
The process notation is realized as a set of macro definitions, and is
1995-10-31 22:00:55 -05:00
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.
Scripts can be written as standalone Scheme source files, with a leading
#!/usr/local/bin/scsh -s
trigger line.
1995-10-31 22:00:55 -05:00
** Scsh as a systems-programming language
-----------------------------------------
Scsh additionally provides the low-level access to the operating system
normally associated with C. The current release provides 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, signal handlers, and more.
1995-10-31 22:00:55 -05:00
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:
1995-11-01 15:49:33 -05:00
ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh-paper.ps
1995-10-31 22:00:55 -05:00
** 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
1995-10-13 23:34:21 -04:00
AIX,
1996-11-10 15:51:15 -05:00
BSD/OS,
1995-10-13 23:34:21 -04:00
CXUX,
1995-11-01 18:27:31 -05:00
FreeBSD,
1995-10-13 23:34:21 -04:00
HP-UX,
IRIX,
Linux,
NetBSD,
1996-11-10 15:51:15 -05:00
NeXTStep,
1995-10-13 23:34:21 -04:00
Solaris,
SunOS,
Ultrix
[Brian- can you edit this list]
1995-10-31 22:00:55 -05:00
Scsh code should run without change across these systems.
Porting to new platforms is usually not difficult.
1995-10-13 23:34:21 -04:00
1995-10-31 22:00:55 -05:00
* Obtaining and installing scsh
===============================
You can get a copy of scsh via anonymous ftp, from
1995-11-01 15:49:33 -05:00
ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh.tar.gz
1995-10-31 22:00:55 -05:00
The tar file includes a detailed manual and a paper describing
1995-10-13 23:34:21 -04:00
the design of the system.
For the lazily curious, we also have the manual separately available as
1995-11-01 15:49:33 -05:00
ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh-manual.ps
1995-10-13 23:34:21 -04:00
Just click 'n view.
1995-10-31 22:00:55 -05:00
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).
After doing the make, you can start up a Scheme shell and try it out
by saying
1996-11-01 03:02:54 -05:00
./scshvm -o ./scshvm -i ./scsh/scsh.image
See the manual for full details on the command-line switches.
1995-10-31 22:00:55 -05:00
If it's harder than this, and your system is standard, we'd like to know
about it.
* Getting in touch
==================
There are two main ways to join in scsh-related discussion: the mailing-list
1999-08-10 14:18:00 -04:00
scsh@zurich.ai.mit.edu
1995-10-31 22:00:55 -05:00
and the netnews group
1996-11-01 03:02:54 -05:00
comp.lang.scheme.scsh
1995-10-31 22:00:55 -05:00
These two forums are exactly equivalent, being bi-directionally gatewayed
at MIT.
Bugs can be reported to
1999-08-10 14:18:00 -04:00
scsh-bugs@zurich.ai.mit.edu
1995-10-31 22:00:55 -05:00
If you do not receive the alt netnews hierarchy, or wish to join the mailing
list for other reasons, send mail to
1999-08-10 14:18:00 -04:00
scsh-request@zurich.ai.mit.edu
1995-10-31 22:00:55 -05:00
1995-11-01 15:52:51 -05:00
* The World-Wide What?
======================
We even have one of those URL things:
1996-11-01 03:02:54 -05:00
http://www-swiss.ai.mit.edu/scsh/
1995-11-01 15:52:51 -05:00
1995-10-31 22:00:55 -05:00
* New in this release
=====================
** Scsh is now "open source."
We finally got around to tacking an ideologically hip copyright
onto the source. (Not that we ever cared before what you did with
the system...) The Scheme 48 authors have also graciously retrofitted
a BSD-style open-source copyright onto the underlying Scheme 48 0.36
platform for us. The whole system is now open source, top-to-bottom.
Take all the code you like; we'll just write more.
** CVS repository now public-readable
Here's what you do:
CVS_RSH=ssh
cvs -d kowloon-bay.ai.mit.edu:/projects/express/scsh-cvs checkout scsh
** New char-sets and char-set operations
See the manual for more information on using character sets
for text processing. Also, see the ccp package in scsh/scsh/lib
for a new library providing character->character partial maps,
which are also useful for general string processing.
** New regular expression system
There's a whole, new regexp package in scsh. There's a new,
s-expression-based notation for regexps, called SRE's. The new
notation has been integrated into the AWK macro and field-parser functions.
The older Posix notation is still supported for backwards compatibility.
There's a whole chapter on regexps in the new manual; it has full details.
The previous AWK and field-reader system is provided in a
backwards-compatibility package. See package obsolete-awk-package
in scsh-package.scm.
** New libraries
The SRFI-1 list library is available, in the list-lib package.
There is a large, powerful string-processing library available
in the string-lib package. See the directory scsh/scsh/lib/ for
documentation and source.
These libraries make basic list and string hacking very straightforward.
** Renaming
We are shifting from a reduce-foo convention to a more standard
foo-fold convention. This has caused the following renamings:
reduce-char-set => char-set-fold
reduce-port => port-fold
The older names are still bound, but are deprecated and will likely
go away in a future release.
String utilities INDEX and RINDEX are gone. Use the string-lib procedures
instead.
** Bugfixes
Over a year's worth of bug fixes. In particular, the old problems with the
signal system blowing up builds on some of the more obscure Unix systems
have been fixed.
1995-10-13 23:34:21 -04:00
1995-10-31 22:00:55 -05:00
* Thanks
========
1995-10-13 23:34:21 -04:00
We would like to thank the members of local-resistance cells for the
Underground everywhere for bug reports, bug fixes, design review and comments
that were incorporated into this release. We really appreciate their help,
particularly in the task of porting scsh to new platforms.
[Brian- will you add your set of names to this list?]
Alan Bawden,
Jim Blandy,
Per Bothner,
Tom Breton,
Christopher Browne,
Ray Dillinger,
Allyn Dimock,
Scott Draves,
Lutz Euler,
Jeremy Fitzhardinge,
Noah Friedman,
Martin Gasbichler,
Andy Gaynor,
Ian Grant,
Eric Hanchrow,
Karl Hegbloom,
Ian Horswill & the Northwestern Scheme wizards
Graham Hughes,
Lars Kellogg-Stedman,
Andre Koehoerst,
Shriram Krishnamurthi,
Jakob Lichtenberg,
Eric Marsden,
Willliam Pippin,
David Rush,
Michael Schinz,
Manuel Serrano,
Mark Shirley
Bill Somerfeld,
Mike Sperber,
Harvey J. Stein,
Pawel Turnau,
1995-10-13 23:34:21 -04:00
1995-10-31 22:00:55 -05:00
We'd like to thank everyone else for their patience; this release seemed like
a long time coming.
1995-10-13 23:34:21 -04:00
Brought to you by the Scheme Underground. Go forth and write elegant systems
programs.
1995-10-31 04:18:15 -05:00
-Olin Shivers & Brian Carlstrom
1995-10-31 22:00:55 -05:00
Cambridge
29 September 1999