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