develooper Front page | perl.perl5.porters | Postings from November 2017

Re: Fwd: Re: BBC: DBM::Deep

Thread Previous | Thread Next
From:
Zefram
Date:
November 17, 2017 05:58
Subject:
Re: Fwd: Re: BBC: DBM::Deep
Message ID:
20171117055826.GI4913@fysh.org
James E Keenan wrote:
>Assignment of stale reference at t/39_singletons.t line 68.
># Tests were run but no plan was declared and done_testing() was not seen.
># Looks like your test exited with 255 just after 11.
>t/39_singletons.t ............... 
>Dubious, test returned 255 (wstat 65280, 0xff00)
>All 11 subtests passed 

This is due to the change for non-core warning categories, commit
006c1a1dbd541b84351332b0d315508f789f3bd1.  There's a non-core warning
here, actually in a core category, but necessarily using warnif logic.
The problem is that DBM::Deep doesn't use warnings::warnif(), but
instead replicates its logic, looking into the bitset itself.  It's been
tripped up by the regularisation of the bits for the "all" category,
which requires a change in logic, which of course has been changed in
warnings::warnif().

The change in core behaviour is intentional and should remain.  As long as
DBM::Deep has its own warnif logic (which it has for a valid reason, see
comment in its source) it needs to keep the hack up to date.  Fortunately,
the change required in DBM::Deep is very easy, not even requiring any Perl
version condition.  It just needs to drop the checks of the bits for the
"all" category.  Those checks are now not correct, but interestingly
they also don't do anything on older Perl versions.  They're correct on
older Perl versions, but only relevant for non-core warning categories,
and DBM::Deep only uses this duplicated warnif on a core category.

-zefram

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About