From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MIME_BOUND_DIGITS_15,RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 38BA423D38 for ; Thu, 14 Mar 2024 03:11:48 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1710382308; b=JbYXwEmmN8WOjhRByOLxpvNSpbiP3IFF0+FND5a1SrBOqqsMEIqO2tc0EJ0MB6162xVzKDE26p r76FY2kpCMvba77nuXf2/IolntVhu0kw3JPCZvLZEt6hfxs/mZ7n3FnHW7f02FX/sFciGmnMAW ZdOG4/jCnho8UdXNQtalYp9DFMvcumjM3YmHQLlGofb1PgiH0oFFizpjKGvfqdU9J6BVfLiTkX m5E3ME763yRlsz1roSa46obgK2cJJt4ke9yJgdXbv/cd1D58rlvbwlBpeYo0lLRr2Yc0rXB/x9 iQFxC95RjcjQacqHCyWeuWybRl3S+VIUZOclMCyTo4oRyw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f52.google.com) smtp.remote-ip=209.85.218.52; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1710382308; bh=wCH4bKhfV+h4lZZUCMq9E1mckSW/sSH7GKnqzbVC/Ec=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=NtvX36EWOAe/aZaCzXgWAJrzArXNVsZQf33F3T9HeYaukTuWsSGkpezryFu8VFoaBLuKF1JKsy a0mNTgqdqzd/pqGoV7tH+SynmYysAXVyCcU1JNuUILjgI/9tjw44cUqiItAYTTaVuKnP1HX/Fp YuwPCVAc+UsC4JjYYVRcwb9V6BluEOuVDOPD1ve/pZun+HmYNJmY3oTUie33NNnvovWIh3prXZ 9w4T/fHvZioLxPOs7ZCuLVma5rw44H/eYb8MMTKHpTRqN1eB7CRQFxbe5PHoKjq6sFeE9GCMBm m60h9HKK7zDitrUSTX6T/vdOUfN0OAz94BrtAySOaUuZ5w==; 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:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=KUvCtZoTkG/GePzs4ib6cHQ7sdZFWdrw1rDvtV+7vi8=; b=qqOYoZlx1EMo55WeNsYRaoBPX8 uP2JKsnXg27qjseOclWcz1Ga/sZ1K/stnSYU7yhy7Co7MPETvu2C4o4qwUjJTdYiCrPQem46sXifg 9KkX8+wjw92OcNBpWTaRa7cy1TCmdTqnot5FbUWTaAYY9tR4kzeqvJcFEnRgO8f/M0FPB3iKf/Xz6 TgQHlwodHox6iJiMJLsS2R+S+uYrmP4pAot8tT8xLc5HSRqnNnyR5ruJXDQ2zyYsgTDQTUNCZpR+m tiw8q6WBIaaBPz3NvRm4H8CNN9Gi/P2t/WxrZh/P8paZqysWZGw4N5wvYJzn6FdEE+WKqAHfZxWHi Gcn2MRmQ==; Received: by zero.zsh.org with local id 1rkaZO-0001vU-MK; Thu, 14 Mar 2024 02:11:46 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f52.google.com) smtp.remote-ip=209.85.218.52; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ej1-f52.google.com ([209.85.218.52]:53273) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rkaZ1-0001dF-5v; Thu, 14 Mar 2024 02:11:24 +0000 Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-a465ddc2c09so45261466b.2 for ; Wed, 13 Mar 2024 19:11:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1710382282; x=1710987082; darn=zsh.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=KUvCtZoTkG/GePzs4ib6cHQ7sdZFWdrw1rDvtV+7vi8=; b=h8lxPOokPA6DFUbelNYjfWOIWcRVon6B6iocBtlE2XV4343UJhW/GX73Golr1jllk6 I9hUJ/O5bcXD0WFxMmsezetQKmGAC8c8d6MahVZuQxffDcgtRiFt4+tdbt+9SwXG/+LF 4ugNoDN15bKlDh2PEkQ1mjmyCpkuOkFJDNPqa8IEGxxLrEwxVe3KtwdtbjO09uLZmBuT 7aJsBCqwFRPVbC2n8tZrfTHoUhcsouBXFvOcbP2w1DyULvrOmG7G5+PgykAOZiokzP3F KqQr0xwXn9GwODOKnEKixl5JxxbVu5T0+DQ5/Yxg0/qf+qAxQQurFloHxALwA2tXEO7Q I3uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710382282; x=1710987082; h=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=KUvCtZoTkG/GePzs4ib6cHQ7sdZFWdrw1rDvtV+7vi8=; b=d7Wr0MdxV+x3mRUIdWKKhOKHEByoo1FMavknm6M+Gfue2F8xY21QzZq3GBBJxP3sZm XQATj7TLPB8vNBPsJrgZnlXJ9KHa4GaYx9n4OPF1OsvzNseDBdQPd7tcYhUWVOzsUzNk qUZ2GqlCBrZhghGrs1Ld7n8pJdLeRKAUFa2XZmLBGvxBiLQq+96WFBLRP5LIWNAMh+T4 xgV/qRywpzNmRUe+rqXE0MPrM5PYGSEHtnPJGgACzkGG07+Xc/tiC+0JYb0nPxu7efS6 HC/yOFRf7YyLdj7RDSz3hVml/P2oZvhPhT/lpAar+MjUS3SXsoqx0PIZpNP+UcNrUyql Hu/w== X-Gm-Message-State: AOJu0YxY8t0uj2TsWf5z2IqU+1U+MFgv9WHu1vLBH3+T0uoSIrohGC67 UMXJyBF+Yj9MzLpDXY71IPrTvuMjfb1Ps612Repcf+QC//rHJP3675ULxvV4N+2vJVcdCKo72zK kgr7XbySVdS0eal/8eWTF7VH6AY64B/HP/WBEaGVVVbP3jz+BZQ== X-Google-Smtp-Source: AGHT+IFqLTFcap5p7xgK8YVfNjqql8exZx4P55l93e1JjtVwo8yllYxXIXPmo7+PIkE1UtT3qIFvoOZVTVrzxRPa0p0= X-Received: by 2002:a17:906:718b:b0:a44:2634:abfe with SMTP id h11-20020a170906718b00b00a442634abfemr191909ejk.18.1710382281986; Wed, 13 Mar 2024 19:11:21 -0700 (PDT) MIME-Version: 1.0 References: <20240312084926.d6vbk75ozud7i2jm@chazelas.org> <20240312202653.p2bbwbpxcfazzgpj@chazelas.org> In-Reply-To: From: Bart Schaefer Date: Wed, 13 Mar 2024 19:11:11 -0700 Message-ID: Subject: [PATCH] More "typeset -p" and GLOBAL_EXPORT To: Zsh hackers list Content-Type: multipart/mixed; boundary="0000000000005943380613956826" X-Seq: 52752 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: --0000000000005943380613956826 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 12, 2024 at 1:38=E2=80=AFPM Bart Schaefer wrote: > > On Tue, Mar 12, 2024 at 1:26=E2=80=AFPM Stephane Chazelas wrote: > > > > $ zsh -c 'a() { export a; a=3D3; typeset -p a; }; b() { local a=3D2; a;= typeset -p a; }; a=3D1; b; typeset -p a' > > export -x a=3D3 > > typeset -x a=3D3 > > typeset a=3D1 > > > > That export -x seems bogus BTW as export doesn't accept the -x > > option. > > Indeed, that's a bug in the printparamnode() routine. That's not the only bug. As demonstrated by B02typeset.ztst in the test no array/hash in POSIX export/readonly -p with a declaration in a function of local -rx zsh_exported_readonly_scalar=3D1 the output of "export -p" is typeset -rx zsh_exported_readonly_scalar=3D1 However, "local" is supposed to supersede the GLOBAL_EXPORT option, so that should have output one of typeset +g -rx zsh_exported_readonly_scalar=3D1 or local -rx zsh_exported_readonly_scalar=3D1 The attached patch changes this (using "local"). The POSIX mode output -- export zsh_exported_readonly_scalar=3D1 -- is explained by a comment: * The zsh variants of export -p/readonly -p also report other * flags to indicate other attributes or scope. The POSIX variants * don't. There is also an AFAICT insurmountable problem: innie() { typeset -p $1 } outie() { local -x $1; innie $1 } outie var displays export var=3D'' That is "correct" in that var is not local to outie, but that statement cannot be evaluated to restore the state of $var anywhere other than from functions called by innie. Conversely: innie() { print ${(tP)1} } outie var displays scalar-local-export Which is also "correct" but fibs about $var being local to innie. Finally we have innie() { typeset +m $1 } outie var which agrees with the (t) flag by reporting local exported var And innie() { typeset -m $1 } outie var yielding var=3D'' No mention of export at all. These are all long-standing behaviors and haven't caused anyone a problem yet that I know of, so I'm not suggesting anything change, just pointing out that this patch doesn't address them. --0000000000005943380613956826 Content-Type: text/plain; charset="US-ASCII"; name="printparamflags.txt" Content-Disposition: attachment; filename="printparamflags.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltqlfpaf0 ZGlmZiAtLWdpdCBhL1NyYy9wYXJhbXMuYyBiL1NyYy9wYXJhbXMuYwppbmRleCA5NzNkZjNmZTUu LmY2NWFhMWU4MCAxMDA2NDQKLS0tIGEvU3JjL3BhcmFtcy5jCisrKyBiL1NyYy9wYXJhbXMuYwpA QCAtNjA0NCw2ICs2MDQ0LDcgQEAgcHJpbnRwYXJhbW5vZGUoSGFzaE5vZGUgaG4sIGludCBwcmlu dGZsYWdzKQogewogICAgIFBhcmFtIHAgPSAoUGFyYW0pIGhuOwogICAgIFBhcmFtIHBlZXIgPSBO VUxMOworICAgIGludCBhbHRuYW1lID0gMDsKIAogICAgIGlmICghKHAtPm5vZGUuZmxhZ3MgJiBQ TV9IQVNIRUxFTSkgJiYKIAkhKHByaW50ZmxhZ3MgJiBQUklOVF9XSVRIX05BTUVTUEFDRSkgJiYg KihwLT5ub2RlLm5hbSkgPT0gJy4nKQpAQCAtNjA4OSwxNiArNjA5MCwyNiBAQCBwcmludHBhcmFt bm9kZShIYXNoTm9kZSBobiwgaW50IHByaW50ZmxhZ3MpCiAJaWYgKHByaW50ZmxhZ3MgJiBQUklO VF9QT1NJWF9FWFBPUlQpIHsKIAkgICAgaWYgKCEocC0+bm9kZS5mbGFncyAmIFBNX0VYUE9SVEVE KSkKIAkJcmV0dXJuOworCSAgICBhbHRuYW1lID0gJ3gnOwogCSAgICBwcmludGYoImV4cG9ydCAi KTsKIAl9IGVsc2UgaWYgKHByaW50ZmxhZ3MgJiBQUklOVF9QT1NJWF9SRUFET05MWSkgewogCSAg ICBpZiAoIShwLT5ub2RlLmZsYWdzICYgUE1fUkVBRE9OTFkpKQogCQlyZXR1cm47CisJICAgIGFs dG5hbWUgPSAncic7CiAJICAgIHByaW50ZigicmVhZG9ubHkgIik7Ci0JfSBlbHNlIGlmIChsb2Nh bGxldmVsICYmIHAtPmxldmVsID49IGxvY2FsbGV2ZWwpIHsKLQkgICAgcHJpbnRmKCJ0eXBlc2V0 ICIpOwkgICAgLyogcHJpbnRmKCJsb2NhbCAiKTsgKi8KIAl9IGVsc2UgaWYgKChwLT5ub2RlLmZs YWdzICYgUE1fRVhQT1JURUQpICYmCiAJCSAgICEocC0+bm9kZS5mbGFncyAmIChQTV9BUlJBWXxQ TV9IQVNIRUQpKSkgewotCSAgICBwcmludGYoImV4cG9ydCAiKTsKKwkgIGlmIChwLT5sZXZlbCAm JiBwLT5sZXZlbCA+PSBsb2NhbGxldmVsKQorCQlwcmludGYoImxvY2FsICIpOworCSAgICBlbHNl IHsKKwkJYWx0bmFtZSA9ICd4JzsKKwkJcHJpbnRmKCJleHBvcnQgIik7CisJICAgIH0KKwl9IGVs c2UgaWYgKGxvY2FsbGV2ZWwgJiYgcC0+bGV2ZWwgPj0gbG9jYWxsZXZlbCkgeworCSAgICBpZiAo cC0+bm9kZS5mbGFncyAmIFBNX0VYUE9SVEVEKQorCQlwcmludGYoImxvY2FsICIpOworCSAgICBl bHNlCisJCXByaW50ZigidHlwZXNldCAiKTsJICAgIC8qIHByaW50ZigibG9jYWwgIik7ICovCiAJ fSBlbHNlIGlmIChsb2NhbGxldmVsKSB7CiAJICAgIHByaW50ZigidHlwZXNldCAtZyAiKTsKIAl9 IGVsc2UKQEAgLTYxMTIsNiArNjEyMywxMCBAQCBwcmludHBhcmFtbm9kZShIYXNoTm9kZSBobiwg aW50IHByaW50ZmxhZ3MpCiAKIAlmb3IgKHBtcHRyID0gcG10eXBlcywgaSA9IDA7IGkgPCBQTVRZ UEVTX1NJWkU7IGkrKywgcG1wdHIrKykgewogCSAgICBpbnQgZG9wcmludCA9IDA7CisKKwkgICAg aWYgKGFsdG5hbWUgJiYgYWx0bmFtZSA9PSBwbXB0ci0+dHlwZWZsYWcpCisJCWNvbnRpbnVlOwor CiAJICAgIGlmIChwbXB0ci0+ZmxhZ3MgJiBQTVRGX1RFU1RfTEVWRUwpIHsKIAkJaWYgKHAtPmxl dmVsKSB7CiAJCSAgICAvKgpkaWZmIC0tZ2l0IGEvVGVzdC9CMDJ0eXBlc2V0Lnp0c3QgYi9UZXN0 L0IwMnR5cGVzZXQuenRzdAppbmRleCBkOTBmMTdkMTMuLjkxNGVlYTkyYiAxMDA2NDQKLS0tIGEv VGVzdC9CMDJ0eXBlc2V0Lnp0c3QKKysrIGIvVGVzdC9CMDJ0eXBlc2V0Lnp0c3QKQEAgLTMxMSw3 ICszMTEsNyBAQAogIHByaW50ICRPVVRFUgogMDpFeHBvcnQgb2YgdGllZCBwYXJhbWV0ZXJzCiA+ aTpuOm46ZTpyCi0+dHlwZXNldCAteFQgT1VURVIgb3V0ZXI9KCBpIG4gbiBlIHIgKQorPmxvY2Fs IC14VCBPVVRFUiBvdXRlcj0oIGkgbiBuIGUgciApCiA+dHlwZXNldCAtYVQgT1VURVIgb3V0ZXI9 KCBpIG4gbiBlIHIgKQogPk9VVEVSPWk6bjpuOmU6cgogPm91dGVyPSggaSBuIG4gZSByICkKQEAg LTEwOTksMTIgKzEwOTksMTIgQEAKICB9CiAwOiBubyBhcnJheS9oYXNoIGluIFBPU0lYIGV4cG9y dC9yZWFkb25seSAtcAogPnpzaDoKLT50eXBlc2V0IC1hcnggenNoX2V4cG9ydGVkX3JlYWRvbmx5 X2FycmF5PSggMiApCi0+dHlwZXNldCAtQXJ4IHpzaF9leHBvcnRlZF9yZWFkb25seV9oYXNoPSgg WzNdPTMgKQotPnR5cGVzZXQgLXJ4IHpzaF9leHBvcnRlZF9yZWFkb25seV9zY2FsYXI9MQotPnR5 cGVzZXQgLWFyeCB6c2hfZXhwb3J0ZWRfcmVhZG9ubHlfYXJyYXk9KCAyICkKLT50eXBlc2V0IC1B cnggenNoX2V4cG9ydGVkX3JlYWRvbmx5X2hhc2g9KCBbM109MyApCi0+dHlwZXNldCAtcnggenNo X2V4cG9ydGVkX3JlYWRvbmx5X3NjYWxhcj0xCis+bG9jYWwgLWFyeCB6c2hfZXhwb3J0ZWRfcmVh ZG9ubHlfYXJyYXk9KCAyICkKKz5sb2NhbCAtQXJ4IHpzaF9leHBvcnRlZF9yZWFkb25seV9oYXNo PSggWzNdPTMgKQorPmxvY2FsIC1yeCB6c2hfZXhwb3J0ZWRfcmVhZG9ubHlfc2NhbGFyPTEKKz5s b2NhbCAtYXJ4IHpzaF9leHBvcnRlZF9yZWFkb25seV9hcnJheT0oIDIgKQorPmxvY2FsIC1Bcngg enNoX2V4cG9ydGVkX3JlYWRvbmx5X2hhc2g9KCBbM109MyApCis+bG9jYWwgLXJ4IHpzaF9leHBv cnRlZF9yZWFkb25seV9zY2FsYXI9MQogPnNoOgogPmV4cG9ydCB6c2hfZXhwb3J0ZWRfcmVhZG9u bHlfc2NhbGFyPTEKID5yZWFkb25seSB6c2hfZXhwb3J0ZWRfcmVhZG9ubHlfc2NhbGFyPTEK --0000000000005943380613956826--