conferences | speakers | series

Perl 11

home

Perl 11
FOSDEM 2019

Perl 11 is the philosophy of pluggability, performance, and the reunification of Perl 5 with Perl 6. RPerl is the new optimizing compiler for Perl 5, and is the primary implementation of the Perl 11 philosophy. We can currently use RPerl to speed up low-magic Perl 5 code with over 300x performance gain. This talk will discuss the future plans for supporting medium-magic and high-magic Perl 5 code, as well as Perl 6, and beyond.

Perl 5 is a programming language. Perl is fast at string manipulation and regular expressions. Unfortunately, Perl is really, really slow at most everything else.

On New Year's Day 2013, the RPerl optimizing compiler project officially began. On US Independence Day 2015, RPerl v1.0 was released, at long last; exactly 1 year later, RPerl v2.0 was released with automatic parallelization capabilities. After another year, RPerl v3.0 was released with regular expression support. Major RPerl releases happen on each major holiday.

Using RPerl, low-magic Perl 5 software may be compiled in serial mode to run 200x, 300x, maybe even 400x as fast as normal high-magic Perl. In serial mode, RPerl moves Perl from being (arguably) the slowest general-purpose language to being among Fortran, C, and C++ as one of the very fastest. In auto-parallel mode, there is theoretically no upper limit to the speed of RPerl, and it may be (arguably) considered the fastest software on Earth.

RPerl works by implementing a restricted low-magic (low-complexity) subset of the Perl 5 language, which is then converted into C++ and compiled into ultra-fast binary form. The resulting compiled low-magic RPerl code can be called seamlessly from existing high-magic pure Perl code. RPerl is primarily meant to be used for performance optimization, although as a true source-to-binary compiler it can also be used for strong source code obfuscation and IP protection.

The Perl 11 philosophy includes the 3 primary goals of pluggability at all levels of Perl, performance at-or-beyond the speed of C++, and full reunification of Perl 5 with Perl 6. Perl 11 was formulated in the summer of 2012 by Ingy döt Net, Reini Urban, and Will Braswell.

RPerl currently supports low-magic Perl 5 input source code. Future RPerl development plans include support for medium-magic Perl 5, then high-magic Perl 5, then Perl 6. It's taken us 30 years of Perl to get here, and we built the Internet along the way. Let's make the next 30 even more unbelievably amazing.

Speakers: Will the Chill Braswell