From: byron@netapp.com (Byron Rakitzis)
To: rc@hawkwind.utcs.toronto.edu
Subject: README for es
Date: Thu, 1 Oct 1992 14:06:02 -0400 [thread overview]
Message-ID: <9210011806.AA11122@netapp.netapp.com> (raw)
This is the README for es-0.67.
INTRO
Almost as soon as rc became usable, Paul Haahr and I (Byron Rakitzis)
started talking about what a "son of rc" would look like.
Es ("extensible shell") represents our combined effort, on and off
(mostly off), over the last year or so.
We are presenting a paper on es at this Winter's Usenix. We'd naturally
like this program to get some exposure from real users before we brag
to the whole world about it.
Since almost by definition members of the rc list are people who are
willing to try something new, this is the first place I am posting.
Chris Siebenmann (cks@hawkwind.utcs.toronto.edu) has kindly offered to
put the es sources up for ftp (ftp.white.toronto.edu, in pub/es), as
well as to maintain a separate es mailing list (send mail to Chris for
information and subscription requests).
MOTIVATION
We wanted to create a shell that looked more like a "real" programming
language, so that, e.g., it could be used well in an embedded
application the way Tcl can. Hence lexical scoping, for example.
We thought that by presenting rc's features (pipes, list manipulation,
and so on) as a uniform interface, it would be possible to tailor es
carefully to an application. The shell's syntax (which resembles rc's)
is just syntactic sugar on top of this interface.
We also wanted to try something new :-)
HOW TO USE IT
Superficially, es resembles rc. This can be used as a zeroth
approximation for figuring things out in es. Some differences in syntax
are unavoidable. For example, since just about everything has been
reduced to a "builtin", control structures like "if" and "while" take
both the test and the body in curly braces.
Right now, I'm going to punt you to the abstract that we've written,
as no user manual yet exists. Unfortunately, this means that you
might have to explore the code itself to see what is going on,
since the abstract does not tell the whole story. But it should
be enough to whet your appetite, we hope. A sample .esrc is also
provided.
Things that are not documented in the abstract: the hook mechanism
for variables of the form "set-foo". See "set-HOME" in initial.es
for a use of this. There is a "catch" and a "throw" for implementing
user-level exceptions in es.
WHERE TO LOOK
The source, initial.es (implements the builtins & syntactic sugar)
Sample.esrc (Paul's .esrc), trip.es (not a complete trip test!), and
the Usenix abstract. Have fun.
BUGS
Things are very new, and still somewhat incomplete, so all feedback
(bug reports, and so on) is warmly appreciated. The file TODO lists
incomplete tasks in release-number order. For any comments, please drop
a note to
haahr@adobe.com
or
byron@netapp.com
The code has been run under SunOS4.1.1 and NeXTOS2.1 with gcc as the
compiler, as well as on an RS6000 with AIX3.2 and the IBM compiler.
Doubtless there are portability problems we don't know about yet.
Please try to let us know about those also.
Many thanks,
Paul Haahr
Byron Rakitzis
reply other threads:[~1992-10-01 18:19 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9210011806.AA11122@netapp.netapp.com \
--to=byron@netapp.com \
--cc=rc@hawkwind.utcs.toronto.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).