From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29564 invoked by alias); 15 Jul 2013 19:27:41 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 31519 Received: (qmail 20213 invoked from network); 15 Jul 2013 19:27:24 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.3.2 Received-SPF: pass (ns1.primenet.com.au: SPF record at gmx.net designates 212.227.15.18 as permitted sender) Message-ID: <201307152114310185.0059391B@mail.gmx.net> In-Reply-To: <130715100624.ZM14123@torch.brasslantern.com> References: <20130715133525.GA7694@chaz.gmail.com> <130715100624.ZM14123@torch.brasslantern.com> X-Mailer: Courier 3.50.00.09.1098 (http://www.rosecitysoftware.com) (P) Date: Mon, 15 Jul 2013 21:14:31 +0200 Reply-To: mpy@gmx.net From: "Manuel Presnitz" To: zsh-workers@zsh.org Subject: Re[2]: bug with eval, proc-subst and pipes Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:N3O0lWVSnzZoMHlXAVLqEL6ww4oQYUvacXPlgJRpVdlFkfY1uUp uzzTHQ6/KtRAb3YJioxcJO+tgFgMj78pWGTsdwh4upRNqS9MEMz4wtqORO2M5yLrPRdTfdC ea8zYKdQmvV/nHmlN3h5Gk/D13KjDDFWMH6r6B+/uAIL05FYMaRvAOMkYueAXei0iRmxZcF w5Rq205QZH+bl5xLlYOTg== SC> NOK$ eval 'paste <(echo 1) <(echo 2) <(echo 3) <(echo 4)' | cat SC> paste: /proc/self/fd/13: No such file or directory SC> Reproduced with Zsh 5.0.2 on Debian amd64 on two different SC> machines, not with 4.3.17 on Ubuntu 12.04 amd64 BS> It's a race condition of some kind. I can reproduce reliably with BS> BS> % (){ sleep 5; paste "$@" } <(echo 1) BS> BS> even without an "eval". I don't know if it helps to get an idea what's going on, but both variants work as expected with zsh 5.0.2 under the cygwin environment: $ uname -smo CYGWIN_NT-6.1-WOW64 i686 Cygwin $ mkdir /tmp/empty $ ZDOTDIR=/tmp/empty zsh -f $ autoload compinit $ compinit $ eval 'paste <(echo 1) <(echo 2) <(echo 3) <(echo 4)' | cat 1 2 3 4 $ (){ sleep 5; paste "$@" } <(echo 1) 1 $ print $ZSH_VERSION $ZSH_PATCHLEVEL 5.0.2 1.5778 Regards, Manuel.