[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Local variables overriding global constants
From: |
Chet Ramey |
Subject: |
Re: Local variables overriding global constants |
Date: |
Thu, 04 Apr 2013 10:20:50 -0400 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130307 Thunderbird/17.0.4 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 4/4/13 12:34 AM, Mike Frysinger wrote:
>> Yes, this has come up before. It's one reason to keep the compromise in
>> place. But is FOO being readonly in the function where it's declared and
>> not being able to unset it enough rationale to continue to support these
>> semantics? One problem is the one you point out below.
>
> if we had an explicit `declare +r`, then it would be OK :)
If you have declare +r, you might as well not have readonly variables
at all.
>>> would it be possible to enable a mode where you had to explicitly
>>> `declare +r` the var ? being able to "simply" do `local FOO` allows
>>> accidental overriding in sub funcs where the writer might not have even
>>> realized they were clobbering something possibly important.
>>
>> It's an idea, but I don't really like the idea of making declare +r, which
>> is disallowed everywhere else, do something in just this one special
>> context. Maybe another flag. I'll have to think on it.
>
> is there a reason for not just allowing `declare +r` everywhere ? seems like
> the proposal fits nicely into the existing system (although you've said
> you're
> not terribly happy with said system): you can do `declare -gr` to get perm-
> read only before, or you can do `declare -r` to get read only by default
> while
> still allowing sub functions to override if they really want.
The idea, I believe, behind `readonly' is that you want constants. There's
no reason to even offer the functionality if you can easily make things
non-constant.
Chet
- --
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU chet@case.edu http://cnswww.cns.cwru.edu/~chet/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iEYEARECAAYFAlFdjEIACgkQu1hp8GTqdKuJVQCfdFjaMdWkfgeU6jndmQc2Brqm
q8gAn0JmIZFGHlL4OXSKl3NLtCXrUIK6
=wkSH
-----END PGP SIGNATURE-----
- Re: Local variables overriding global constants, (continued)
- Re: Local variables overriding global constants, Chris F.A. Johnson, 2013/04/03
- Re: Local variables overriding global constants, Pierre Gaston, 2013/04/03
- Re: Local variables overriding global constants, Chris F.A. Johnson, 2013/04/03
- Re: Local variables overriding global constants, Pierre Gaston, 2013/04/03
- Re: Local variables overriding global constants, Chet Ramey, 2013/04/03
- Re: Local variables overriding global constants, Mike Frysinger, 2013/04/03
- Re: Local variables overriding global constants, Chet Ramey, 2013/04/03
- Re: Local variables overriding global constants, Mike Frysinger, 2013/04/04
- Re: Local variables overriding global constants,
Chet Ramey <=
- Re: Local variables overriding global constants, Mike Frysinger, 2013/04/04
- Re: Local variables overriding global constants, Chris F.A. Johnson, 2013/04/03