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,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 9518 invoked from network); 26 Apr 2022 14:32:23 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 26 Apr 2022 14:32:23 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1650983543; b=So46be3ZQ6WWO6ZlkVciNR6GbrwZEpk4lK0kdj9IFaMBovBQb5PIg1pnT8QtDlDXb7Y2jQ+AtB 9fM/HieGTG29TbRT8wgs5he8aWyuiTmV1D0XGFxYygrI7ap+APkdKWaGTEkEQOzAgph5DOLpsv 4l0xgcT5HeLkOmzYMQM90feA8OtBfbMEdE6D960o2xOMNLMyQC+4RVLlptwPVNPMphCPtHA4hZ S2+ivTcI3wzF8wyuTlMUChc2W9JKX/PXw8fr1h1/LZCcX6OSWiJMHQzHL1xb9oYx3NSmuFoDN7 BWj4SfpH0bTJHDbsSutsaaWzvIDR1Slw2cxO7Nfr271uqA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (snd01008-bg.im.kddi.ne.jp) smtp.remote-ip=27.86.113.24; dmarc=none header.from=kba.biglobe.ne.jp; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1650983543; bh=A2TL4LqXICZVxcAnmrSsW4U+YKpz5iK+E8sABhxF9UU=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Message-ID:In-Reply-To:To:References:Date:Subject: MIME-Version:Content-Transfer-Encoding:Content-Type:From:DKIM-Signature; b=qRaJwtHl/jdBZ+/EmXtr//0xy70o0SA1Y8boSf/t3qF9hlOy9TGQdFvsg/+U1GmQ+1KRvjaQYb jJ6Qqw0Cgw3Lf4qnbWaYR5XdAnSpcsxB5vK+nG9Mu63j6+TaJ8zRyQY17T+RaA9KWXnF9Ae1uW yh9P8fZitUYxFjfkS6ZnG7DOlJwm2BlY+R/zWg2IFZBPCpcRv+qS7Xxmawhs3jPC53Eq5Qy6p8 xpYktGzVEkjTKICN9kGb/KtS14NhFo7g2e34fc5n67jZu54wGy7YuTlp4XmiZh7sNA9TiLw32s Zmhra9RGizizvl/aOZA4nCJzZAW3sYqTXr2QAOJQM35g3A==; 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:Message-Id:In-Reply-To:To:References: Date:Subject:Mime-Version:Content-Transfer-Encoding:Content-Type:From: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=4zq05n7mIr6Rq5SWSHoMD/lUeGpjTEEm4SXY6YbjSWY=; b=bu6yR16NEewsLvfkDpEF/lVa+X /Wk+wphAYxaorY5AslMTp5rB+nDPAy+cBIXEaLuW2GAtreHs4G52X/hNUofzobpMpIN0c1vYbxxJ/ nZUu7Us5RaJSn2abYhfndSJfyYjFwcNQOyin2pS4ldpseaH/N+Jbrtq1JSZ9MmXd4MKOErfmPlw0w YwRyzUcDhN8ald5rvW6isSldLTsR+7zeG3ohTaCMhTVV8zSPI7Pq1S3tHagdOckNiWLOyk7l07FmW 6mi6IGHlyeFAOf54BOicuwW066pGCjQNQoZoVZ3dYgmldKBYl/G1q+HcoxBPo5ck3+/WWjA5oPljg sQO+s1PQ==; Received: from authenticated user by zero.zsh.org with local id 1njMEn-000O5f-SP; Tue, 26 Apr 2022 14:32:21 +0000 Authentication-Results: zsh.org; iprev=pass (snd01008-bg.im.kddi.ne.jp) smtp.remote-ip=27.86.113.24; dmarc=none header.from=kba.biglobe.ne.jp; arc=none Received: from snd01008-bg.im.kddi.ne.jp ([27.86.113.24]:4641 helo=dfmta1015.biglobe.ne.jp) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1njMEE-000NkI-9m; Tue, 26 Apr 2022 14:31:49 +0000 Received: from mail.biglobe.ne.jp by omta1015.biglobe.ne.jp with ESMTP id <20220426143138893.QMDB.129695.mail.biglobe.ne.jp@biglobe.ne.jp> for ; Tue, 26 Apr 2022 23:31:38 +0900 From: "Jun. T" Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.60.0.1.1\)) Subject: Re: ZSH performance regression in 5.8.1.2-test Date: Tue, 26 Apr 2022 23:31:37 +0900 References: <20220425192036.p6awbyro2a2lp7bq@chazelas.org> To: zsh-workers@zsh.org In-Reply-To: Message-Id: <7E5CB0D9-4740-486A-B55E-6EA0530532F9@kba.biglobe.ne.jp> X-Mailer: Apple Mail (2.3693.60.0.1.1) X-Biglobe-Sender: takimoto-j@kba.biglobe.ne.jp X-Seq: 50107 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: > 2022/04/26 16:01, Bart Schaefer wrote: > > Try this? > --- a/Src/input.c +++ b/Src/input.c (snip) +#ifdef HAVE_FSTAT + else { + struct stat st; + if (fstat(SHIN, &st) == 0 && !S_ISFIFO(st.st_mode)) + rsize = SHINBUFSIZE; + } +#endif It works for printf '%s\n' 'echo $$' sh 'echo $$' | zsh But in theory (yes, just in theory), SHIN can be a socket. With two terminals A and B (zsh/socket already zmodload'ed): A% zsocket -l /tmp/tmpsocket A% zsocket -a $REPLY B% zsocket /tmp/tmpsocket A% zsh <&$REPLY B% printf '%s\n' 'echo $$' sh 'echo $$' >&$REPLY then on the terminal A: zsh: lseek(0, -11): illegal seek Adding !S_ISSOCK(st.st_mode) solves this, of course. But at least on my Mac the following seems to work also: if (lseek(SHIN, 0, SEEK_CUR) == 0) rsize = SHINBUFSIZE; # Have you found a case in which lseek(SHIN, 0, SEEK_CUR) fails # when it shouldn't fail, or does not fail when it should fail? If you think using fstat() is safer then I have no objection. PS Either fstat()/S_ISFIFO() or lseek() works when SHIN is a FIFO: A% mkfifo fifo A% zsh < fifo B% printf '%s\n' 'echo $$' sh 'echo $$' > fifo