Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Chet Ramey 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: References: 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 , 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: Xref: csiph.com gnu.bash.bug:15928 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/