pperl 0.6.21 - addendum

This blog entry has no release attached to it. 0.6.21 is an internal version, not for release. In the four days since 0.6.20 a few things happened, but this post is not about new things. It is about old things the 0.6.20 post forgot, about how a project moving at this pace should announce anything at all, and about a question that deserves an answer in public: who pperl is for, at a time when you can ask an AI to port your Perl script to the language of your choice and be done.

pperl 0.6.20 - The Player of Games

pperl 0.6.20 is released, and readers of the two previous posts - Shall we play a game? and Doing a REJIT - know what that means. This post carries the Benchmarks Game scoreboard. It also covers a native Memoize whose cache hit is compiled into the caller, a GPU binding on the wgpu crate for the other kind of games, and a few smaller items.

pperl: Doing a REJIT

The previous post - pperl 0.6.12+ - Shall we play a game? - closed with a promise: the next release will compete in every benchmark of the Computer Language Benchmarks Game with the best scripted language entry there. The current build already takes several rows outright; the tally belongs to the release post. This one is about a row where the promise cannot be kept with the guns we have. On regex-redux the opponent is V8's Irregexp, a compiler that turns regular expressions into machine code, and no amount of work on the Perl JIT will close that gap, because the time is not spent in Perl ops at all. The answer is a second compiler: ReJIT.

pperl 0.6.12+ - "Shall we play a game?"

There is no release attached to this post - the second half will explain why. It is a post about measurement, twice over. Earlier posts claimed that pperl is under high-velocity development, and a claim like that should be quantified - so we do, with the same statistics perl's own release notes use, epigraph included. And we have started playing the Computer Language Benchmarks Game: one program is finished, the result is a 36x speedup on the game's terms, and the conclusions have reset our speed goals.

Moving Targets - PetaPerl 0.6.8

Two weeks ago we announced PetaPerl 0.6.0. Today, 0.6.8 goes live at https://perl.petamem.com. Again, the version has no hidden meaning, but if you insist, you can call this the "дурак Go Home" edition. The headlines: pperl has now perl 5.44 as compatibility target because it follows the current stable perl5. The benchmark suite that produces our numbers is released, so you can see what the numbers are on your machine. DBI works, with native database drivers - connect to your PostgreSQL or MySQL database with an unmodified use DBI; script and no driver installation. And there is now a daemon that lets repeated runs of a script skip compilation entirely: each run forks an already-compiled image and goes straight to execution.