Ralph, we agree on my primary complaint that utility/convenience is being
lost.

I did, and do, recognize the validity of the problem of 'undefine' not 
not aligning with '.defined'.  The docs indicate that being empty is the
definition of undefinedness for non-scalar containers.

Keeping 'undefine' as a name of this action is beneficial because
'undefined' and 'defined' are mainstream terminology and so enable
people the find and understand Raku's variant behavior.  A name
like 'clear' would just be obscure--a great disadvantage.

Thanks for the links.

Rob


On Sat, Mar 18, 2023 at 06:06:54PM +0000, Ralph Mellor wrote:
> On Fri, Mar 17, 2023 at 11:11 PM rir <rir...@comcast.net> wrote:
> >
> > Deprecating 'undefine' is just making something easy more difficult.
> 
> I see a problem with `undefine`:
> 
> ```
> my @bar;
> say @bar.defined, @bar.DEFINITE; # TrueTrue
> undefine @bar;
> say @bar.defined, @bar.DEFINITE; # TrueTrue
> ```
> 
> I think a warning about this is the wrong solution.
> 
> I think deprecation is the right solution.
> 
> ----
> 
> That said, I'm a bit surprised that the deprecation message isn't something 
> like
> 
> Please use `foobar` instead
> 
> (where `foobar` does exactly the same thing as `undefine`, just using
> a different name).
> 
> ----
> 
> Maybe no one has yet thought of a name that isn't also fraught?
> 
> Maybe there is no reasonable name?
> 
> Maybe it's only Perl folk who would want `undefine`?
> 
> Maybe it's only Perl folk who will see the deprecation message and be unhappy?
> 
> Maybe, on balance, it's reasonable to consider it an opportunity to remind 
> Perl
> folk that a fresh uninitialized array or hash is NOT undefined?
> 
> Dunno. Just keeping an open mind.
> 
> Onward...
> 
> ----
> 
> I searched Rakudo's sources for "undefine".
> 
> No useful match?!? Looks like GH search goes from bad to worse. Sigh.
> 
> ----
> 
> `say &undefine.file` got me `SETTING::src/core.d/operators.pm6`:
> https://github.com/rakudo/rakudo/blob/591157170d29f8a45ef316bb0d065e8437059112/src/core.d/operators.pm6#L1-L9:
> 
> Git blame led to this commit:
> https://github.com/rakudo/rakudo/commit/72bac6708002f992952ca93e617435482824b95f
> 
> The commit message mentions "6.d-prep".
> 
> A google for that led to:
> https://github.com/Raku/6.d-prep
> 
> Results of a GH search included
> https://github.com/Raku/6.d-prep/search?q=undefine&type=issues
> 
> I ask that no one here comments on the discussions therein unless
> they are *very* careful to avoid using inflammatory language.
> 
> ----
> 
> Next I decided to search IRC. That led to this by Larry:
> 
> > I think we should s/undefine/clear/, because clarity
> 
> (https://irclogs.raku.org/perl6/2015-07-02.html#17:19-0001
> 
> ----
> 
> Liz suggested it was perhaps redundant.
> 
> (A similar argument appeared in the 6d prep issues.)
> 
> Larry didn't reply. Warnock's dilemma applies though I don't think
> Larry ever missed anything. I think he always went with his gut; if
> he felt he'd be repeating himself he said nothing.
> 
> ----
> 
> And so we arrive at 2023 and the same issue arises as ever.
> 
> Can we be kind to each other even if we don't agree, even if we
> are upset about some decision?
> 
> ----
> 
> love, ralph

Reply via email to