lispy shells (was: Re: [slime-devel] Re: .slime/fasl/ directory names)

Vadim Nasardinov el-vadimo at comcast.net
Fri Sep 16 00:44:20 UTC 2005


On Thu, 2005-09-15 at 12:24 -0700, Lynn Quam wrote:
> Has anyone had experience using the Emacs eshell?

It's neat but incomplete.  John Wiegley has long moved on to other
projects.  I used eshell for a month or two a couple of years ago but
had to abandon it and go back to using bash (run via M-x shell).  There
was a number of reasons why I gave up on eshell.  The only one I still
remember is lack of support for true piping.  Eshell's pipes aren't
coroutines like they are in traditional Unixy shells.  IIRC, if you do

~ $ foo | bar

eshell reads the entire output of foo into a temp buffer then feeds it
to bar.  Try this in bash:

| $ yes | head -n 3
| y
| y
| y
| $ time yes | head -n 1000000 | tail -n 4
| y
| y
| y
| y
|
| real	0m0.086s
| user	0m0.045s
| sys	0m0.005s

Now try the same thing in Eshell:

| /tmp $ which yes
| /usr/bin/yes
| /tmp $ which tail
| /usr/bin/tail
| /tmp $ which ls
| eshell/ls is a compiled Lisp function in `em-ls'
| /tmp $ yes | head -n 3
| y
| y
| y
| /tmp $ yes | head -n 3

The first time around it prints three y's.  When I call it the second
time it hangs, leaving me to Ctrl-C out of it.

"M-x version" reports this for me:
  "GNU Emacs 21.4.1 (x86_64-redhat-linux-gnu, X toolkit, Xaw3d scroll bars) of 2005-05-18 on dolly.build.redhat.com"

Other lispy shells that I know of but have not tried are

 - http://www.scsh.net/
 - http://lush.sourceforge.net/
 - http://clisp.cons.org/clash.html





More information about the slime-devel mailing list