Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: One possible answer to typeset vs. unset
- X-seq: zsh-workers 47726
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Felipe Contreras <felipe.contreras@xxxxxxxxx>
- Subject: Re: One possible answer to typeset vs. unset
- Date: Fri, 4 Dec 2020 16:51:59 -0800
- Archived-at: <https://zsh.org/workers/47726>
- Archived-at: <http://www.zsh.org/sympa/arcsearch_id/zsh-workers/2020-12/CAH%2Bw%3D7aQeZjFAaJZ%2BE5DWQG45jvh-VvkT%3DPAMarpugaL%2BKcJ4w%40mail.gmail.com>
- Authentication-results: zsh.org; iprev=pass (mail-ot1-f41.google.com) smtp.remote-ip=209.85.210.41; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none
- Cc: Zsh hackers list <zsh-workers@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4/nMY8qC9xewX4kr50T5l3EmV46Gh8c6GIrWCAWMTC0=; b=VtBiqsO0tnJNTj9YNJBZNAe0rHZvedh+zG0pOR7jiIysDlG51Dlvx7oarucVWjiHUn U3v9oXqEgPnR32Sg9sFax7EXbL45uNhZEfQgiJ5rwJytz9iwaXdXe+Db8Ul8y/13hzLg 6kVp2x/BZkTQhOufb1cPuaYJlVmCJ1OhqLFRCyVX9ArDU6GLXVSfrkUyELxxgZmirL0c SQAlHO41P7DqosNeZ9R7Jcnh2QObFp5nKiAz5UVsa8pLsR1b2c0FmSjDgE7duG9yyOfQ V7OajR7h6qBHnVcrqg+jD6GS6v45ZAaUj35Wn4Lson4P+utLMozM3aD07CDOoLwRPXR6 G1Rw==
- In-reply-to: <CAMP44s3y2zqbG=8Zxqmn5RcwHC-CF2VaiwADhUbj2AokRKndkA@mail.gmail.com>
- List-archive: <http://www.zsh.org/sympa/arc/zsh-workers>
- List-help: <mailto:sympa@zsh.org?subject=help>
- List-id: <zsh-workers.zsh.org>
- List-owner: <mailto:zsh-workers-request@zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-subscribe: <mailto:sympa@zsh.org?subject=subscribe%20zsh-workers>
- List-unsubscribe: <mailto:sympa@zsh.org?subject=unsubscribe%20zsh-workers>
- References: <CAH+w=7Zh8URUiLF2n1x-ZrvKO+=JC8wf+n692sRsFTRbkJrzXw@mail.gmail.com> <CAMP44s2gZnM_JAi78gJwB+uX75Sdx0MQPkW7SZ6tUk85xEjvQg@mail.gmail.com> <CAH+w=7a0es6W_Si9YbQzszzYBSuubmocot_8goywaL_Owb=pjw@mail.gmail.com> <CAMP44s3y2zqbG=8Zxqmn5RcwHC-CF2VaiwADhUbj2AokRKndkA@mail.gmail.com>
- Sender: zsh-workers-request@xxxxxxx
On Fri, Dec 4, 2020 at 3:04 AM Felipe Contreras
<felipe.contreras@xxxxxxxxx> wrote:
>
> Next, I think all the instances in which PM_UNSET is checked should be
> verified, to see if PM_DECLAREDNULL makes sense in those. I'll do
> that.
In cases I've discovered so far, it's actually more likely that one
has to check whether PM_UNSET and PM_DECLARED are boolean different,
rather than whether both are (not) set.
> Next, we need a way to make sure $empty[(i|I)] returns something
> sensible (that would be for both approaches).
That's the last thing on my list, too.
> And I think that's it. All that's left is deciding what flag would
> turn this mode on.
I'm leaning toward POSIXBUILTINS.
> Lastly, I don't know if there is any low-hanging fruit, for example;
> doing the same as bash 5.0 with localvar_inherit and localvar_unset.
I thoroughly dislike localvar_inherit. I wonder if it's in bash 5.0
just to be able to compare the suggested semantics from that rejected
POSIX proposal we've previously discussed. I may be biased by long
use of the zsh semantic, but treating global -> local like environ ->
global seems weird, unless there's also a way to "export" a local back
to global.
> I don't quite get localvar_unset, but seems to also be a sensible default.
If I'm reading the bash manual correctly, localvar_unset means that
"unset foo" behaves like "local foo; unset foo". Thus (Chet will
probably correct me):
fn1() {
unset foo
}
fn2() {
local foo=something
fn1
echo ${foo-nil} # is nil
}
fn3() {
local foo=something
shopt localvar_unset
fn1
echo ${foo-nil} # is something
}
Messages sorted by:
Reverse Date,
Date,
Thread,
Author