289 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			289 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Scsh 0.5.3 Release notes					-*- outline -*-
 | |
| 
 | |
| We are pleased to release scsh version 0.5.3.  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.3.  (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.
 | |
| 
 | |
| 
 | |
| * Contents
 | |
| ==========
 | |
| What is scsh
 | |
|   Scsh as a scripting language
 | |
|   Scsh as a systems-programming language
 | |
|   Scsh is a portable programming environment
 | |
| Obtaining and installing scsh
 | |
| Getting in touch
 | |
| The World-Wide What?
 | |
| New in this release
 | |
|   Scsh is now "open source."
 | |
|   Scsh is now on Win32
 | |
|   CVS repository will be public-readable
 | |
|   New char-sets and char-set operations
 | |
|   New regular expression system
 | |
|   New libraries
 | |
|   Renaming
 | |
|   Bugfixes
 | |
| Thanks
 | |
| 
 | |
| 
 | |
| * 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 realized 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.
 | |
| 
 | |
| Scripts can be written as standalone Scheme source files, with a leading
 | |
|     #!/usr/local/bin/scsh -s
 | |
| trigger line.
 | |
| 
 | |
| 
 | |
| ** 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.
 | |
| 
 | |
| 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://ftp-swiss.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
 | |
|     BSD/OS
 | |
|     CXUX
 | |
|     FreeBSD
 | |
|     HP-UX
 | |
|     IRIX
 | |
|     Linux
 | |
|     NetBSD
 | |
|     NeXTStep
 | |
|     Solaris
 | |
|     SunOS
 | |
|     Ultrix
 | |
|     Win32
 | |
| 	
 | |
| Scsh code should run without change across these systems.
 | |
| Porting to new platforms is usually not difficult.
 | |
| 
 | |
| 
 | |
| * Obtaining and installing scsh
 | |
| ===============================
 | |
| You can get a copy of scsh via anonymous ftp, from
 | |
|     ftp://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh.tar.gz
 | |
| 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://ftp-swiss.ai.mit.edu/pub/su/scsh/scsh-manual.ps
 | |
| Just click 'n view.
 | |
| 
 | |
| 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
 | |
|     ./scshvm -o ./scshvm -i ./scsh/scsh.image
 | |
| See the manual for full details on the command-line switches.
 | |
| 
 | |
| 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
 | |
|     scsh@zurich.ai.mit.edu
 | |
| and the netnews group 
 | |
|     comp.lang.scheme.scsh
 | |
| These two forums are exactly equivalent, being bi-directionally gatewayed 
 | |
| at MIT.
 | |
| 
 | |
| Bugs can be reported to
 | |
|     scsh-bugs@zurich.ai.mit.edu
 | |
| 
 | |
| If you do not receive the alt netnews hierarchy, or wish to join the mailing
 | |
| list for other reasons, send mail to
 | |
|     scsh-request@zurich.ai.mit.edu
 | |
| 
 | |
| 
 | |
| * The World-Wide What?
 | |
| ======================
 | |
| We even have one of those URL things: 
 | |
|     http://www-swiss.ai.mit.edu/scsh/
 | |
| 
 | |
| 
 | |
| * 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.
 | |
| 
 | |
| ** Scsh is now on Win32
 | |
|    Scsh will now build and run using Cygwin B20.1. This was only tested
 | |
|    on Windows NT 4.0, but presumably things could work on other Cygwin
 | |
|    platforms such as Win95 or Win98. Cygwin is available from:
 | |
|    http://sourceware.cygnus.com/cygwin/
 | |
| 
 | |
| ** CVS repository will be public-readable
 | |
|    We will add further information to the web-site as soon as possible.
 | |
| 
 | |
| ** 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.
 | |
| 
 | |
| 
 | |
| * Thanks
 | |
| ========
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 	Alan Bawden
 | |
| 	Jim Blandy
 | |
| 	Per Bothner
 | |
| 	Tom Breton
 | |
| 	Christopher Browne
 | |
| 	Sean Doran
 | |
| 	Ray Dillinger
 | |
| 	Allyn Dimock
 | |
| 	Scott Draves
 | |
| 	Lutz Euler
 | |
| 	Kevin Esler
 | |
| 	Jeremy Fitzhardinge
 | |
| 	Noah Friedman
 | |
| 	Martin Gasbichler
 | |
| 	Andy Gaynor
 | |
| 	Ian Grant
 | |
| 	Eric Hanchrow
 | |
| 	Karl Hegbloom
 | |
| 	Johann Hibschman
 | |
| 	Ian Horswill & the Northwestern Scheme wizards
 | |
| 	Gary Houston
 | |
| 	Graham Hughes
 | |
| 	Jarmo Hurri
 | |
| 	Lars Kellogg-Stedman
 | |
| 	Andre Koehoerst
 | |
| 	Hannu Koivisto
 | |
| 	Shriram Krishnamurthi
 | |
| 	Jakob Lichtenberg
 | |
| 	Eric Marsden
 | |
| 	Peter C. Olsen
 | |
| 	Willliam Pippin
 | |
| 	David Rush
 | |
| 	Michael Schinz
 | |
| 	Manuel Serrano
 | |
| 	Mark Shirle
 | |
| 	Bill Somerfeld
 | |
| 	Mike Sperber
 | |
| 	Harvey J. Stein
 | |
| 	Pawel Turnau
 | |
| 	Rob Warnock
 | |
| 	Kenneth R. Westerback
 | |
| 
 | |
| 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. Go forth and write elegant systems
 | |
| programs.
 | |
|     -Olin Shivers, Brian Carlstrom & Martin Gasbichler
 | |
|      Cambridge
 | |
|      29 September 1999
 |