Nadav Har'El wrote: > From these, I think that psh is far from what I'm looking for. I am not > looking for a shell with a different syntax (in this case, Perl's syntax), > but rather a shell whose pipelines passes not unstructured text (in a unix > pipe) but rather structured objects. > Such a shell would not be a more convenient way to run existing unix commands > (I think the existing shells are already more than convenient enough), > but rather a new way to build commands and combine them into pipeline
If you provide new "structured" pipes, you'll have to make your commands support it, right? So either you rewrite all of the basic "building blocks" and end up with a completely new shell/language ( You say you want to still be able to use the old commands? Well, there's a 'system'-like command in most scripting languages, and you can easily parse it's output). Or, if you want to implement this by writing a set of cooperating new commands for an existing shell - there's nothing stopping you right now - regular pipes carry streams of characters - which you can use to pass any type of data you want. One way is to use some XML language on stdin/stdout. In fact, there's a (non-XML) language intended for doing that (among other things): see http://xparam.sourceforge.net/ - there's builtin support for basic types, and you can write "registration code" for any C++ class. The most commonly-known usage is to parse structured commandline arguments, but Paramsets can be just as well read from stdin and written to stdout (or dumped to files as a form of serialization - there's also support for more space-efficient non-human-readable RawBytes mode). Very easy to form chains of commands if they all use this lib. In the past, I had used it to pass structured data between python and C++ programs (p.s. - I think the python interface is only in-house, but if there's a need, it could be made free :-) ). AA ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]