a perl5 to perl6 translator - update

I've moved the "perlito" perl5 to perl6 compiler to a new home:
http://www.perlito.org/perlito/perlito5to6.html

There are minor improvements in the compiler since last post, such as:
  • scalar(@a) is @a.elems
  • $a[-1] is @a[*-1]
  • fix "map" syntax
  • eval-string is EVAL

My January's Pull Request Challenge (part 2)

In the previous post I discussed my January Pull Request Challenge contribution. It's only part 1 because there's another part: the contributions others made during their PRC which were related to projects I'm in charge of.

My January's Pull Request Challenge (part 1)

While I was focused on the social aspects of the PR Challenge, such as the IRC channel (opping literally everyone), the guides (wrote several), the repo (plus organization), and lately even a small parser for the web page Neil created (which will appear in another post), I still had my own responsibilities - mainly, my own PR challenge, and taking care of others' PR challenge contributions that fell under my purview.

CPAN Cleaning Day 2457044: Compiler::Lexer

In my quest to clean up my CPAN distributions and to normalize them, I've been working on CPAN::Critic, my unreleased tool that looks at my directory and complains about things I don't like. That's going nicely for the most part, but I ran into a small problem that's taken me down a bit of a rabbit hole of C++. All this in the same week I wrote a Python program.

I want to check that the minimum version of Perl the code requires is the same as the MIN_PERL_VERSION. We have two modules to do that, the PPI-based Perl::MinimumVersion and the Compiler::Lexer-based Perl::MinimumVersion::Fast.

However, I'm in love with postfix dereferencing, a v5.20 feature. PPI reports 5.004 and Compiler::Lexer thinks 5.008 because neither handle the latest syntax enhancements:

#!/Users/brian/bin/perls/perl5.20.0
use v5.20;

use Perl::MinimumVersion;
use Perl::MinimumVersion::Fast;

my $code = '$array_ref->@*';

my $version = Perl::MinimumVersion->new( \$code )->minimum_version;
say "min version is $version"; # 5.004

Practical FFI with Platypus

At YAPC::NA 2014 I talked about FFI and Perl. FFI is an alternative to XS that I think is worthy of consideration. My talk was well attended, I think primarily because I jokingly subtitled my talk "Never Need To Write XS Again". So there is a market for this idea. I mostly talked about FFI::Raw, which was a great way to experiment with FFI and to write real live CPAN modules with FFI right then and there. The question of performance inevitably came up, so at the Pittsburgh Perl Workshop last year I talked about that.

The Perl QA Hackathon 2015

The Perl Quality Assurance Hackathon (hereafter QAH) is an annual 4-day gathering of the people who work on the core CPAN toolchain and associated systems & services. This gives them dedicated time to work on these systems together, solving hard problems and working out how to move everything forward.

Like pretty much everything in the Perl world, these are all volunteers, so our approach is to get sponsorship to cover expenses (travel, accommodation, working space, meals) for as much of the gathering as possible. If your company relies on Perl, ask yourself how much you rely on the toolchain working smoothly? Perhaps you could persuade someone to sponsor the QAH this year?

The CPAN toolchain isn't glamorous, so generally doesn't get much press, but it's an essential part of our world. So over the next few weeks we'll be posting some short articles to raise awareness and hopefully encourage some sponsorship.

OpenWest 2015 - Call for Papers

I just noticed on the SLC-PM Facebook that the OpenWest Conference 2015 has called for Papers.

Last year it had a whole track for Perl topics. The content was excellent and can be viewed on YouTube.

And since I am posting stuff from their Facebook page, here is a talk from last months SLC-PM meeting.

Managing SQL Data with Yertl

Every week, I work with about a dozen SQL databases. Some are Sybase, some MySQL, some SQLite. Some have different versions in dev, staging, and production. All of them need data extracted, transformed, and loaded.

DBI is the clear choice for dealing with SQL databases in Perl, but there are a dozen lines of Perl code in between me and the operation that I want. Sure, I've got modules and web applications and ad-hoc commands and scripts that perform certain individual tasks on my databases, but sometimes those things don't quite do what I need right now, and I just want something that will let me execute whatever SQL I can come up with.

Yertl (ETL::Yertl) is a shell-based ETL framework. It's under development (as is all software), but included already is a small utility called ysql to make dealing with SQL databases easy.

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.