From f471aa500dd5c2b04d4bfc59c14ce3bdd654ce1a Mon Sep 17 00:00:00 2001 From: bdc Date: Wed, 1 Nov 1995 03:00:55 +0000 Subject: [PATCH] *** empty log message *** --- RELEASE | 173 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 140 insertions(+), 33 deletions(-) diff --git a/RELEASE b/RELEASE index 0b35c83..2484c2a 100644 --- a/RELEASE +++ b/RELEASE @@ -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