Perl 5 Porters Weekly: October 7-October 13, 2012

Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list. Sorry this week's summary was delayed, I just ran out of tuits this past weekend. Let's get right to the topics this week:

  • Perl 5.14.3 is now available
  • maint-5.12, maint-5.14, and CVE-2012-5195
  • perl 5.16.2 cometh
  • Stupid COW benchmarks
  • aasign'ing hash with odd number of elements and duplicates
  • Compile option to disable taint mode: speedup
  • Making PerlIOStdio_invalidate_fileno() less invasive on FreeBSD

Perl 5.14.3 is now available

Dominic Hargreaves announced that perl 5.14.3 is now available on a CPAN mirror near you.

Read the announcement

Download the tarball

Read the changes in 5.14.3

maint-5.12, maint-5.14, and CVE-2012-5195

Ricardo Signes announced that he'd pushed a CVE fix to the maintenance branches of perl-5.14.3 and perl-5.12.5.

Read the annoucement

perl 5.16.2 cometh

In another announcement, Ricardo posted that he'd applied the fixes he knew needed backporting to maint that didn't make it into 5.16.1. He encouraged people to speak up about other patches which should be considered for inclusion into 5.16.2 in early November.

Read the announcement

Stupid COW benchmarks

Father Chrysostomos announced that he'd finished some work on a Copy-on-Write perl.

To do COW with a refcount stored in the string buffer, we have to check
that SvLEN is at least two bytes greater than SvCUR and than the
reference count has not reached 255.  That overhead slows down COW.

He shows that for short strings (i.e., "hello") assigned a million times, no-COW overhead is a winner by a second. But for long strings ("hello" x 1000) assigned a million times, COW is a winner by almost 3.5 seconds.

Read the announcement

aasign'ing hash with odd number of elements and duplicates

Ruslan Zakirov wrote that he's uncovered some odd behavior when Perl is given a list with an odd number of elements and some duplicates.

If a hash is assigned with odd number of elements then we get a
warning, but code continues and return values should be maintained.
Simple case:

$ perl -E 'say scalar %h = (1..3)'
1:2:3
$ perl -E 'say scalar(%h = (1..3))'
3

Quite resonable results from the first glance and reproducible since
5.8.9 to blead.

Things get messy with duplicates:

$ perl -e 'print join ":", (%h = (1,2,3,4,1)), "\n"'
1:2:3:4:1:

Older versions produce different result, but it's not important.

If we say that the case without duplicates produces correct and
expected results then result in the last situation should be "3:4:1".
It's important to note that order matters here, it can not be "1:3:4".

He offers some potential solutions and there is a good bit of back and forth about whether this behavior is expected or an error.

Read the thread

Compile option to disable taint mode: speedup

Steffen Mueller made an experimental patch to completely disable the tainting mechanisms in Perl as a compile option to provide a bit more speed than usual. (He estimates this makes Perl 10-20% faster than normal.)

I would NOT want this to be the default behaviour, but having this an 
option could be a boon to people like my employer, who run Perl on 
thousands of machines and capacity is as important as latency. (Thus the 
eternal "you spend more time waiting for IO" doesn't apply.)

I would love some review of the changes to the effect of what you think 
needs doing in order to get this into blead. Just to reiterate: This 
would be an opt-in perl.o-compile-time option to disable taint support 
in the perl binary.

He's looking for some additional feedback on this option.

Read the thread

Making PerlIOStdio_invalidate_fileno() less invasive on FreeBSD

I'm afraid this note to p5p has been warnocked. John Baldwin wrote that he's working on the stdio bits in FreeBSD's libc implementation and wants to insulate a call in Perl's IO layer to a member of a struct he wants to make private. He's looking for some direction on how this ought to be accomplished.

Read the message

About Perl 5 Porters Summaries

user-pic Weekly p5p summaries