Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: One possible answer to typeset vs. unset
- X-seq: zsh-workers 47755
- From: Felipe Contreras <felipe.contreras@xxxxxxxxx>
- To: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- Subject: Re: One possible answer to typeset vs. unset
- Date: Wed, 23 Dec 2020 17:00:25 -0600
- Archived-at: <https://zsh.org/workers/47755>
- Archived-at: <http://www.zsh.org/sympa/arcsearch_id/zsh-workers/2020-12/CAMP44s2VE9_e%2Bg1Z%2BViH_qkCntjDpPjt72PTYP-20nUhsYyUBg%40mail.gmail.com>
- Authentication-results: zsh.org; iprev=pass (mail-wr1-f52.google.com) smtp.remote-ip=209.85.221.52; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none
- Cc: Zsh hackers list <zsh-workers@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S7+mlrZGrufLIi/UqxF53A5l/eBkrD5GN2Oxukw07xU=; b=Ai88Lm+IJulbwACp+i+vTsQ7RFKKKhI0aOL9GzByqdePcVrTPLRU4AOJsGFykzT0Ix UpAWXMLQh7AUpegk33LtZWaspqRJX+5fhJ3ZTLihuNHky4RtnrdEVH1swPZ9GpZYNyHR DyWmZJ3D1gkPpGpGELmhxUPJPYa0Gq4HshNjRH66IO7JRCFe7KF1G7XuCpM3C2B2QKn2 ZAebJFXl/G7luoqp6BVldoBVTSZdenCvFvRwSg9QeTtQdmYLlkS85Bbv/VXifEq+nmPY VC0andmLc82LIO6XzCssAEP9fTQqKpXC/6eyIL/tskK2eI6y2jOFPpOQkEln7SsFLZRM IKEg==
- In-reply-to: <CAH+w=7aQeZjFAaJZ+E5DWQG45jvh-VvkT=PAMarpugaL+KcJ4w@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> <CAH+w=7aQeZjFAaJZ+E5DWQG45jvh-VvkT=PAMarpugaL+KcJ4w@mail.gmail.com>
- Sender: zsh-workers-request@xxxxxxx
Hello Bart,
Sorry about the delay, I've been busy with other projects.
I merged my approach and your approach and I'll be sending a patch to
show the resulting differences.
On Fri, Dec 4, 2020 at 6:52 PM Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
> 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.
Literally the first instance of PM_USET I checked shows a discrepancy
between my approach and your approach.
f () {
local var
print ${(t)var}
}
f
With my approach this prints "scalar-local" (I think correctly). With
your approach it doesn't print anything.
> > And I think that's it. All that's left is deciding what flag would
> > turn this mode on.
>
> I'm leaning toward POSIXBUILTINS.
Would ksh emulation enable this flag?
> > 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.
After considering it further I don't think it makes sense to have this
as default.
No other language does something like that.
> > 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):
If so I don't think it makes sense to have this as default.
--
Felipe Contreras
Messages sorted by:
Reverse Date,
Date,
Thread,
Author