9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Roman Shaposhnick <rvs@sun.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu>
Subject: Re: [9fans] Install from CD fails
Date: Wed, 19 Apr 2006 21:02:16 -0700	[thread overview]
Message-ID: <20060420040215.GA21288@submarine> (raw)
In-Reply-To: <57b9d806f3ec06df038f56c360f60867@quanstro.net>

On Wed, Apr 19, 2006 at 04:46:47PM -0500, quanstro@quanstro.net wrote:
> yes.  there are a couple (okay, three) problems to address here.  byron and paul haahr
> addressed some of the problems with a shell called "es" years ago, even though they
> didn't have dynamic modules.
>
> 1.  what interface do external modules get to see?  perhaps masquerading as
> a shell function would be good enough.

  I think Tcl has struck a nice balance here -- everything is a command
  taking a number of arguments. Or are you talking about a different
  sort of interface ?

> 2. what hooks are provided by the shell.  the "es" shell provided a hook
> for darn near every language construct there was.  for example, it was possible
> to redefine globbing, piping, the if statement, etc.

  That is a bit too much, in my oppinion. I think what the 'core' shell
  is supposed to do is provide a nice glue for the rest of the dynamic
  functionality. Sort of like file system is a universal glue for every
  other application running on the system. I would say that this is the
  most challenging aspect of designing my dream 'shell' -- the glue is
  supposed to be easy enough for me to understand, yet powerful enough
  to express simple things in simple terms. Tcl comes pretty close
  to being that glue.

  Any other suggestions ?

> 3. shell syntax vs. command syntax.  the shell's syntax often gets in the way
> of command syntax.

  I think this is unavoidable. But somehow, I don't really perceive it to
  be that big of a deal, anyway. Quoting is quite useful and not really
  painful. At least as long as you understand the rules involved. That's
  why I like Tcl so much -- even though you have to use extra quote or eval
  from time to time, you know exactly how everything gets parsed because
  there's only 11 rules to describe the entire language machinery.

> mike hartel wrote up some stuff about this years ago.
> basically, it's a pain that the shell and, say, grep, want to use the same characters.
> i can't just type
> 	; grep ^fn *.[ch]
> i must type
> 	; grep '^fn' *.[ch]
> instead.  this would get very difficult if one added awk-like functions to the shell.
> es did this: anything passed to a function inside curly braces was passed verbatim.
> thus "if" in es looks like a normal es function call:
> 	; if {condition1} {body1} {condition2} {body2}

   That sounds exactly like Tcl.

Thanks,
Roman.


  parent reply	other threads:[~2006-04-20  4:02 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-19  2:35 erik quanstrom
2006-04-19  3:53 ` Russ Cox
2006-04-19  4:25   ` [9fans] dynamic module loading and versioning Michael Baldwin
2006-04-19  9:37     ` Bruce Ellis
2006-04-19  9:40       ` Lyndon Nerenberg
2006-04-19  9:54         ` Bruce Ellis
2006-04-19 14:12           ` Artem Letko
2006-04-19 17:49             ` Bruce Ellis
2006-04-19 19:34 ` [9fans] Install from CD fails Roman Shaposhnick
2006-04-19 19:42   ` Bruce Ellis
2006-04-20  1:07     ` Roman Shaposhnick
2006-04-20  2:02       ` Jack Johnson
2006-04-19 19:45   ` Charles Forsyth
2006-04-19 21:16   ` Brantley Coile
2006-04-19 21:46   ` quanstro
2006-04-20  1:03     ` rog
2006-04-20  6:08       ` Charles Forsyth
2006-04-20 15:59         ` rog
2006-04-20  4:02     ` Roman Shaposhnick [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-04-25  2:16 erik quanstrom
2006-04-21 15:49 erik quanstrom
2006-04-20 10:36 erik quanstrom
2006-04-20 10:30 erik quanstrom
2006-04-20 13:50 ` David Leimbach
2006-04-20 17:55 ` Skip Tavakkolian
2006-04-25  2:02 ` Roman Shaposhnick
2006-04-20  9:57 erik quanstrom
2006-04-20 11:00 ` R
2006-04-20  1:45 erik quanstrom
2006-04-20  3:03 ` Michael Baldwin
2006-04-20  5:58   ` Charles Forsyth
2006-04-21 11:34   ` Bruce Ellis
2006-04-21 15:46     ` Skip Tavakkolian
2006-04-21 15:47     ` Jack Johnson
2006-04-20  1:41 erik quanstrom
2006-04-20  6:17 ` Charles Forsyth
2006-04-19  8:19 YAMANASHI Takeshi
2006-04-19  3:27 Mike Haertel
2006-04-19  3:04 erik quanstrom
2006-04-19  2:47 erik quanstrom
2006-04-17 22:07 Bakul Shah
2006-04-18  0:01 ` Russ Cox
2006-04-18 14:36   ` Gorka guardiola
2006-04-18 15:47     ` Russ Cox
2006-04-18 14:45       ` Ronald G Minnich
2006-04-18 16:12         ` Charles Forsyth
2006-04-18 16:42           ` andrey mirtchovski
2006-04-18 16:46           ` Bruce Ellis
2006-04-18 16:47             ` Charles Forsyth
2006-04-18 17:41               ` Brantley Coile
2006-04-18 17:46               ` David Leimbach
2006-04-18 17:55                 ` Bruce Ellis
2006-04-18 18:06                   ` Francisco J Ballesteros
2006-04-18 22:37                     ` Skip Tavakkolian
2006-04-18 18:54                   ` Charles Forsyth
2006-04-18 19:22                     ` David Leimbach
2006-04-18 20:14                       ` lucio
2006-04-18 20:34                       ` Russ Cox
2006-04-18 19:52                         ` David Leimbach
2006-04-20 21:16                         ` Latchesar Ionkov
2006-04-18 20:45                       ` Ronald G Minnich
2006-04-18 21:08                         ` David Leimbach
2006-04-18 21:39                       ` Roman Shaposhnick
2006-04-18 21:54                         ` David Leimbach
2006-04-18 23:19                           ` Brantley Coile
2006-04-19  1:05                             ` Roman Shaposhnick
2006-04-19 14:17                             ` David Leimbach
2006-04-19 14:31                               ` Charles Forsyth
2006-04-19 15:32                               ` Chad Dougherty
2006-04-19 15:45                                 ` David Leimbach
2006-04-19 15:57                                   ` Federico G. Benavento
2006-04-19 17:45                                     ` David Leimbach
2006-04-19 23:56                                       ` geoff
2006-04-19 16:49                                   ` Russ Cox
2006-04-19 17:50                                     ` David Leimbach
2006-04-19 17:55                                       ` Federico G. Benavento
2006-04-19 18:45                                       ` Charles Forsyth
2006-04-19 18:55                                         ` David Leimbach
2006-04-18 23:27                           ` Roman Shaposhnick
2006-04-18 23:29                           ` Federico G. Benavento
2006-04-18 23:48                             ` Lyndon Nerenberg
2006-04-19 14:25                             ` David Leimbach
2006-04-19 14:31                               ` Ronald G Minnich
2006-04-19 15:51                                 ` Tim Wiess
2006-04-19 19:53                                 ` Wes Kussmaul
2006-04-20 14:39                                   ` Ronald G Minnich
2006-04-20 15:50                                     ` Jack Johnson
2006-04-20 21:20                                       ` Ronald G Minnich
2006-04-20 21:42                                         ` Dan Cross
2006-04-20 22:06                                           ` Brantley Coile
2006-04-21  3:43                                           ` Ronald G Minnich
2006-04-21  4:37                                             ` Dan Cross
2006-04-21 16:08                                               ` Ronald G Minnich
2006-04-20 22:09                                         ` Wes Kussmaul
2006-04-20 23:09                                           ` Charles Forsyth
2006-04-21  3:45                                           ` Ronald G Minnich
2006-04-21  4:31                                             ` Dan Cross
2006-04-21 13:36                                               ` Christoph Lohmann
2006-04-21  4:46                                             ` lucio
2006-04-18 19:34                     ` jmk
2006-04-18 19:52                       ` David Leimbach
2006-04-18 20:34                     ` Roman Shaposhnick
2006-04-18 21:04                     ` Dan Cross
2006-04-18 21:11                       ` Charles Forsyth
2006-04-18 21:16                         ` Dan Cross
2006-04-18 21:21                         ` David Leimbach
2006-04-18 21:24                       ` David Leimbach
2006-04-19  2:53                         ` geoff
2006-04-19  3:16                           ` Dan Cross
2006-04-19  3:28                             ` geoff
2006-04-20 22:35                           ` Roman Shaposhnick
2006-04-19  3:02                         ` Dan Cross
2006-04-18 20:44                 ` Ronald G Minnich
2006-04-20  3:10                   ` LiteStar numnums
2006-04-18 16:48             ` Charles Forsyth
2006-04-18 16:58               ` Bruce Ellis
2006-04-18 17:02             ` uriel
2006-04-18 17:30               ` Bruce Ellis
2006-04-18 20:21           ` Richard Miller
2006-04-18 21:10             ` Charles Forsyth
2006-04-19  1:14             ` geoff
2006-04-19 12:49               ` Richard Miller
2006-04-19 13:21                 ` Charles Forsyth
2006-04-18 16:17       ` Dave Eckhardt
2006-04-18 19:17         ` Lyndon Nerenberg
2006-04-19  0:28   ` Bakul Shah
2006-04-19  1:45     ` Russ Cox

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=20060420040215.GA21288@submarine \
    --to=rvs@sun.com \
    --cc=9fans@cse.psu.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).