> > rc already has non-linear pipelines. but they're not very convienient. > > And somewhat limited. There's no real concept of 'fanout' of output, > for instance (though that's a fairly trivial command, so probably > doesn't count), or multiplexing input from various sources that would > be needed to implement something like a shell-level data flow network. > > Muxing input from multiple sources is hard when the data isn't somehow > self-delimited. >[...] > There may be other ways to achieve the same thing; I remember that the > boundaries of individual writes used to be preserved on read, but I > think that behavior changed somewhere along the way; maybe with the > move away from streams? Or perhaps I'm misremembering?
pipes still preserve write boundaries, as does il. (even the 0-byte write) but tcp of course by definition does not. but either way, the protocol would need to be self-framed to be transported on tcp. and even then, there are protocols that are essentially serial, like tls. > > i suppose i'm stepping close to sawzall now. > > Actually, I think you're stepping closer to the reducers stuff Rich > Hickey has done recently in Clojure, though there's admittedly a lot > of overlap with the sawzall way of looking at things. my knowledge of both is weak. :-) - erik