From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29529 invoked from network); 2 Aug 2021 22:34:11 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 2 Aug 2021 22:34:11 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 7DA8C9CA71; Tue, 3 Aug 2021 08:34:08 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 47E8E9CA66; Tue, 3 Aug 2021 08:33:48 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (2048-bit key; unprotected) header.d=ccil-org.20150623.gappssmtp.com header.i=@ccil-org.20150623.gappssmtp.com header.b="U5Sckjir"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id DA09E9CA63; Tue, 3 Aug 2021 08:33:45 +1000 (AEST) Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by minnie.tuhs.org (Postfix) with ESMTPS id 300E59CA60 for ; Tue, 3 Aug 2021 08:33:45 +1000 (AEST) Received: by mail-qk1-f172.google.com with SMTP id t66so18270350qkb.0 for ; Mon, 02 Aug 2021 15:33:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccil-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=fwPuFLd40EMBzKtvs+f4n8PQZ3yPmHtjMKSNbhw0dao=; b=U5Sckjir67wskigLni9zgmer9qMsUMD7N33ct606idgDNRYHtDx+T3OhqBxvn6jAHk /upgo1Zsk+PJCxTxDD2pAb3PwFh/kTyJhN++XACojtnwhg1AVf5mHzneu7paSc/Y0cQf YFTd7+PK8jOpYjShVBt1zPENu1uy9KEbMKigZK7u/2KToO5UcAuaivDH0x59wlnRRqA+ nybJj/EU+17PLA0tj/GfXJaiOYGYWGu5uf5pEY7PgoGVXqZAr/2X3D1BzEpLnZUbithM Q8PJdhE3jtWfg9Jj1bOiEt5nbl4w5D1KAyUgbdPFl3+59AVNVi1k7Jyl8b/CSHZHltcM Ke3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fwPuFLd40EMBzKtvs+f4n8PQZ3yPmHtjMKSNbhw0dao=; b=jZ4vEr+FkQWz8JuRRo7n1fVLvNzrLFJoPhFMXbnlIWTQS0UtohILMX8tUhQS4lPkQu zpk1/04h5TaeSoFkuc6XQW2Te55AXTGfObYVOsRu4aB4H8dPEBP04ZRe71G0RRzTk9wc y4kPskJcYb1hMICQLsDOzJkBo1ZqLFOrTLClU3jucjWH0dRqhxQjW11RYmdF+0TyJJYQ DmXzrGvATEe1JX7X0E3u7303kRVNEiTSJJM0QkpGf8WyiGQ5qm4PuxVDV8BSLrHT6kHZ PjFWf1FyfhgDYM/PMFUD8C3OcQFANoIvNIlX9YZ2IviFHqDxvgpjV36JxYtzg+Z9gPzE FU7Q== X-Gm-Message-State: AOAM53169sEBs0MMzbHzQbA2vbinZKqU1QVDR2HB5FOkBtzpPYkiAZAM w4VAvEFQpSYzX8GsaHltjxX7V0PWbuCyzZYUDBX3sw== X-Google-Smtp-Source: ABdhPJyadjLZDrI2XFM25IgphIZDrgpqM45U3EJC+hbkDCU/kU1OT4bwvWSxLFskGBRTr8zd7xtYGy3jB14o5Nca6so= X-Received: by 2002:ae9:e90e:: with SMTP id x14mr17363408qkf.118.1627943624236; Mon, 02 Aug 2021 15:33:44 -0700 (PDT) MIME-Version: 1.0 References: <202108022106.172L6I1i135429@darkstar.fourwinds.com> <202108022159.172LxcDR185552@darkstar.fourwinds.com> In-Reply-To: <202108022159.172LxcDR185552@darkstar.fourwinds.com> From: John Cowan Date: Mon, 2 Aug 2021 18:33:30 -0400 Message-ID: To: Jon Steinhart Content-Type: multipart/alternative; boundary="0000000000006ff4ab05c89b2994" Subject: Re: [TUHS] Systematic approach to command-line interfaces X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: The Eunuchs Hysterical Society Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --0000000000006ff4ab05c89b2994 Content-Type: text/plain; charset="UTF-8" On Mon, Aug 2, 2021 at 6:00 PM Jon Steinhart wrote:> > Oh, sorry, wasn't meaning to be categorical there. Main reason that it > came > to mind was John's web example; many have said in the past that the UNIX > model couldn't do that until they figured out that it actually could. > I sorta lost track of what I was saying there: spawn*() would work fine in pipelines, since they involve fork-quickly-followed-by-exec. Doug's nifty sieve example, on the other hand, would not: the Right Thing there is Go, or else goroutines in C (either libmill or its successor libdill as you prefer) since the sieve doesn't actually involve any sort of global state for which processes are relevant. Granted, the C libraries have a little bit of x86_64 asm in them (but you are not expected to understand this). --0000000000006ff4ab05c89b2994 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Mon, Aug 2, 20= 21 at 6:00 PM Jon Steinhart <jon@fo= urwinds.com> wrote:>
=C2=A0
Oh, sorry, wasn't meaning to be categorical there.=C2=A0 Main reason th= at it came
to mind was John's web example; many have said in the past that the UNI= X
model couldn't do that until they figured out that it actually could.

I sorta lost track = of what I was saying there: spawn*() would work fine in pipelines, since th= ey involve fork-quickly-followed-by-exec.
Doug's nifty sieve example, on the ot= her hand, would not: the Right Thing there is Go, or else goroutines in C (= either libmill or its successor libdill as you prefer) since the sieve does= n't actually involve any sort of global state for which processes are r= elevant.=C2=A0 Granted, the=C2=A0C libraries have a little bit of x86_64 as= m in them (but you are not expected to understand this).=C2=A0

--0000000000006ff4ab05c89b2994--