On Fri, Aug 19, 2016 at 01:37:36PM +0200, Jakub Wilk wrote: > > * Niko Tyni <nt...@debian.org>, 2016-08-19, 09:42: > > This package depends and/or build-depends on libdata-alias-perl, which > > breaks with Perl 5.24 (currently in experimental.) > > This dependency was added in 516add8dc237 "to avoid copying large texts in > memory". But my understanding is that Perl >= 5.20 has copy-on-write > strings[0], so this optimization is no longer necessary. Jessie has a > sufficiently new version, so the use of Data::Alias can be safely dropped. > > [0] http://perldoc.perl.org/perl5200delta.html#Performance-Enhancements
Thanks for looking at this! That makes sense to me fwiw, but I see in #795641 that the patch author was using 5.20 at least when sending the patch. So presumably there was a reason for this? > > In some cases the 'refaliasing' feature in Perl >= 5.22 may be a > > replacement; > > (Lintian needs to be backportable to stable, so we couldn't easily use this > feature yet.) Sure. I managed to get both alternatives working at the same time with a string eval for the newer syntax, but it does feel a bit fragile. Something like #!/usr/bin/perl -w use strict; use if $] >= 5.022, feature => 'refaliasing'; no if $] >= 5.022, warnings => 'experimental::refaliasing'; use if $] < 5.022, 'Data::Alias'; my $b = "A" x (1024 * 1000 * 1000); if ($] >= 5.022) { eval '\$a = \$b'; } else { alias $a = $b; } print \$a, "\n"; print \$b, "\n"; which would enable a backports-friendly dependency like Depends: perl (>= 5.22) | libdata-alias-perl Does that seem feasible? -- Niko Tyni nt...@debian.org