scheme shell

From: (Michael Sperber [Mr.  Preprocessor])
Newsgroups: comp.lang.scheme.scsh
Subject: Redesigning process forms
Message-ID: <>
Date: Fri, 01 Feb 2002 17:00:22 +0100

Dear Fellow Hackers,

as some of you know, I've long been dissatisfied with scsh's shell
subsystem, mainly because I couldn't remember the quoting and
parenthesization rules.  I also could never understand the conceptual
distinction between process forms and extended process forms.

So, when I couldn't sleep from being jetlagged after the flight back
from POPL, I hacked something up.  It turned out to be surprisingly
simple as Olin had put a nice and clean infrastructure in place.  Here
are the two main thrusts of the change:

- Process forms and extended process forms are now merged.
  There are only process forms.  Their syntax remains exactly the same
  as before.  However, by virtue of this change, it has become
  slightly more liberal.  For example (run ls) is now valid, as is
  (run (ls)).

- Process forms have value-level cousins called process descriptors
  with exactly the same composition operators available for them as
  procedures.  There's a PROCESS-FORM macro which converts a process
  form into a process descriptor, and you can take things from there.

  This takes care of Tom Lord's criticism at
  but doesn't follow the silliness proposed there.
This is not going into 0.6 which is in complete-and-fix-bugs mode.
I'll maintain it until 0.6 is reasonably complete at which time we can
start a serious development branch and commence to break things.  I've
decided to give SourceForge's patch tracker a whirl.  You can download
the patch from:

It also includes a patch to the documentation, so it's all there.  It
applies to the 0.6 currently in CVS.

I'd appreciate if you guys could give it a look.  Especially, of
course, as always ... Olin, you there?

Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla