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.7 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,URIBL_SBL_A autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [IPv6:2600:3c01:e000:146::1]) by inbox.vuxu.org (Postfix) with ESMTP id 7813B2EBD1 for ; Thu, 5 Dec 2024 16:20:01 +0100 (CET) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 5C52443DC5; Fri, 6 Dec 2024 01:19:56 +1000 (AEST) Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) by minnie.tuhs.org (Postfix) with ESMTPS id 0F8F343DC4 for ; Fri, 6 Dec 2024 01:19:54 +1000 (AEST) Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2ffc7a2c5d5so10165801fa.1 for ; Thu, 05 Dec 2024 07:19:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733411992; x=1734016792; 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=zXVawvzOtLlc7qKXTXtSviT/sqUA2MN+f1mZHoPOuzM=; b=MCSu94x6m75Dk6QWoKh+wX+x70stDZWRDakgddXnxknlH/wXkG5fI9Vgz4W5mm2gOa gWEwUK/dYZOHHFM+SuHrB+ESb2k2ZFxIfA9Kuo0mNvkBtevqvK3yLscnH3lt10b27asa SGWfPgFntkq/KWBy55HTZYqneLvllzPQmP8WYAxtY+hSyZeoSok/n6WwM9bZSGw0Y77I yVZJm9Jl7Fimp0HYEXzoWNT61510Ebb41v1QLhyxpH5apKb8yvGvrgfOCi2g0FI9gz5o GK8DYlhtJB8xAMH+LlGaZR4P+WWJZuZz0wq62jSyVIdMaAF2i7ZQoqNgh3NXmh8oFG79 EWqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733411992; x=1734016792; 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=zXVawvzOtLlc7qKXTXtSviT/sqUA2MN+f1mZHoPOuzM=; b=P4KsMrbPKuQGRu1AW3HPlj7biLbkXMS94EmDpN13RtdpqjnAe9AtHxeZNCKCYglj2Q n3M1m4eV85t10nmCVunzEBCM95784w4lB/8IPNBVdBaBha3Sta/A0nrvVsuCoaSMOfqQ okEA9eqiWGMeQGvxgrm+WFsIWoCzs6xP2PUriyNtXWrXJgr7gvNWHPVIOxve/0oe4ZKm bJrhJAyb/lqOEquRtr5eN1G+i5Ll2JYZaxpWoHoLr3AwzjZKbJdMBcZz2Hur8PpXwvh0 8Pnm7o+Vl8bC7L/o4D+Z+rvZ8vEQRcvB2nFX/SBWIkkw/2dSOcNPnGgoMPUXe0quIT8Z Q8Gg== X-Gm-Message-State: AOJu0YxJwesZl+AmVWioloSJEbf1oTrgjsWg1E+ocRowF4JCUPf/zgZP oUDiASMBsJZVZrzhDw0CeTBUH5aeG8Q2WmV8YZlo/n3b6eJ4SFR9I5O6FDkq7GYJcP0iuOhbI+S R5UIPgCko/WxqeQbzWlJm8InRRFI= X-Gm-Gg: ASbGncvtnmpf/fvLOuGfzp2obGjAZjjzgA2hLO0Ez6w2AtJ61gBJBIp3cyWyVoKmZ87 x3dNW89+KLJwRnT76SYJ0zM2PyRlfIf5cDQFFfbceKrq9pE6kh9ZDM2qH/w8roUni X-Google-Smtp-Source: AGHT+IFteaJtkihtQNjIO9Dqz+k8Tu+dWuAcbXhvCcnsK3A3OznRwdpq9SGJK4SS3d40HOcAOjYy/sHlkT1qayTsKlE= X-Received: by 2002:a05:651c:1510:b0:2ff:58e5:af0f with SMTP id 38308e7fff4ca-30014e241d0mr34347291fa.19.1733411991734; Thu, 05 Dec 2024 07:19:51 -0800 (PST) MIME-Version: 1.0 References: <568FD44F-01FB-441B-846B-7D42C3A8E1FB@canb.auug.org.au> <20241205030843.8552FAB1EDA5@ary.qy> In-Reply-To: <20241205030843.8552FAB1EDA5@ary.qy> From: Dan Cross Date: Thu, 5 Dec 2024 10:19:15 -0500 Message-ID: To: John Levine Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: R7XOV5GL2YPPCYDMANNBQG3MCP3PPXC3 X-Message-ID-Hash: R7XOV5GL2YPPCYDMANNBQG3MCP3PPXC3 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: TUHS , Marc Donner 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 Wed, Dec 4, 2024 at 10:18=E2=80=AFPM John Levine wrote= : > It appears that Marc Donner said: > >With the notion of pipes it became possible to operate on data quickly a= nd > >flexibly. There was nothing new from a fundamental capability point of > >view, but the ease with which one could construct pipelines enabled rapi= d > >experimentation and encouraged the development of pipe-able components t= o > >add to the tool set. > > Pipes were invented at least three times I'm aware of, but what made them > work so well in Unix is that they looked to the program the same as a fil= e > so any program could use them for input or output without special arrange= ments, > and the shell made it easy to start two programs and pipe them together. Once you have coroutines and queues for passing data between them, a lot of things start to look like pipes. > The Dartmouth Time-Sharing System in the late 1960s had communication fil= es > which were essentially two-way pipes, but they were asymmetrical. One end= , the > slave end, looked like a file, but the other end, the master end, was dif= ferent > and the program had to know it was a com file. They were mostly used to p= ass > terminal I/O between user programs at the slave end and SIMON at the mast= er end, > the terminal monitor that talked to the front end computer than ran the T= TYs. Doug has written at some length on this list about communication files and their homomorphism to the way Plan 9 presented and handled resources. > They were invented again at IBM in the 1970s and described in this paper.= I wrote > them a letter, which they published, saying that Unix pipes did the same = thing. > > https://dl.acm.org/doi/10.1147/sj.174.0383 Don't forget CMS pipelines, too! Sadly, the Morrison paper cited above is not easily accessible, though I acquired a copy from IEEE; perhaps a sucker's game as it was not cheap. Your subsequent letter, and part of Morrison's response to you, however, is available, gratis. Reading through Morrison, one gets the impression that there are some substantial differences with Unix pipelines; or rather, the way that Unix pipelines are usually used. In particular, he describes his linked streams in terms of a "network", by which he appears to mean an arbitrary directed graph. Crucially, he describes combining nodes, for merging data from multiple streams. Unix pipelines, on the other hand, tend to be used in a manner that is strictly linear, without the fan-out and fan-in capabilities described 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`, which 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. As an aside, Morrison has a web page dedicated to "flow-based programming", that he claims to have invented in the late 1960s. That seems like a bit of a tall claim, and I'd wager Doug gives him a run for his money on that. https://jpaulm.github.io/fbp/ - Dan C.