From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id fcb57597 for ; Wed, 24 Jul 2019 05:34:00 +0000 (UTC) Received: (qmail 687 invoked by alias); 24 Jul 2019 05:33:55 -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: List-Unsubscribe: X-Seq: 44569 Received: (qmail 9101 invoked by uid 1010); 24 Jul 2019 05:33:55 -0000 X-Qmail-Scanner-Diagnostics: from mail-ua1-f51.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25517. spamassassin: 3.4.2. Clear:RC:0(209.85.222.51):SA:0(-2.0/5.0):. Processed in 2.195674 secs); 24 Jul 2019 05:33:55 -0000 X-Envelope-From: sgniazdowski@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.222.51 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=FlOeYySprnrSkD78cFIVV0aFv9xJyCfXBJkzmMKB468=; b=vKG5QOumJxhi8qabnPRCFCCQr0xo/5wGwqcoC9x1xuBan63Wk2VToc3fHm3oJJf6WA iQoAcImTTvrNzUQumhSgRwE15hMk16K+AZNo6E/nUl6e099IDx+jk9C+3eF7xrYYTjo6 ytcpth4yr9TfBWnPC5O6eEmSnMBQk4sL5mCRH6WF5z28OmgjP0BC1YsxSre2IQaPjtoX VbSnTV8vzoR9SW9VbaoVbp56Q8/udOWaNiMbmOkDzl8DAOLN+1VkkvP5fhtv48h3t1kl 4ubtp28Mp9coJpRk8YSI2blGJI1aJF5O+3rWcN2TceaQC0m4QDl9eVyd8GZVHAA4y8tX aFog== 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; bh=FlOeYySprnrSkD78cFIVV0aFv9xJyCfXBJkzmMKB468=; b=ecHi+WOIIFazUvZKlBQAdDyfIgTrGGWcqIPIjJF9JdO34sP1p1VWrDU4Vncne2EJqN iam0avGGAO9lgO3Y5gr4WSUe9QjeJ1r7VXOQQA9UchjR1o8KwMlOVnYzlYHGUv35sWgs /EEStF66LR/DiRFC/5KWyDWaBgBJS8lpc0tN77G3pAySF6zF4XKDvL17PL7H1KBUUZlU En0IL/Bkp4xXds6FaN2Xl8zUYUxaO4neH6fyjEr9JazBaTzY/cdGBl6X9QsLn3dkYPUM 4BBlS9HUHa39JSvF3V6+FeGj5/hHahlpYGc2eONUlTZwVyJyqrBZua2kr+TxMfKGqnuh iv/Q== X-Gm-Message-State: APjAAAW4TrRx1vsGZAOHm4eQ3E3F0aGFC3L5/sx4bfPtcXb+cssb2cG4 vt/Gs/5gZ16C9AVZqF+K2CCqvxXLh0vtEXaUvh8= X-Google-Smtp-Source: APXvYqyGarrIntm+21is+b4rN/fLnBAQchRQpH1j3cYeCUrG1PsXKvYOtVvnXfcbSzAWLyxPBtqm6ghn1BhxrnHm0+k= X-Received: by 2002:ab0:2650:: with SMTP id q16mr11594317uao.7.1563946399627; Tue, 23 Jul 2019 22:33:19 -0700 (PDT) MIME-Version: 1.0 References: <20190724051234.5yky2pd5pxv5z3lu@chaz.gmail.com> In-Reply-To: <20190724051234.5yky2pd5pxv5z3lu@chaz.gmail.com> From: Sebastian Gniazdowski Date: Wed, 24 Jul 2019 07:33:08 +0200 Message-ID: Subject: Re: [bug] Math evaluation done twice in subscript in specific conditions To: Sebastian Gniazdowski , Zsh hackers list Content-Type: text/plain; charset="UTF-8" On Wed, 24 Jul 2019 at 07:12, Stephane Chazelas wrote: > > 2019-07-24 01:50:23 +0200, Sebastian Gniazdowski: > [...] > > idx=0 > > a=() > > : ${a[++idx]::=$idx} > > print -rl $a > > -> 1 > > : ${a[++idx]::=$idx} > > print -rl $a > > -> 1 > > -> 3 > > idx=1 > > : ${a[++idx]::=$idx} > > print -rl $a > > -> 1 > > -> 2 > > -> 3 > > > > So apparently the assignment to idx does change something for the > > following ::= "call" and makes it work correctly. The second and > > following ::= calls cause $idx to increment twice. > [...] > > It is increased by 2 on the first one as well: > > $ i=0 a=() > $ : ${a[++i]::=$i}; echo $i $a > 2 1 > $ : ${a[++i]::=$i}; echo $i $a > 4 1 3 Ah, of course. > It makes more sense in that latter case where I imaging a[i] is > dereferenced first to check if it's empty or not, and then the > indice is computed again upon assignment. When I was debugging Zsh in the past, I've very often occurred double getter call AFAIR, or at least of something underneath. It is basic to assume that this would call mathevali twice. I was then thinking that it is like that by design and didn't report it. -- Sebastian Gniazdowski News: https://twitter.com/ZdharmaI IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin Blog: http://zdharma.org