Solaris build problems... help?

Hello. I am needing some help to understand some cpan testers build failures under Solaris. The reports are:

If you have any idea on what is going on, please post here a comment, or mail me.

perlformance

For some weeks I now have my Perl benchmarking ready.

It is a whole little infrastructure, based on Tapper and Codespeed, an own not regularly updated CPAN mirror (to keep dependencies stable), and a dedicated benchmark machine.

One server (perlformance.net) is running the Tapper result database, the Tapper website, the codespeed graph rendering website and the CPAN mirror.

The second server (perl64.org: 6 core AMD Opteron 4180, Debian/Squeeze)
is dedicated to only run benchmarks, without any disruption from email, web,
or other services. I also took care of disabling all OS features that typically lead to deviation, like ASLR and Core Performance Boost.

Learn about the overall vision from my YAPC::EU 2011 slidedeck.

The benchmarks are produced by Benchmark::Perl::Formance.

Announcing Module::UseFrom

So what do you do when you need to load a module from a string? Do you do eval "require $module"? Well as many of you may have read, that is How (not) to Load a Module. This mechanism is unsafe in certain situations, but sadly there hasn’t been a good answer for it.

What do you do when you want to load a module only if it is installed, or only if it is of a certain version or higher (without dieing). Of course there are eval ways around that too, but could they be easier?

This post announces Module::UseFrom, which lets you do all of these things. But it gets better! All of these actions are done using the much safer bareword form of use, accomplishes this at compile time, and does it without any evals[1]!

It does all this using Devel::Declare to inspect a package variable in your module and inject a bareword use statement. This means that it avoid most (all?) of the problems Schwern’s post (above); if it fails to create the right statement, perl (yes lowercase) dies on the use Bareword::Module statement.

Check it out, fork, comment etc. https://github.com/jberger/Module-UseFrom

Happy New Year everyone!

[1]: ok, there is a s///e, but its for convenience, and its safe.

What you should know about signal based timeouts

The problem

I think we've all seen code like this example from perlipc:

my $ALARM_EXCEPTION = "alarm clock restart";
eval {
    local $SIG{ALRM} = sub { die $ALARM_EXCEPTION };
    alarm 10;
    flock(FH, 2)  || die "cannot flock: $!";
    alarm 0;
};
alarm 0;
if ($@ && $@ !~ quotemeta($ALARM_EXCEPTION)) { die }

Here, signals are used to put a time limit on some action. However sometimes this doesn't work as wanted. In particular, some C libraries used in XS modules don't honor the [deferred signaling](http://perldoc.perl.org/perlipc.html#Deferred-Signals-(Safe-Signals%29) resulting in it being ignored until the C function has finished, which is unlikely to be what you want.

Therefore, people resort to unsafe signals

use Sys::SigAction qw( set_sig_handler );
my $ALARM_EXCEPTION = "alarm clock restart";
my $h;
eval {
    $h = set_sig_handler('ALRM', sub { die $ALARM_EXCEPTION }, { });
    alarm 10;
    flock $fh, 2 or die "cannot flock: $!";
    alarm 0;
};
alarm 0;
$SIG{ALRM} = $h;
if ($@ && $@ !~ quotemeta($ALARM_EXCEPTION)) { die }

Perl documentation is Awesome

Learning Perl, 6th Edition book review most popular of 2011

The "Learning Perl, 6th edition" book review had the distinction of being iProgrammer's most popular review of 2011, between more than 250 reviews on a vast variety of subjects with thousands of reads each, but the Perl review reached top spot with 10,800 reads (figure untill 29/12/2011)
The benefit is that it exposed the language to a wide audience, since the site appeals to a general programming public from C# to Javascript, therefore I do hope that it managed to attract "new blood" and/or converts !

YAPC::NA 2012 Call For Presenters Now Open!

We are now accepting talk proposals for YAPC::NA 2012

We’re of course interested in anything Perl-related you want to talk about. However, we have two areas we’re definitely interested in:

First, we’re looking for talks on Perl in the Wild. These talks are about businesses and individuals who have done great things with Perl. Perhaps you’ve automated your house with Perl, or built the latest and greatest web app. Or maybe you’re controlling Arduino boards to build robots with Perl. Maybe you’ve got amazing case studies in high-end performance with Perl. Or maybe, you’ve built a boring little app in Perl that has enabled your business to make millions of dollars. You could be building a great video game in Perl, or perhaps a social network to take down Facebook and Twitter.  Whatever it is that you’ve built or are building, we want to hear about it.

Happy New Year!

Welcome to 2012. You made it! Can you believe it? I can't believe it either, the way you partied last night. Have you no shame?

Well it's time to make a New Year's resolution. You're coming to YAPC::NA 2012 in Madison, WI on June 13-15. 

While you're at it, have your spouse or significant other make the resolution with you. Bring them to the YAPC::NA 2012 Spouses Program.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.