[TUHS] Pipes (was Re: After 50 years, what has the Impact of Unix been?)

Bakul Shah via TUHS tuhs at tuhs.org
Fri Dec 6 08:05:26 AEST 2024


On Dec 5, 2024, at 1:13 PM, Dan Cross <crossd at gmail.com> wrote:
> 
> And indeed these things are pretty nifty, but don't they generate
> trees, and not arbitrary dags? They don't quite capture the full
> generality of Morrison-style networks since it doesn't seem like
> there's a way to connect process substitution fan-out with fan-in; at
> least, not conveniently.

Isn’t that a limitation of the shell language(s)? It would be
easier in a 2D graphical shell but that would perhaps make
specifying the more common simpler pipelines harder!

A "linear" syntax would require *naming*. For example,

let-proc a = "foo -a", b = "bar -c -d", c = "zee" in
  a.in1 = file1, a.in2 = file2, b.in1 = a.out, b.in2 = file3,
  c.in1 = b.out1, c.in2 = a.out, c.out = file4;

Here names a, b & c are used to denote *processes*, with
connections specified in the next two lines. Once all the
pipes are created, processes a, b & c can be started giving
them the right endpoints in forked processes prior to execing.
Doable but not really worth it. At this point you may as well
use s-expressions!


More information about the TUHS mailing list