242 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			8.4 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).)
 | 
						|
 | 
						|
PLEASE NOTE:
 | 
						|
   We expect to rapidly upgrade this release to 0.5.4 within one or two
 | 
						|
   weeks. Please check the web site to see if this release has already
 | 
						|
   been superceded before installing.
 | 
						|
 | 
						|
   This release is primarily to get experience building the new system on a
 | 
						|
   wide array of platforms. If you have problems building this release, please
 | 
						|
   check comp.lang.scheme.scsh for similar bug reports. If you don't see one
 | 
						|
   concerning your system, then please send us a bug report, with a
 | 
						|
   description of your system and a build trace. Post your bug report to
 | 
						|
   comp.lang.scheme.scsh as well, so others won't flood us with a similar
 | 
						|
   bug report.
 | 
						|
   
 | 
						|
   That all said, the system works fine for us!
 | 
						|
 | 
						|
* 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. It has an open-source copyright, and runs on most major
 | 
						|
Unix systems.
 | 
						|
 | 
						|
** 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
 | 
						|
    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 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 dot-com cyberweb things: 
 | 
						|
    http://www-swiss.ai.mit.edu/scsh/
 | 
						|
 | 
						|
 | 
						|
* New in this release
 | 
						|
=====================
 | 
						|
 | 
						|
** 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 is now publically accessable
 | 
						|
   The scsh sources have moved to scsh.sourceforge.net, and the
 | 
						|
   the CVS repository is publically readable. Here's the magic:
 | 
						|
 | 
						|
   cvs -d:pserver:anonymous@cvs.scsh.sourceforge.net:/cvsroot/scsh co scsh
 | 
						|
   cvs -d:pserver:anonymous@cvs.scsh.sourceforge.net:/cvsroot/scsh co scsh-0.6
 | 
						|
 | 
						|
   (The 0.6 source tree builds with a modern Scheme 48 and thread support.
 | 
						|
    It has not been released.)
 | 
						|
 | 
						|
** New libraries
 | 
						|
   Scsh now provides the SRFI-1, SRFI-13 and SRFI-14 libraries, giving
 | 
						|
   portable support for list, string and character-set operations.
 | 
						|
 | 
						|
   These libraries make basic list and string hacking very straightforward.
 | 
						|
 | 
						|
** Database access via ODBC
 | 
						|
   Brian Carlstrom, Sam Thiebault and Olin Shivers have designed and
 | 
						|
   implemented a portable interface to relational databases. The code
 | 
						|
   back-ends to ODBC drivers for portability.
 | 
						|
 | 
						|
** 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.
 | 
						|
    Friedrich Dominicus
 | 
						|
    Jay Nietling
 | 
						|
    Tim Bradshaw
 | 
						|
    Robert Brown
 | 
						|
    Eric Marsden
 | 
						|
    Paul Emsley
 | 
						|
    Pawel Turnau
 | 
						|
    Hannu Koivisto
 | 
						|
    Andy Gaynor
 | 
						|
    Francisco Vides Fernandez
 | 
						|
    Tim Burgess
 | 
						|
    Brian Denheyer
 | 
						|
    Harvey Stein
 | 
						|
    Eric Hilsdale
 | 
						|
 | 
						|
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 & Mike Sperber
 | 
						|
     
 |