First version of 0.6.0 RELEASE file.
This commit is contained in:
parent
59bd2ab6e4
commit
9ff4f45d42
|
@ -0,0 +1,242 @@
|
|||
Scsh 0.6.0 Release notes -*- outline -*-
|
||||
|
||||
We are pleased to release scsh version 0.6.0. The new release is
|
||||
based on a newer version of Scheme 48 than the previous releases. The
|
||||
update of the underlying system is a massive switch and provides many
|
||||
new features, most notably a sophisticated thread system. We tried to
|
||||
make as less changes as possible to the API, see Section "API changes"
|
||||
for details. Unfortunately, due to the number of changes that were
|
||||
necessary to the internal structures, this release will probably
|
||||
contain some bugs. Don't hesitate to report bugs, we rely on your feedback!
|
||||
|
||||
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.6.0. (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).)
|
||||
|
||||
* 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 based on Scheme 48 0.53
|
||||
API changes
|
||||
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
|
||||
Darwin/Mac OS X
|
||||
|
||||
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
|
||||
./go
|
||||
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 should be equivalent, being bi-directionally gatewayed
|
||||
at MIT, but due to technical problems it's better to read them both.
|
||||
|
||||
Bugs can be reported to
|
||||
scsh-bugs@zurich.ai.mit.edu
|
||||
or via the Scsh project's bugs section on SourceForge:
|
||||
http://sourceforge.net/projects/scsh/
|
||||
|
||||
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/ftpdir/scsh/
|
||||
We now manage the project using SourceForge:
|
||||
http://sourceforge.net/projects/scsh/
|
||||
|
||||
* New in this release
|
||||
====================
|
||||
|
||||
** Scsh is now based on Scheme 48 0.53
|
||||
With the move from Scheme 48 version 0.36 to version 0.53 in this
|
||||
release the underlying system received a massive update. The most
|
||||
significant changes include:
|
||||
User level threads
|
||||
Advanced garbage collector
|
||||
Improved foreign function interface to C
|
||||
|
||||
The most significant change for Scsh users is the addition of a
|
||||
user-level thread system. Scsh provides various features to deal
|
||||
with this new power in a system programming environment: An event
|
||||
based interface to interrupts, thread local process state and
|
||||
thread-safe system calls.
|
||||
|
||||
** Interface to syslog
|
||||
|
||||
** API changes
|
||||
Some procedures of the previous releases are currently not
|
||||
supported as we did not have the time to implement them. Please tell
|
||||
us, if you can't get along without them. Here is a listing of these
|
||||
currently dereleased procedures:
|
||||
select
|
||||
select!
|
||||
|
||||
The following procedures received new names in this release:
|
||||
sleep (now process-sleep)
|
||||
sleep-until (now process-sleep-until
|
||||
|
||||
network-info, service-info and protocol-info now return #f on non-success
|
||||
|
||||
** Undocumented features
|
||||
The distributed code base provides some additional features but
|
||||
these are currently neither documented nor do we guarantee that the
|
||||
interfaces are stable. You may rest assured that we release these
|
||||
features soon. If you come across anything of this code, proceed at
|
||||
your own risk.
|
||||
|
||||
** Bugfixes
|
||||
Most of the known bugs of version 0.5.3 have been fixed. See the
|
||||
project page on SourceForge for a list of the remaining known bugs.
|
||||
|
||||
|
||||
* 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
|
||||
Andreas Bernauer
|
||||
Reini Urban
|
||||
|
||||
We'd like to thank everyone else for their patience; we are sorry that
|
||||
it took almost two years from the start of the port to this release.
|
||||
|
||||
Brought to you by the Scheme Underground. Go forth and write elegant systems
|
||||
programs.
|
||||
-Olin Shivers, Brian Carlstrom, Martin Gasbichler & Mike Sperber
|
||||
|
Loading…
Reference in New Issue