Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15928

Re: Inconsistent termination of function when 'local' tries to override read-only variable

Path csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: Inconsistent termination of function when 'local' tries to override read-only variable
Date Thu, 20 Feb 2020 10:41:55 -0500
Lines 26
Approved bug-bash@gnu.org
Message-ID <mailman.1259.1582213322.2412.bug-bash@gnu.org> (permalink)
References <CALaCa4znm+iQxG14TneqV3Hf3VNvHi-JWvsCmesB9ArBOUXSXg@mail.gmail.com> <d1d183d5-442b-48ca-f359-f51172278a67@case.edu>
Reply-To chet.ramey@case.edu
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 7bit
X-Trace usenet.stanford.edu 1582213323 19676 209.51.188.17 (20 Feb 2020 15:42:03 GMT)
X-Complaints-To action@cs.stanford.edu
Cc chet.ramey@case.edu
To Arfrever Frehtes Taifersar Arahesis <arfrever.fta@gmail.com>, bug-bash@gnu.org
Envelope-to bug-bash@gnu.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1582213316; bh=UyX2clDx9DMTFnQoLArZpMOj6s6iAjJnyjT0H8NvSPY=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=wbtE1L5aEyO3Wx4viToZADW8n+G8C7IfnAkGCGiJimaOfe98EtYOFW2dosT0Drdqdm CfjBP4uCaW98baLHga0dXGJwQ6sfeAjUAkndtoFf/XDVKcw8wMU5yzEtO4V+zGywvLK hlY0MkoDRejelpUAyjwFRPZKqyZxlk5R8/E+hpm7L8u7OG6vQcjhAY1Zl59lWB5XVj2 i51F2VVSRtgSeV3AAVWtVYbIu1f+vR/6JySWld4sGZpiESQCtSsh3/H271O2ifgsbsy Df2kbiRfqe+CFCYMoo7k/Dr7Z8oynibSbyob4gnUOeQ+JNzGCvdis+7SKaVudacE7WI hUMBZQ8Q==
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1582213315; bh=dUOhCcsEvL9HxFCpmhKAkc9s3/rZy9UJOTjs//DHkiY=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=No/3wYQIiJVwHMbpG4Nh7PtmzmwYQyubgbZqY6HTYd2a2HRmsOhnBjt7zBhmCUTM56 SyKOnkh0dmKkcAZt7uQHFjGatWxPQ7CF2vj8jfPdvCbtpRt8h0KoyjmFEQlsvPQgV2R nCvmJZacYU8jRMwqN0jiiHrIU5EaTrm8clX/E5E1Vs0jRgTbvElBVyRkPllSDKvKF5L 3xj2tP+du25fWL3vw/w7P2jutBTMqB8CW8R87G7PxZPMFjCCDyCLfM8NH0e4m2vdEiB hjau2ykQhRjBMZNRRbfJKgH4C1gRrzKUkwHtfr8tq/M0zUogmRMjrg2MNappiCJuQYv 7SAQo+tw==
Autocrypt addr=chet.ramey@case.edu; prefer-encrypt=mutual; keydata= mQGiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8DpvgRh40Yp AwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qlyyX+2BZU+okBUqoWQ koWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJOwyBFJdugjfwjSoRSwDOIMf0D /iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZbN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqES GZragl4VqJfxBr29Ag0UDvNbUbXoxQsARdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQ OTGOCa4W2o29nFfFjQrsrrYHzVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP2 1Wf7f5niCCRKQLNyUy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWm W5fsm/di50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJLQgQ2hldCBSYW1l eSA8Y2hldC5yYW1leUBjYXNlLmVkdT6IYQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX gAUCRX3FIgIZAQAKCRC7WGnwZOp0q069AKCNDRn+zzN/AHbaynls/Lvq1kH/RQCgkLvF8bDs maUHSxSIPqzlGuKWDxa5AQ0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWanIFOXIndqhvU1 3cDbQ/Wt5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0B2pBLX/C10W1aY+cUrXZ gXUGVISEMmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98FL69l6/K4xeNSBRM/AAMHA/wNAmRB pcyK0+VggZ5esQaIP/LyolAm2qwcmrd3dZi+g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/ J90lxrVnQwucZmfz9zgWDkT/MpfB/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdf aKAiim0nVxxQmPmiRvtCmYhJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8 Gs/zUzvXMt7evaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ==
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.5.0
In-Reply-To <CALaCa4znm+iQxG14TneqV3Hf3VNvHi-JWvsCmesB9ArBOUXSXg@mail.gmail.com>
Content-Language en-US
X-Junkmail-Status score=7/80, host=mpv1-2015.case.edu
X-Junkmail-PrAS-Raw score=7/80, refid=2.7.2:2020.2.20.143317:17:7.944, ip=, rules=DKIM_SIGNATURE, __HAS_REPLYTO, __HAS_CC_HDR, __SUBJ_REPLY, __PHISH_SPEAR_SUBJ_PREDICATE, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __SUBJ_ALPHA_END, __TO_MALFORMED_2, __MULTIPLE_RCPTS_TO_X2, __TO_NAME, __TO_NAME_DIFF_FROM_ACC, __HAS_REFERENCES, __REFERENCES, __HAS_FROM, FROM_EDU_TLD, __HAS_MSGID, __SANE_MSGID, DATE_TZ_NA, __USER_AGENT, __MOZILLA_USER_AGENT, __MIME_VERSION, __IN_REP_TO, __CT, __CT_TEXT_PLAIN, __CTE, __REPLYTO_SAMEAS_FROM_ADDY, __REPLYTO_SAMEAS_FROM_ACC, __FROM_DOMAIN_IN_ANY_CC1, __FROM_DOMAIN_IN_ANY_CC2, __REPLYTO_SAMEAS_FROM_DOMAIN, __DKIM_ALIGNS_1, __DKIM_ALIGNS_2, __URI_HAS_HYPHEN_USC, __ANY_URI, __URI_MAILTO, __HTTPS_URI, __URI_WITH_PATH, __URI_ENDS_IN_SLASH, URI_ENDS_IN_HTML, __URI_NO_WWW, __CP_URI_IN_BODY, __SUBJ_ALPHA_NEGATE, __MULTIPLE_URI_TEXT, __URI_IN_BODY, __URI_NOT_IMG, __MAIL_CHAIN, __BODY_NO_MAILTO, [TRUNCATED], so=2010-03-03 19:42:08, dmn=2016-08-03-0138
X-detected-operating-system by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy]
X-Received-From 129.22.103.226
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.23
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <https://lists.gnu.org/archive/html/bug-bash>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
X-Mailman-Original-Message-ID <d1d183d5-442b-48ca-f359-f51172278a67@case.edu>
X-Mailman-Original-References <CALaCa4znm+iQxG14TneqV3Hf3VNvHi-JWvsCmesB9ArBOUXSXg@mail.gmail.com>
Xref csiph.com gnu.bash.bug:15928

Show key headers only | View raw


On 2/19/20 2:36 PM, Arfrever Frehtes Taifersar Arahesis wrote:
> When scalar variable is read-only, then calling 'local' for this
> variable (regardless of presence of value in assignment) is non-fatal
> and subsequent commands in function are executed.

Correct. This is an implementation choice, and a controversial one, and
one that's been in place for about as long as bash has had local variables.
Bash creates the local variable with the inherited value, but doesn't allow
it to be changed. The rationale is that variables are readonly for a
reason, and you shouldn't be able to override readonly variables just by
calling a function. The local variable is created, so it's not a variable
assignment error.

There are advocates on both sides of this issue.

Here's the last time the issue came up:

https://lists.gnu.org/archive/html/bug-bash/2019-03/msg00150.html

It's come up multiple times over the years.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar


Thread

Re: Inconsistent termination of function when 'local' tries to override read-only variable Chet Ramey <chet.ramey@case.edu> - 2020-02-20 10:41 -0500

csiph-web