From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [50.116.15.146]) by inbox.vuxu.org (Postfix) with ESMTP id 011F52EC17 for ; Thu, 5 Dec 2024 22:13:20 +0100 (CET) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 851A142682; Fri, 6 Dec 2024 07:13:16 +1000 (AEST) Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by minnie.tuhs.org (Postfix) with ESMTPS id BB1D042681 for ; Fri, 6 Dec 2024 07:13:12 +1000 (AEST) Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-2ffd6b7d77aso17185841fa.0 for ; Thu, 05 Dec 2024 13:13:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733433191; x=1734037991; darn=tuhs.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=QbXMaOtyq5/ZsMzDofg79a6rp1xh6VRNzWAPRRTfy4E=; b=WkUsRI+5cHhzJBlY6HMrHBbxzy75AyfjVqMgHpc7IkbME4FFeP1YyrAj3WxEVKJlu4 vx1O2C9IxH7Ppa6v4v/SNI0jjW4mUQ2jD4wHLijPAtrIY/7JylcU5fLGQrgMPVJ8qV8h GfPkdr5BQhUO8V21djsqbvC4hzDT4xd1F2Qi++eFMQkbT7jR0tp0g0153KCsX+RCYdm+ VhhNN69LBZ5n9/Z3eMsrr9kaMuHGLJsJgAzqwcRls2Z3ezYfKGCUHt9f8eq393PDIGCz /VTvkSml3Y1D0WJadOJK61rubmFbJzQsflfzAEtja5RvI/JpGTFwVdajH7GQv/2caQPr 7v1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733433191; x=1734037991; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QbXMaOtyq5/ZsMzDofg79a6rp1xh6VRNzWAPRRTfy4E=; b=Ym22oO5bx9Ph8nPPBJtBv5WoST8YIQMTNoVHeIv5bZk6up1+KTjK6gXkKf4Yz3Rw/W uu1C/3kNBGE1Go0OmUPG6eSvBa5CBPzFqBXp7NpFzNBfSbjOjaPB6le1HezkuNIChWi9 MihQ69dNoPja65wskuOiI5zqI0XtAozQtu9yKAPoU/OmnY62cNjFE+r2odLJWrBSzXuK +x8/BJNKOELJED9z/P/h5deVHuFjIoPT5Uw2pKyUpWEgKLsF4s7oftcT1mFk2bTR8T7P +dZvI+G9P9VTDAu+i+FA6hyolg9jpdqYwzt5zVpU6Qgo3dfbimtoi9AgxSdpI4JrZUek mQUQ== X-Forwarded-Encrypted: i=1; AJvYcCU8YfUigKl75Scbkl3p082JPFcAIR9pH7cTzsUKq6Ae7FbDUAdjqjtQTj4srkpXYhjWqPdq@tuhs.org X-Gm-Message-State: AOJu0YzbdYP5MZEmm6Lqu61Wtp5QRZsIoxkWzPXNFVbIlMTcj3TAGWZP Nmq+cBFbTkxoJtb3yBLgajeR3fXsFq15PT/FoKHJzhD9TWjOGwDYtOkS835UGhJpe9SY6Bq27tI uX1ALV755GYRwzAipPtJ1bIUxuCXEsA== X-Gm-Gg: ASbGnctjCXoZHHMHQhPAbjUFAEd8zNk9aM56htXzxOfB4k9+NQ/CQn/5y0jVBx4dy/j DQjztJnb8U89XSNTxeraJLUoyiWuXLAw8w97zpDz6bPbLS/iwD9r7B3oyLboHDWhk X-Google-Smtp-Source: AGHT+IHTP/wUWyh0DQyZxiMxbwAA5zZcNqBRLCv44HoquTEsEaXyf4HmXEf2hIL9nC6MPKhy6fuD+ziLyjDpsnA9s4g= X-Received: by 2002:a2e:beab:0:b0:2ff:e6fb:b10 with SMTP id 38308e7fff4ca-3002fca08b5mr2416471fa.26.1733433190388; Thu, 05 Dec 2024 13:13:10 -0800 (PST) MIME-Version: 1.0 References: <568FD44F-01FB-441B-846B-7D42C3A8E1FB@canb.auug.org.au> <20241205030843.8552FAB1EDA5@ary.qy> <2fd6a361-b26f-4ca4-9c65-b6ba0559644e@case.edu> <202412052055.4B5KtYf1781856@freefriends.org> In-Reply-To: <202412052055.4B5KtYf1781856@freefriends.org> From: Dan Cross Date: Thu, 5 Dec 2024 16:12:34 -0500 Message-ID: To: arnold@skeeve.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: U6QQMPRLTHO3M7DXXPO6GOABILOQXVXY X-Message-ID-Hash: U6QQMPRLTHO3M7DXXPO6GOABILOQXVXY X-MailFrom: crossd@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tuhs.tuhs.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: johnl@taugh.com, tuhs@tuhs.org, marc.donner@gmail.com X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: Pipes (was Re: After 50 years, what has the Impact of Unix been?) List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Thu, Dec 5, 2024 at 3:56=E2=80=AFPM wrote: > Chet Ramey via TUHS wrote: > > On 12/5/24 10:19 AM, Dan Cross wrote: > > > > > Unix pipelines, on the other hand, tend to be used in a manner that i= s > > > strictly linear, without the fan-out and fan-in capabilities describe= d > > > by Morrison. Of course, nothing prevents one from building a > > > Morrison-style "network" from Unix processes and pipes, though it's > > > hard to see how that would work without something like `select`, whic= h > > > didn't yet exist in 1978. Regardless, Unix still doesn't expose a > > > particularly convenient syntax for expressing these sorts of > > > constructions at the shell. > > > > Process substitution is about as close as we can get, but most programs > > still process their filename arguments one at a time, beginning to end. > > > > The canonical process substitution example is > > > > diff <(old-program-version) <(new-program-version) > > > > to do simple regression testing. > > And fanout is simply > > ... | tee >(pipeline1) >(pipeline2) 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. It is, perhaps, notable that Go allows me to do this sort of thing with channels and goroutines, but it has `select` built into the language. Funny, despite using Unix almost daily for over 30 years now, I don't think I've ever felt limited by the power of pipelines. On the contrary, I've lost count of the times I've felt limited on systems that do Not support pipes. - Dan C.