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, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12315 invoked from network); 5 Jun 2021 04:29:27 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 5 Jun 2021 04:29:27 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1622867367; b=O0O+Q4BFVRnEFbI9vTSiIyDGVQDZqgZWyfTgkr39GpGH3MiJjRnzHydVcRWWqNe6Ps0HA0rhbF 28wXCKo1uJ/JmD27w8OBJPvrINcej9uV8ZqLWdfTj5HqyYg9oypzAZqd0PkRSTyJZZJKe5tiNp EQJvDDas9dARDR6zNIt0rI2nCWjJrTY3yUOhvE/43RhFGj1aapXP5KlKxCmyjLVXt36tIIKS6G NV5kto+t/unc+qpGIgpAh7Wfa/vZ1AJqQzeQ/5yweGzhh1gmVgQctnvh45oi/jFAUNloIpl4Y6 /2UUJqi/SmI5E4v0lyYvZpUDC18OYBgyQ8Ef8I5MxSwU5w==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-io1-f48.google.com) smtp.remote-ip=209.85.166.48; dkim=pass header.d=gmail.com header.s=20161025 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-20200801; t=1622867367; bh=uAtcf6jZxiXwPAFBB20Hg+Sq6sQ2Pp2NRlEIe8LiX5I=; 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:References: In-Reply-To:MIME-Version:DKIM-Signature:DKIM-Signature; b=SO4GnThiLDP8Q/rjf0EKCfJ7IH2J+/swadhvLYehVd6Ao9z80aAlk52f8vW/Q90q5TPg3L44K+ dzQ0UIPhQuj1df5v6dm8sA2H/FGNVS9zA7EToZaGEtcDhe93fdToejomyltOSCvsHTBHMzqU9o kOj3SlSDxl8hUmMVG3jXXFlruYShBu1qLqeHzb7UEBnQdnSbT0qSaP8b57jLmTnu+YgUdII5EJ hhG4Tgn1c92VPzj5k4fckQFgETqpKhEflxhoE7uzk99OTgF33XfD2gNhBo4ZZiPpDxrYzDt0mU pR2CvrYizts3h4Pbmd/DwKOpNIA7tf+CkpdyaAnf2vPZsA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; 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:References:In-Reply-To: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=GyP7SB6h4Ql5lpVO6ZXDFkGZDOIGNblatatthzKfbic=; b=VAnmvYr2+7xkowOstfzYF/+DNe lHbbRJjf3b/GlSl8G+n/5h0aFYWOCdiEAA9n+cL9S2Te73dDaSnWpEz2slgAl+9XS4FWVmqxnhviZ JJMAre0gdmbsMpYOJfWZUtM4MFHhi5ObHv2h1vS5IUS9j63mm72O4em/b88id1dSQMqKWFit8iN4X D8XGvTfGdUI3MZ2t1iRC6NlBQCMHKJK6TgcS2AEnTWgpfcU5ZHsVcctoBQTpN8iqii/iuhVhvD043 MBpFpBYcnZAQ1T1QCnm25+0erLqNGMTeGkWMBLTZyBPRR7b4jwf0ZnOAUjyMBbS9dZjP6OYxL789X qLzXYS2g==; Received: from authenticated user by zero.zsh.org with local id 1lpNw4-0009sB-ES; Sat, 05 Jun 2021 04:29:24 +0000 Authentication-Results: zsh.org; iprev=pass (mail-io1-f48.google.com) smtp.remote-ip=209.85.166.48; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-io1-f48.google.com ([209.85.166.48]:44588) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lpNvo-0009Zn-RG; Sat, 05 Jun 2021 04:29:09 +0000 Received: by mail-io1-f48.google.com with SMTP id v9so12281181ion.11 for ; Fri, 04 Jun 2021 21:29:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=GyP7SB6h4Ql5lpVO6ZXDFkGZDOIGNblatatthzKfbic=; b=s5wYu9TdDgbd4Pc+/C1NvVZt1V5n4X3oaPxCO86vSJUWC0CzCrH8IfDokkNbtM/6ye oJk79iUcaeOUgqPl8vECXaBTHz2/ukste5wBTlDQLHLzWa5SgNVyq6bv1gGKH5WockJ/ QDFMmliciexaqwgBk5qfdT/C0Odqbajm+Sa5CezbHk65t0rfuGZetLb5lDHgmFRey6hR gedzd2vE1ikTELNcwxamrv60cqbnzIyD6jfASIGQuy69C36OzO28Zf8gcYjoAVV5H4iz E3J0/MAW/3/I3nfCvlSS9nbHkyMWiuGaeo4Hq5Deojq/iYMzDGE9tlyEWZqsGDQ/MLm+ r9JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=GyP7SB6h4Ql5lpVO6ZXDFkGZDOIGNblatatthzKfbic=; b=Ts2naSII6peDHSAuUq6hRv0uPdpVmLL0OmB89MjK2pTui1yqSmLguKpljxIIPlwj+T /0txwNbR5aH3mKyaTnOBpeLYHYweWB97Wo3uttuPgq2cwx4kdeCW3tSJICs6FQwl1BC4 H+wPGs/yhFLBYAtq2A6z1GRHaOpCEQw5pfto2wuOqSqpN/lNeuoxmKlhbFbAe7e5AcNf XaY6Mkxm1KEoChEn2X8tSezVKEZnrL04S9OAGYttnQjlprULFdo07peX2EchhpONSoBc j2pc8UH3UeVi3YjgYDiOcv4LzgMhUWCNKbDGkraCUV5XUpfTri5SAzOmgc+fLw/V0Y+R xDKQ== X-Gm-Message-State: AOAM530Li+aEDK678bBOSN5vTrQMulZTIJJP9bG9Dui6l42ryS7Ol17a oYKIO/hWXwucMsIUc+NIi0Q7FgpxuCgFD4oWY5dLd99d X-Google-Smtp-Source: ABdhPJxPDdj98GytL5EjeZp3zM38kEhRqM/uxD1aH3PIAQRGnJP9L/XxlzwO0bUQqYdHh8hZ9qRssTAEHZ3rMishMn4= X-Received: by 2002:a05:6638:775:: with SMTP id y21mr7034410jad.115.1622867347584; Fri, 04 Jun 2021 21:29:07 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4f:e1da:0:0:0:0:0 with HTTP; Fri, 4 Jun 2021 21:29:06 -0700 (PDT) In-Reply-To: References: <20191216211013.6opkv5sy4wvp3yn2@chaz.gmail.com> <20191216212706.i3xvf6hn5h3jwkjh@chaz.gmail.com> <20191217073846.4usg2hnsk66bhqvl@chaz.gmail.com> <20191217111113.z242f4g6sx7xdwru@chaz.gmail.com> <2ea6feb3-a686-4d83-ab27-6a582424487c@www.fastmail.com> <20200101140343.qwfx2xaojumuds3d@chaz.gmail.com> <20210430061117.buyhdhky5crqjrf2@chazelas.org> <20210505114521.bemoiekpophssbug@chazelas.org> From: Mikael Magnusson Date: Sat, 5 Jun 2021 06:29:06 +0200 Message-ID: Subject: Re: [PATCH] (?) typeset array[position=index]=value To: Bart Schaefer Cc: Zsh hackers list Content-Type: text/plain; charset="UTF-8" X-Seq: 49020 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: On 5/31/21, Bart Schaefer wrote: > On Mon, May 31, 2021 at 11:18 AM Bart Schaefer > wrote: >> >> On Wed, May 5, 2021 at 4:45 AM Stephane Chazelas >> wrote: >> > [typeset] chokes on lvalue='array[n=1]' or >> > lvalue='assoc[keywith=characters]' >> >> Hmm, I wonder if that should be considered a bug. > > This copies (tweaked for context) the code from parse.c at line 2006 > or thereabouts. > > All tests still pass, but as you can see from the comment this is not > yet handling x+=y which there doesn't seem to be any reason for > typeset NOT to support; I think it would require only another flag in > struct asgment, but I haven't attempted that. > > Commentary? Is there some fundamental reason we couldn't just make the obvious thing work instead? % typeset -A foo % foo=(a b c d) % foo[a]=() # what actually happens zsh: foo: attempt to set slice of associative array # what seems reasonable to happen % typeset -p foo typeset -A foo=( [c]=d ) Relatedly, this also seems very inconsistent: % typeset -A foo % foo=(a b c d) % bar=(a b c d) % unset 'foo[a]' % unset 'bar[2]' % typeset -p foo bar typeset -A foo=( [c]=d ) typeset -a bar=( a '' c d ) So for regular arrays, unset will just set the element to the empty string, for assoc arrays it removes the key and the value. For regular arrays, assigning () to the element unsets(?) the element, and for assoc arrays it is an error. -- Mikael Magnusson