Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: One possible answer to typeset vs. unset



On Thu, Dec 3, 2020 at 3:19 PM Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Dec 1, 2020 at 12:55 AM Felipe Contreras
> <felipe.contreras@xxxxxxxxx> wrote:
> >
> > I don't know what would be the proper solution for tied variables, but
> > I used this hack to make the tests pass:
>
> I looked at this for a while yesterday evening.  My conclusion is that
> tied variables are already a bit of a hack.

Indeed. It might not be worthwhile to look at them at this point.

> Consequently I don't know if your patch would cause a different test
> for unset-ness (that hasn't been written yet) to fail, but something
> like that patch may be unavoidable.

I can't parse that. What would such unset-ness test do?

Anyway. I don't see the two approaches particularly different. If
nobody can argue that "typeset var" and "typeset -i var" should behave
differently (one with no value and the other with value), then some
kind of flag like PM_DECLARED would be needed. I'll add that to my
approach.

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.

Next, we need a way to make sure $empty[(i|I)] returns something
sensible (that would be for both approaches).

And I think that's it. All that's left is deciding what flag would
turn this mode on.

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.
In my opinion localvar_inherit should also be the default (and
presumably that's what POSIX will eventually decide). I don't quite
get localvar_unset, but seems to also be a sensible default. Or maybe
that's an entirely new topic.

Cheers.

-- 
Felipe Contreras




Messages sorted by: Reverse Date, Date, Thread, Author