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=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29519 invoked from network); 11 Sep 2023 17:04:14 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 11 Sep 2023 17:04:14 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1694451854; b=h1hzgYcDYsZqjVLs2thD+0lZHq5vZzJhBRxIurCtYGl/i4HAO5iM7pcisWVRg+YT7ncp35/VFL 2bRSbXQP3VX6VZJa+Wc0yS3XjMIdvlyS4vRAwco3GZx5DgukBpmYDOO5uBQt8aBEng5KNZnzuH uCF3EX5XSbG2LFd5qyjYd7Dn79IPOoco5Fe5M6uj7rX82hfgwIV/IJ2zIR/Q3gaxOdu/JBTaPj HnLCwUtDNBDLnHs3+xuSgilSjLLUUHJpoEgXW0kSTAosBCFG5Hysqt+gxbsubkLb1s0YTuo/7S 9/4HJT/ir3sGsGkkFyt1gfEZKQnMtGBCr4/NezOhxFIc5w==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f51.google.com) smtp.remote-ip=209.85.218.51; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1694451854; bh=9vb+DMmnhKByc+ie/AzgfLS208Sj5iNEEo5X7Z3xc6w=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=qTI3IN6fcnzIfg0gdghj/qOKkIdWTdtWvXcRxMP8Lj2Te+PIJ7ERrq36eXaV0fZCmbKJtzAcko k1VIeV6A/AEshwQnt42+8vZcXatgtxKg8sT/kwueZTPo8gTh02tIvQuh8MOrIsxMmD4UgPY0r2 pHoEoLt/UNi61FgnRdqWeSFMQXn1v45jiQFF1dTiVzvV0YS3+Tzr3pUc/Pp1ibSveZED3ZOmca GcvDHL2tvhaiyvJ60YfmhDsKIQbjrZgUHcKASFR+rtyxNEqA4oZXXtw8r0nbWZPkjZLkGGpLDy 3BUxyjgrA3MhfxHwusaqKd8sarca3V4wYR72smiH2a942w==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=ApTuuZj71vrZyh8D7mhyRSuZMrwY0/5OHQ+UtbaDWE8=; b=c8gc7eX03uTqlrYh7VK2G/cftr STgLn3NdM6E3ClCbfegcHn5eiMNbLMOn8p5rxTGovotAxmnjUAVQ2+iPGYnEIjeH1n4NeeBl7PtIY t5d1DLNPTGfe/2oCGGgpAZB0jmrC1zzqgyAaERsl81ugGM8aTKKuc6s96EdgNwCGU3J9ysQdx7ned Kdd1spt3GlBw53DOxL3amTUHV1ouFiqT+IiKE3QNjlAXtq7YO/PSYKjJ7HR6Jlwja+351izsSbXaX 12YRGm7/Z4a4uJ8+zKcDT68dS8FQqGjQqHCUXznTgqzbNKudnUIKoY7Lk2vN9SxuGvrsR5Ai25f2B 1lWh76xw==; Received: by zero.zsh.org with local id 1qfkKa-0005aQ-Vd; Mon, 11 Sep 2023 17:04:13 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f51.google.com) smtp.remote-ip=209.85.218.51; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ej1-f51.google.com ([209.85.218.51]:44325) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1qfkKJ-0005Jb-Bg; Mon, 11 Sep 2023 17:03:56 +0000 Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-99c136ee106so586318866b.1 for ; Mon, 11 Sep 2023 10:03:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1694451834; x=1695056634; darn=zsh.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=ApTuuZj71vrZyh8D7mhyRSuZMrwY0/5OHQ+UtbaDWE8=; b=QSV5UDkFazEB1ezZ56sY94tEVD9pDg6jNDmLwSsjZKm3+aUYQCeRF2nmQRkzgvDfle o34Gk7ltRSYBL5BXEBmuqTQ3jqi2/nv9Un+d1QXfROA8PnFKpM/Xq4JSDIKA+wu5CKOW xHAvubF1ihY59SmcOG7fJTBmSe/ekvql3TG1ygLd8MfdK1RaN9P489d8yEvZhZgAqdh5 OqLnXB6x/Leh9qtjSq/8cOrqefnWN6mRu6aIL8UTfUaMXZ66WptM1vo0to68R6Oya/w3 Pg+qaWYQcnpxoorI8KrmawW5fdRHkfK/W50wxVAxa7GghdECRMEZV8wdAN3aa/N9j99Y LyJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694451834; x=1695056634; h=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=ApTuuZj71vrZyh8D7mhyRSuZMrwY0/5OHQ+UtbaDWE8=; b=xTheo+wl/Xtyng0ffMXn3GPywjLG3xi3YgHYGLyM9Hti6ahaVFEdbBsOlGP8iEOALJ +M5C7rhkE0mONCU7Vv8DesUVQRMUlX4am0hXw2yM5wk/hUpx8F55t+cJfSX6lY5ptPNq lP+CTF+k2qoZRQKQjfvn9DO+f1d+EKbSaCq024e55npI7svvg/irrQwadwfBM45+H+zA YrRuNUBtmCdBxOWjMZeGPZxjAqT7BzcihQ9NODuETJ68f2sLI/1tFeFAIuyd17VpiRPD IYDYXH6vtY+/ucRk7HsibfoYkdxwJC2P1g6z3/8n57EusNOr4q2S9F9jh2Un5eyw5T+6 aJrw== X-Gm-Message-State: AOJu0Yzwki5XmSqfY4otxI5DO6xc216B3nggWOmLk/XWrrkgGn+36ZKB 5A5UO3WJhgqnVr0ntXqc3YrZJ+Me8t3S2IMvmb2Oj7a/h2QXZmnMrMw= X-Google-Smtp-Source: AGHT+IHsVOgoEmFPQ7vxNN7v4vkrbaXTRqxQvkLz/xM7DSsP33Fc4ehclyjpt0GJz76EtmGkiTubVVzAUA9wig/FjEs= X-Received: by 2002:a17:907:2c62:b0:9a5:c957:ed4a with SMTP id ib2-20020a1709072c6200b009a5c957ed4amr8436745ejc.46.1694451834093; Mon, 11 Sep 2023 10:03:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bart Schaefer Date: Mon, 11 Sep 2023 10:03:42 -0700 Message-ID: Subject: Re: [PATCH] Nofork capture of stdout To: Zsh hackers list Content-Type: multipart/mixed; boundary="000000000000a9409d0605184f48" X-Seq: 52131 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --000000000000a9409d0605184f48 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Sep 10, 2023 at 9:34=E2=80=AFPM Bart Schaefer wrote: > > Which is exactly what the appended patch does: Leverage > getoutputfile() to create a temporary name, then write it and read it > back. While looking for some additional tests for this, I ran into an error I'd never seen before: process substitution =3D(<<<'') cannot be used here This happens if there's no current job on which addfilelist() can hang the temp name. I don't know if there's any way to trigger it in "normal" usage. The appended is probably better anyway, it's slightly less of a hack than before. Replaces workers/52126 entirely, although the Doc hunk is unchanged. > Implementation question: It seems to be OK to tokenize() a string > that has already been tokenize()d? Any comment on that? --000000000000a9409d0605184f48 Content-Type: text/plain; charset="US-ASCII"; name="nofork-stdout.txt" Content-Disposition: attachment; filename="nofork-stdout.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lmf4swhu0 ZGlmZiAtLWdpdCBhL0RvYy9ac2gvZXhwbi55byBiL0RvYy9ac2gvZXhwbi55bwppbmRleCA3NDgw MDc2ZGYuLjFkZWMyYzBlNiAxMDA2NDQKLS0tIGEvRG9jL1pzaC9leHBuLnlvCisrKyBiL0RvYy9a c2gvZXhwbi55bwpAQCAtMTkxOCwxMyArMTkxOCwxMSBAQCBleGNlcHQgYXMgbm90ZWQgZm9yIHR0 KFJFUExZKSwgYW5kIHZhcihwYXJhbSkgc2hvdWxkIGVtKG5vdCkgYmUgZGVjbGFyZWQKIHdpdGhp biB0aGUgY29tbWFuZC4gIElmIHZhcihwYXJhbSkgbmFtZXMgYW4gYXJyYXksIGFycmF5IGV4cGFu c2lvbiBydWxlcwogYXBwbHkuCiAKLUNPTU1FTlQoVG8gYmUgaW1wbGVtZW50ZWQgbGF0ZXI6CiBB IGNvbW1hbmQgZW5jbG9zZWQgaW4gYnJhY2VzIHByZWNlZGVkIGJ5IGEgZG9sbGFyIHNpZ24sIGFu ZCBzZXQgb2ZmIGZyb20KIHRoZSBicmFjZXMgYnkgd2hpdGVzcGFjZSwgbGlrZSBgdHQoJHsgKS4u LnR0KCB9KScsIGlzIHJlcGxhY2VkIGJ5IGl0cwogc3RhbmRhcmQgb3V0cHV0LiAgTGlrZSBgdHQo JHt8KS4uLnR0KH0pJyBhbmQgdW5saWtlCiBgdHQoJExQQVIoKSkuLi50dChSUEFSKCkpJywgdGhl IGNvbW1hbmQgZXhlY3V0ZXMgaW4gdGhlIGN1cnJlbnQgc2hlbGwKIGNvbnRleHQgd2l0aCBmdW5j dGlvbiBsb2NhbCBiZWhhdmlvcnMgYW5kIGRvZXMgbm90IGNyZWF0ZSBhIHN1YnNoZWxsLgotKQog CiB0ZXhpbm9kZShBcml0aG1ldGljIEV4cGFuc2lvbikoQnJhY2UgRXhwYW5zaW9uKShDb21tYW5k IFN1YnN0aXR1dGlvbikoRXhwYW5zaW9uKQogc2VjdChBcml0aG1ldGljIEV4cGFuc2lvbikKZGlm ZiAtLWdpdCBhL1NyYy9zdWJzdC5jIGIvU3JjL3N1YnN0LmMKaW5kZXggYWFlMTc4ZjllLi43NjQy MTNjNjkgMTAwNjQ0Ci0tLSBhL1NyYy9zdWJzdC5jCisrKyBiL1NyYy9zdWJzdC5jCkBAIC0xODYy LDYgKzE4NjIsOCBAQCBwYXJhbXN1YnN0KExpbmtMaXN0IGwsIExpbmtOb2RlIG4sIGNoYXIgKipz dHIsIGludCBxdCwgaW50IHBmX2ZsYWdzLAogICAgIGludCBxdW90ZWRfYXJyYXlfd2l0aF9vZmZz ZXQgPSAwOwogICAgIC8qIEluZGljYXRlcyAke3wuLi47fSAqLwogICAgIGNoYXIgKnJwbHl2YXIg PSBOVUxMOworICAgIC8qIEluZGljYXRlcyAkeyAuLi4gO30gKi8KKyAgICBjaGFyICpycGx5dG1w ID0gTlVMTDsKIAogICAgICpzKysgPSAnXDAnOwogICAgIC8qCkBAIC0xOTA0LDcgKzE5MDYsNyBA QCBwYXJhbXN1YnN0KExpbmtMaXN0IGwsIExpbmtOb2RlIG4sIGNoYXIgKipzdHIsIGludCBxdCwg aW50IHBmX2ZsYWdzLAogICAgICAgICAgKiBzaG91bGQgbm90IGJlIHBhcnQgb2YgY29tbWFuZCBz dWJzdGl0dXRpb24gaW4gYW55IGNhc2UuCiAgICAgICAgICAqIFVzZSAkeyhVKSR7fGNtZDt9fSBh cyB5b3Ugd291bGQgZm9yICR7KFUpJChjbWQ7KX0uCiAJICovCi0JaWYgKCpzID09ICd8JyB8fCAq cyA9PSBCYXIpIHsKKwlpZiAoKnMgPT0gJ3wnIHx8ICpzID09IEJhciB8fCBpbmJsYW5rKCpzKSkg ewogCSAgICBjaGFyICpvdXRicmFjZXAgPSBzOwogCSAgICBjaGFyIHNhdiA9ICpzOwogCSAgICAq cyA9IEluYnJhY2U7CkBAIC0xOTQwLDYgKzE5NDIsMjkgQEAgcGFyYW1zdWJzdChMaW5rTGlzdCBs LCBMaW5rTm9kZSBuLCBjaGFyICoqc3RyLCBpbnQgcXQsIGludCBwZl9mbGFncywKIAkJICAgIGNt ZGFyZyA9IGR1cHN0cnBmeChzKzEsIG91dGJyYWNlcC1zLTEpOwogCQkgICAgcnBseXZhciA9ICJS RVBMWSI7CiAJCX0KKwkJaWYgKGluYmxhbmsoKnMpKSB7CisJCSAgICAvKgorCQkgICAgICogQWRt aXR0ZWRseSBhIGhhY2suICBUYWtlIGFkdmFudGFnZSBvZiB0aGUgZW5mb3JjZWQKKwkJICAgICAq IGxvY2FsaXR5IG9mIFJFUExZIGFuZCB0aGUgc2VtYW50aWNzIG9mICQoPGZpbGUpIHRvCisJCSAg ICAgKiBjb25zdHJ1Y3QgYSBjb21tYW5kIHRvIHdyaXRlL3JlYWQgYSB0ZW1wb3JhcnkgZmlsZS4K KwkJICAgICAqIFRoZW4gZmFsbCB0aHJvdWdoIHRvIHRoZSByZWd1bGFyIGhhbmRsaW5nIG9mICRS RVBMWQorCQkgICAgICogdG8gbWFuYWdlIHdvcmQgc3BsaXR0aW5nLCBleHBhbnNpb24gZmxhZ3Ms IGV0Yy4KKwkJICAgICAqLworCQkgICAgY2hhciAqZm10ID0gInsgJXMgO30gPnwgJXM7IFJFUExZ PVwiJCg8JXMpXCIiOyAvKiAyOCAqLworCQkgICAgaWYgKChycGx5dG1wID0gZ2V0dGVtcG5hbWUo TlVMTCwgMSkpKSB7CisJCQkvKiBQcmV2ZW50IHNoZW5hbmlnYW5zIHdpdGggJFRNUFBSRUZJWCAq LworCQkJY2hhciAqdG1wZmlsZSA9IHF1b3Rlc3RyaW5nKHJwbHl0bXAsIFFUX0JBQ0tTTEFTSCk7 CisJCQljaGFyICpkdW1teSA9IHpoYWxsb2Moc3RybGVuKGNtZGFyZykgKworCQkJCQkgICAgICAy ICogc3RybGVuKHRtcGZpbGUpICsKKwkJCQkJICAgICAgMjgpOworCQkJc3ByaW50ZihkdW1teSwg Zm10LCBjbWRhcmcsIHRtcGZpbGUsIHRtcGZpbGUpOworCQkJY21kYXJnID0gZHVtbXk7CisJCSAg ICB9IGVsc2UgeworCQkJLyogVE1QUFJFRklYIG5vdCB3cml0YWJsZT8gKi8KKwkJCWNtZG91dHZh bCA9IGxhc3R2YWw7CisJCQljbWRhcmcgPSBOVUxMOworCQkgICAgfQorCQl9CiAJCXMgPSBvdXRi cmFjZXA7CiAJICAgIH0KIAl9CkBAIC0xOTY3LDkgKzE5OTIsMTEgQEAgcGFyYW1zdWJzdChMaW5r TGlzdCBsLCBMaW5rTm9kZSBuLCBjaGFyICoqc3RyLCBpbnQgcXQsIGludCBwZl9mbGFncywKIAkg ICAgfQogCX0KIAorCWlmIChycGx5dG1wKQorCSAgICB1bmxpbmsocnBseXRtcCk7CiAJaWYgKHJw bHl2YXIpIHsKIAkgICAgaWYgKHN0cmNtcChycGx5dmFyLCAiUkVQTFkiKSA9PSAwKSB7Ci0JCWlm ICgodmFsID0genRyZHVwKGdldHNwYXJhbSgiUkVQTFkiKSkpKQorCQlpZiAoKHZhbCA9IGR1cHN0 cmluZyhnZXRzcGFyYW0oIlJFUExZIikpKSkKIAkJICAgIHZ1bnNldCA9IDA7CiAJCWVsc2Ugewog CQkgICAgdnVuc2V0ID0gMTsKZGlmZiAtLWdpdCBhL1Rlc3QvRDEwbm9mb3JrLnp0c3QgYi9UZXN0 L0QxMG5vZm9yay56dHN0CmluZGV4IDczOGE0NWI5OS4uM2YxMWY4MGYxIDEwMDY0NAotLS0gYS9U ZXN0L0QxMG5vZm9yay56dHN0CisrKyBiL1Rlc3QvRDEwbm9mb3JrLnp0c3QKQEAgLTE2MCw3ICsx NjAsNyBAQCBGOldoeSBub3QgdXNlIHRoaXMgZXJyb3IgaW4gdGhlIHByZXZpb3VzIGNhc2UgYXMg d2VsbD8KID8oZXZhbCk6MTogY2xvc2luZyBicmFjZSBleHBlY3RlZAogCiAgIHB1cnIgJHsgcHVy ciBTVERPVVQgfQotMGY6Y2FwdHVyZSBzdGRvdXQKKzA6Y2FwdHVyZSBzdGRvdXQKID5TVERPVVQK IAogIyBlbmQgUFMyIHN0YWNrIHRlc3RzIApAQCAtMzIxLDYgKzMyMSwxNiBAQCBGOkZpZGRseSBo ZXJlIHRvIGdldCBFT0YgcGFzdCB0aGUgdGVzdCBzeW50YXgKIDA6aGVyZS1zdHJpbmcgYmVoYXZp b3IKID5pbiBhIGhlcmUgc3RyaW5nCiAKKyAgPDw8JHsgcHVyciAkJ3N0ZG91dCBhcyBhIGhlcmUg c3RyaW5nJyB9CiswOmFub3RoZXIgY2FwdHVyZSBzdGRvdXQKKz5zdGRvdXQgYXMgYSBoZXJlIHN0 cmluZworCisgIHdyYXA9JHt8IFJFUExZPSJSRVBMWSBpbiBlbnZpcm9ubWVudCBhc3NpZ25tZW50 IiB9IHR5cGVzZXQgLXAgd3JhcAorICB3cmFwPSR7IHB1cnIgImNhcHR1cmUgaW4gZW52aXJvbm1l bnQgYXNzaWdubWVudCIgfSB0eXBlc2V0IC1wIHdyYXAKKzA6YXNzaWdubWVudCBjb250ZXh0Cis+ dHlwZXNldCAtZyB3cmFwPSdSRVBMWSBpbiBlbnZpcm9ubWVudCBhc3NpZ25tZW50JworPnR5cGVz ZXQgLWcgd3JhcD0nY2FwdHVyZSBpbiBlbnZpcm9ubWVudCBhc3NpZ25tZW50JworCiAgIHByaW50 IC11ICRaVFNUX2ZkICR7WlRTVF90ZXN0bmFtZX06IFRFU1QgQ09NUExFVEUKIDA6bWFrZSBzdXJl IHdlIGdvdCB0byB0aGUgZW5kCiBGOnNvbWUgdGVzdHMgbWlnaHQgc2lsZW50bHkgYnJlYWsgdGhl IHRlc3QgaGFybmVzcwo= --000000000000a9409d0605184f48--