Like you, my dear reader, I was excited upon encountering the paper Commander S: the shell as a browser. Commander S, as described in the paper, is "a new approach to interactive Unix shells based on interpretation of command output and cursor-oriented terminal programs." Better yet, it functions as an interactive front-end to the Scheme shell, scsh -- bringing the power of Scheme shell scripting to the command-line.
As with most things Scheme (allowing certain notable exceptions) and going double for academic output, I expected impracticality in the real world, yet to have a lot of fun poking around, getting some ideas and maybe even, hope of hopes, hammering it into usability. The lack of public release was barely a concern, given that the authors thought enough of it to write a detailed paper expounding its virtues in the present tense.
In short, I expected exactly what anyone might from a proof-of-concept.
Unfortunately, it was not to be. Commander S crashes at the drop of a hat, making exploration time-consuming and frustrating.
> ls
[Ah, works fine. A good start.]
> ls filename with a space
((syscall-error 2 "No such file or directory" #{Procedure 13576 #} "space" ---) . ...)
> ls "filename with a space"
((syscall-error 2 "No such file or directory" #{Procedure 13576 #} "space" ---) . ...)
> ls "filename<TAB>
# the dungeon collapses!
starting remote handler for condition(parser-syntax-error (end of file
within a string #{Tracking-port #{String-input-port}}))
# Okay, we'll restart the Commander.
> ps
I'm sorry jim, I'm afraid I can't do that. The following error occured:
(call-error invalid argument number->string #f)
> pwd
> <C-x o> <C-x p> # Paste result to command line -- a noted feature
# the dungeon collapses!
starting remote handler for condition(error unknwon message
in make-standard-viewer get-selection-as-text)
Please connect to port 8888
# Gah! Let's try another plugin.
> printenv
> <C-x o> <C-x p> # Paste result to command line
# the dungeon collapses!
starting remote handler for condition(error unknwon message
in make-standard-viewer get-selection-as-text)
Please connect to port 8888
Other issues include terminal handling which continually corrupts the screen and forgets to add carriage returns, process output that goes to a blank screen instead of the output ring, and hanging background processes which force me to SIGQUIT.
The Commander S concept is a fascinating one, but basic exception handling and feature testing would encourage users to contribute. My experience so far is that the shell is too fragile to bother hacking on.
Date: 2007/04/12 21:43:01