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.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 30090 invoked from network); 6 Dec 2022 20:02:29 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 6 Dec 2022 20:02:29 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1670356949; b=BcG1BAycm3spZFOkpRwyFydbZP0t4SbjhKInPkL1zpvt3aQ2yVKg6HpGLHzFMV9gbjhK4thHd6 gxCfCciHQZQLAlH+QIqszgXpAGQ3lSXqM+pcKVSwWmeRkhL2x5GCpygdm6cyDRHOOY7S16nfZ/ NYq/RT8JpM2qkpqjQa3oWCkSkKaw9z9zJOW6oLMZTVUOZfh8PYP2DzI1jrWApJTdPdmhidbxbe +QwQ7LBHJk3cSLQ6RGcZGsRjghv/dqWjgKL59vSCfYz+YS6oNVTKadGY3g9ZC8NXGPw/FcC28J oZZzp/zMZ0wdsSwiEexcNT9oksWd0OHXbi1c0PkVgGYDgQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-yw1-f169.google.com) smtp.remote-ip=209.85.128.169; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1670356949; bh=i8mgMeHeIJ/CxxV96cNddPUYuXN96bCxMOXEJQGoKog=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=VTzWA0tc13HF9ISFQQFPUbUM3BzcS06LzHHhKPloWpKDAmPFgXm+iP/rHCDNYH5hnyIgL6CX74 I/j8bQCSMB+HArIEIRaZ74IXXygiOIlGfYXij6XMIVWceGOXYe0SZiC9qNeFKgV7cW1hUaWP9K jKRX9PafDzXi/yIW788MH1kI7RmLbLi4kf3jR4lbLbiX/twMcEFK9Kno7Cy7uNqooBkLJahmlo ax7fXR21N4WAXe3suLB0+7zGHf0ERJAiQkD9PH9ckvESJjWWiQmTcz4wQQcAFv3LfJgl07qhAx GJOrZzpzYHPCdNqMsOZVovmFq1LlCtFK1suhdo5Hm0IlHg==; 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:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=i8mgMeHeIJ/CxxV96cNddPUYuXN96bCxMOXEJQGoKog=; b=mpHnTJ4s4RBpoj/HseO+06n8pF /9//27BugjLNO+TwHbjXRfMfbEBCir2j+3+3VxeRTdoH6y2cy54CiJnUrsqpmgZ7Ql/td+Dddze6/ hoxWxXvEZW4J2If7RkqwM5bT+BEECp+AeS1E982R3u/abKeyKtpJhkxVkwuBTMfL/2E0V76VEwvN5 bc9aEx9r4BR0OJflT/+ZudYdZgbbaPpPNaChZA7+TzRsbFhhfQd6gDIkQAdXZ2gT0rGKlt0VZQ88g GV4dvrxsfs83L9gkp/qAk5H85WXqnb4Bj7Fv6hmai4DnhiDldz+fl9U1QtJZwa+C9iSZpB2ALJi0Q ZBtLrE4A==; Received: by zero.zsh.org with local id 1p2e96-000929-K8; Tue, 06 Dec 2022 20:02:28 +0000 Authentication-Results: zsh.org; iprev=pass (mail-yw1-f169.google.com) smtp.remote-ip=209.85.128.169; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-yw1-f169.google.com ([209.85.128.169]:43864) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1p2e8M-0008JS-Su; Tue, 06 Dec 2022 20:01:43 +0000 Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-3c21d6e2f3aso163605857b3.10 for ; Tue, 06 Dec 2022 12:01:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=i8mgMeHeIJ/CxxV96cNddPUYuXN96bCxMOXEJQGoKog=; b=cLQEfdXpZmhxwxA4RzkCMDsrXgnXYrGhwnVMfkzSFR6J2kQ3Q0AaICeDhWn91N/sNQ VMCOH9BdJKYO5UTUU8QNmkuA8hF/zHb8LGllE4ghdkC3DAs9SpvxYFtUPB4F+5Hcu+vl mMU2dv2eUxBjNqkcn7jhFuTEhUqvb+fiKs/AEAvWCouWOXzjCMT2ogbP/KClLTIBuh2v JSCAlVa/rNpHQ8o+jGIXbXd5PFOp1ezkcXwKjdsTgLmrx8TdxPIo0iU2PUySerd4IEqH I4Af/3chdOFj+zb/RgQLZiGvOtMedKO99k5cTVKbXfOYDgoEZkPCmpTrW/ogeGZY61KX sVQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=i8mgMeHeIJ/CxxV96cNddPUYuXN96bCxMOXEJQGoKog=; b=xdMa+j8Ap1/cUZ5Zf39v3Nh4wFsmIr8/N+JpOMEtwKaVqZS+977ll4ND5+hmZ2e4BF kwQrw2Wjq+X9b0ZBVZCzmas2tZWiRVqO1z8ZrAlo//sJSV6+85sbI+9k/oLvWFFb8Kqk 74iKTwCnpzczbgHihGUO6XvgnKli/UR+YIEphPWX+ZwXbLKzWrZo83LKX7r7Ztb4icFI KeQWmoWlgLzYRacicsFrlLf3csXUbv3kec2hD6MedAuXnBASxuMKtlxEO3sDz5O5gv8z UVRndSOJBhgVK1gSMnVg2qm73a1M711j5HBRsejdX1M/lsIeZP9KwJxMni+8sik3XkY6 nBzA== X-Gm-Message-State: ANoB5pl02yEqwg91rP/7AFouPVpoSoOYLq1M0QP6TXihYNafLDE+mQLm s26BE4EoimeN7DlcgPrxvWb4mkU2Ftr10bY9DxA= X-Google-Smtp-Source: AA0mqf6RdSZmIRw7arI++831i7Aa7R2Sn7jx2IrV0y7Yo9rvn3F0vVRFx7a2eb4SapxhjeQg9c1peohSoKHRIiXCFUU= X-Received: by 2002:a0d:d745:0:b0:391:ea94:ec9b with SMTP id z66-20020a0dd745000000b00391ea94ec9bmr17706972ywd.57.1670356901428; Tue, 06 Dec 2022 12:01:41 -0800 (PST) MIME-Version: 1.0 References: <54bcd6dd-e589-4696-f042-1155b78df9d2@eastlink.ca> <819c9630-f315-8b1c-cb52-3d3ae8de2d5c@eastlink.ca> <7eadf163-da34-d90b-61ce-b527fb75b597@eastlink.ca> <37b2456f-0459-4b85-74d1-bb380715e2ed@eastlink.ca> In-Reply-To: From: Roman Perepelitsa Date: Tue, 6 Dec 2022 21:01:30 +0100 Message-ID: Subject: Re: The elements of enlightenment To: Bart Schaefer Cc: Ray Andrews , zsh-users@zsh.org Content-Type: text/plain; charset="UTF-8" X-Seq: 28510 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Tue, Dec 6, 2022 at 8:45 PM Bart Schaefer wrote: > > On Tue, Dec 6, 2022 at 10:56 AM Roman Perepelitsa > wrote: > > > > That said, it's totally possible to extend zsh with something like $[ > > ... ] which would work like $( ... ) but without forking. It would run > > the commands in another thread within the same process. > > That requires enabling support from threading libraries like pthreads, > which bring along their own set of availability and synchronization > challenges. Yeah, it's probably non-trivial. Thankfully, it wouldn't require inserting mutex locks in random places because the parent shell will never be executing concurrently with the child. It'll be blocked while the child is running. Signal handling might need changes though. I don't know this part of the code well enough to know whether they would be big or not. I'm not suggesting that it's a good idea to implement $[ ... ]. I'm just musing on the topic of capturing stdout from zsh code without forking. Roman.