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

Scalar-List-Utils: blead and upstream out-of-synch

Thread Next
James E Keenan
January 23, 2017 13:29
Scalar-List-Utils: blead and upstream out-of-synch
Message ID:
We have some problems with the integration of the Scalar-List-Utils 
distribution with the Perl 5 core distribution.  Scalar-List-Utils is 
maintained upstream on CPAN, which means that reports of bugs are 
supposed to be reported first on its bug tracker,  Once 
corrections are made upstream, we patch the core distribution.  Changes 
should not be made first in core unless there is an urgent, compelling 
reason to do so.

In late October and early November a series of corrections were made to 
Scalar-List-Utils in the core distribution with respect to its 
performance on the netbsd-vax platform.  In reverse chronological order, 
those commits were:


Because this work was committed to blead first, customizations were 
necessary in Porting/ and other porting-tests-related 
fixes were needed as well.  So there is more code in the commits above 
than was, strictly speaking, needed for Scalar-List-Utils.  The code 
that was needed for that was subsequently reported upstream at but upstream has not 
yet been patched -- which means we have to continue to maintain the 
customizations in Porting/ and elsewhere.

At the same time, our smoke testers were reporting intermittent failures 
in cpan/Scalar-List-Utils/t/tainted.t.  See, e.g.,  These test failures were 
first reported to the Scalar-List-Utils bug tracker 
( on Dec 07 2016.  A 
correction was discussed there and the upstream maintainer released 
version 1.47 on Dec 22 2016.

That version was not and has not yet been integrated into the core 
distribution.  Such integration would be complex given that blead 
contains the previously discussed customizations.  As a stopgap measure, 
on Dec 23 2016, the file with the failing tests was patched in blead 
(only) -- but with an expiration date on the corrective action of the patch:

diff --git a/cpan/Scalar-List-Utils/t/tainted.t 
index e483dfd..9e0df5e 100644
--- a/cpan/Scalar-List-Utils/t/tainted.t
+++ b/cpan/Scalar-List-Utils/t/tainted.t
@@ -15,10 +15,13 @@ ok( !tainted($var), 'known variable');

  my $key = (grep { !/^PERL/ } keys %ENV)[0];

+SKIP: { # Skip these to get blead to pass, but the skip expires soon
+skip 'is randomly failing', 2 unless $] gt 5.025009;
  ok( tainted($ENV{$key}),       'environment variable');

  $var = $ENV{$key};
  ok( tainted($var),     'copy of environment variable');

In blead we are now past 5.25.9.

$ ./perl -v | head -2 | tail -1
This is perl 5, version 25, subversion 10 (v5.25.10 
(v5.25.9-15-g03fedef)) built for x86_64-linux

$ ./perl -Ilib -E 'say $]'

Not surprisingly, we are once again experiencing intermittent test 
failures in cpan/Scalar-List-Utils/t/tainted.t.  See, e.g.,

So we are now in a situation where blead and upstream are out of synch 
with respect to Scalar-List-Utils in multiple ways.  We are not getting 
the benefits of the upstream maintainer's work on and, consequently, 
that ticket remains open -- as does the upstream ticket with the 
netbsd-vax corrections.

This is not good.

We have several other, much larger problems in the interaction between 
blead and CPAN that we have to address before the upcoming pre-5.26.0 
code freeze.  Having this Scalar-List-Util problem is a distraction.

My recommendation is that we:

1. Revert the netbsd-vax-related changes out of Perl 5 blead.

2. Integrate Scalar-List-Utils v1.47 into blead.

3. Urge the Scalar-List-Utils maintainer to accept the 
netbsd-vax-related changes and release a v1.48 with those changes.  (We 
would then integrate 1.48 into blead.)

I recommend this approach because:

1. Getting S-L-U 1.47 into blead would get us smoke test PASSes across 
all platforms.  That's a greater benefit than having the 
netbsd-vax-related changes in blead without also having them upstream.

2. Getting S-L-U 1.47 into blead would enable us to get rid of the 
customizations in Porting/ and the no-longer-working 
stopgap in tainted.t.

3. This would be consistent with our standard procedure for reporting 
problems with libraries maintained upstream but distributed with core.

To this end, I have created the following branch:  revert-cpan-118470. 
I am attaching a diff of that branch against blead.  You can review its 
smoke test results at

Thank you very much.
Jim Keenan

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About