RPerl, Perl 11, and The Future of Perl Performance

wbraswell's picture

Perl 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. Major RPerl releases happen on each major holiday.

Using RPerl, low-magic Perl 5 software may be compiled to run 200x, 300x, maybe even 400x as fast as normal high-magic Perl. RPerl moves Perl from being (arguably) the slowest general-purpose language to being among Fortran, C, and C++ as one of the very fastest.

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 goals of pluggability at all levels of Perl, as well as the reunification of Perl 5 and Perl 6. Perl 11 was formulated in summer of 2012 by Ingy döt Net, Reini Urban, and Will Braswell. RPerl is an implementation of Perl 11.

RPerl currently supports low-magic Perl 5 only. Future RPerl development plans include support for medium-magic Perl 5, then high-magic Perl 5, then Perl 6. It's taken us nearly 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.