From a46c405889c6cb2ba440c7c8906e9f4f012d0001 Mon Sep 17 00:00:00 2001 From: shivers Date: Fri, 17 Sep 1999 01:29:02 +0000 Subject: [PATCH] RELEASE -- prepared release notes for 0.5.2 ccp-pack.scm added to lib *.tex "foldl" -> "fold" fixup What's with list-lib? --- RELEASE | 166 +++++++++++++++++++++---------- doc/scsh-manual/awk.tex | 8 +- doc/scsh-manual/procnotation.tex | 8 +- 3 files changed, 120 insertions(+), 62 deletions(-) diff --git a/RELEASE b/RELEASE index 7979cbf..c4aeec6 100644 --- a/RELEASE +++ b/RELEASE @@ -1,10 +1,19 @@ -We are pleased to release scsh version 0.5.2 to celebrate Independence Day. -The new release has many bug fixes, improvements and new features. +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. -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. To read this document with emacs outline -mode, say M-x outline-mode. * What is scsh ============== @@ -32,13 +41,18 @@ 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, +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. @@ -76,6 +90,7 @@ Unix platforms. We currently have scsh implementations for Solaris, SunOS, Ultrix +[Brian- can you edit this list] Scsh code should run without change across these systems. Porting to new platforms is usually not difficult. @@ -124,73 +139,116 @@ list for other reasons, send mail to * 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. -** Signal handlers - We finally have signal handlers. Go wild. + Take all the code you like; we'll just write more. -** Static heap linker - The static heap linker converts a Scheme 48 bytecode image as - embodied in a .image file to a C representation. This C - code is then compiled and linked in with a virtual machine. One - pleasant side effect of this is reduced startup times and heap sizes. - Another good thing is that immutable parts of the image can be shared - between processes. see the script scsh/static.scm +** 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 -** Last few bits of Posix - Scheme bindings for isatty(), ttyname(), ctermid(), and fcntl(). +** 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. -** Regular expression compilation - - MAKE-REGEXP now actually does something useful. - - AWK has been modified to use it, precompiling all of its - patterns outside the main loop. - - Unfortunately, things are still pretty slow. We'll work on it. +** 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. -** New meta-arg second-line syntax - Simpler grammar. + The previous AWK and field-reader system is provided in a + backwards-compatibility package. See package obsolete-awk-package + in scsh-package.scm. -** New -sfd command line switch - Scripts can be read from stdin or other open file descriptors. +** 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. -** Starting up programs with the "-e " command-line - switch and with the (DUMP-SCSH-PROGRAM ) - are now equivalent in that both pass a list of command-line arguments - that includes the program name. The two start-up methods were not - the same in the previous release. NOTE: THIS IS A BACKWARDS-INCOMPATIBLE - CHANGE IN DUMP-SCSH-PROGRAM FROM THE PREVIOUS RELEASE. + These libraries make basic list and string hacking very straightforward. -** Etc. - Solaris 2 on i386 support, AIX 4 support, HP-UX now uses dld for - faster loading, a few small networking bug fixs, better error - reporting, bug fixes, more efficient handling of closing unrevealed - file descriptors at exec() with CLOEXEC, ... +** 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 Michael Becker, Glenn Barry, Travis Broughton, -Robert E. Brown, Charlie Conklin, Franklin Chen, Jin S. Choi, Douglas -S. J. De Couto, Brian F. Dennis, Sean Doran, Kevin Esler, Lutz Euler, -Lewis Girod, Dan Hagerty, Rolf-Thomas Happe, David Hull, Steven L. -Jenkins, Patrick May, Richard Kelsey, Jay Nietling, Tod Olson, Stephen -Pascoe, Jonathan Rees, Michel Schinz, Cotton Seed, Bill Sommerfeld, -Michael Sperber, Steven L. Tamm, Ed Tobin, Victor Zandy, 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 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, 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. +Brought to you by the Scheme Underground. Go forth and write elegant systems +programs. -Olin Shivers & Brian Carlstrom Cambridge - 14 June 1997 + 29 September 1999 diff --git a/doc/scsh-manual/awk.tex b/doc/scsh-manual/awk.tex index a9bba0a..9b29176 100644 --- a/doc/scsh-manual/awk.tex +++ b/doc/scsh-manual/awk.tex @@ -629,10 +629,10 @@ of input stream. (#t (max max-len (string-length line))))\end{code} \begin{code} -;;; (This could also be done with PORT-FOLDL:) -(port-foldl (current-input-port) read-line - (lambda (line maxlen) (max (string-length line) maxlen)) - 0)\end{code} +;;; (This could also be done with PORT-FOLD:) +(port-fold (current-input-port) read-line + (lambda (line maxlen) (max (string-length line) maxlen)) + 0)\end{code} \begin{code} ;;; Print every line longer than 80 chars. diff --git a/doc/scsh-manual/procnotation.tex b/doc/scsh-manual/procnotation.tex index 0be94cb..e33fc2c 100644 --- a/doc/scsh-manual/procnotation.tex +++ b/doc/scsh-manual/procnotation.tex @@ -324,12 +324,12 @@ run/sexp* $\equiv$ read $\circ$ run/port* run/sexps* $\equiv$ port->sexp-list $\circ$ run/port*\end{code} \end{desc} -\defun{port-foldl}{port reader op . seeds} {\object\star} +\defun{port-fold}{port reader op . seeds} {\object\star} \begin{desc} This procedure can be used to perform a variety of iterative operations over an input stream. It repeatedly uses \var{reader} to read an object from \var{port}. -If the first read returns eof, then the entire \ex{port-foldl} +If the first read returns eof, then the entire \ex{port-fold} operation returns the seeds as multiple values. If the first read operation returns some other value $v$, then \var{op} is applied to $v$ and the seeds: @@ -340,9 +340,9 @@ reading a new value from the port, and so forth. For example, \ex{(port->list \var{reader} \var{port})} could be defined as - \codex{(reverse (port-foldl \var{port} \var{reader} cons '()))} + \codex{(reverse (port-fold \var{port} \var{reader} cons '()))} -An imperative way to look at \ex{port-foldl} is to say that it +An imperative way to look at \ex{port-fold} is to say that it abstracts the idea of a loop over a stream of values read from some port, where the seed values express the loop state.