Jonathan Worthington has done it again! Only last week did Merijn H. Brand‘s speed canary script drop below 2 seconds for the first time. In the past week, it dropped below 1.7 seconds twice already (at moment of writing). Which indicates a speed increase of almost 20%. Wendy van Dijk wrote a blog post titled “Perl 6 speed improvements over the years” to make sure everybody is on the same page with regards to this benchmark, with some nice comments!
Fortunately, this speed increase was corroborated by H. Merijn Brand with another benchmark. A simple object creation script that showed that, at least for that benchmark, Perl 6 is now faster than any version of Perl 5.
To describe how these speed increases came about, Jonathan Worthington wrote two blogposts:
Recommended reading if you want to get to the nitty gritty! Or, if you want a bit more of an overview, check out the August 2018 Grant Report. Or if you want to get in even deeper: an overview of changes in
Another 6.d Teaser
Zoffix Znet released another Perl 6 Diwali Teaser (/r/perl, /r/perl6 comments). It describes how atomic operations allow multiple threads to update variables at the same time without needing any locking. If you have another idea to promote Perl 6, please be sure to leave an issue in the Perl 6 Marketing Repo!
File encoding support
A naive introduction to OOP
This one appears to have been slipping through the cracks for more than a month: uzl has written a very nice naive introduction to object orientation. It takes a real-life use case, and creates an app from that.
Naming of variables
In the fifth instalment of the series titled How naming of variables works in Perl 6, yours truly shows that although on the surface variables look very much the same in Perl 6 compared to Perl 5, but that appearances can be deceiving. Oddly enough, this did not incite any comments on Reddit. It did generate a lot of (positive) tweets from all over the world.
Perl Small Stuff #11
Fixing the syntax barrier
In an almost year old blog post, Christopher Chedeau describes his frustrations with syntax errors caused by false friends when moving between programming languages. Zoffix Znet and Ralph Mellor had some thoughts in relation to Perl 6, specifically with regards to
Stefan Seifert describes how he has deployed a little Perl 6 daemon in production by using the operating system’s IO notifcation features that are exposed in Perl 6 as an asynchronous Supply of file change events. A nice example of how Perl 6 can gradually be used in an environment otherwise dominated by Perl 5.
On the 6th of October (anywhere in the world) it will be Squashathon Day again! This month, since it is October, your Pull Requests will also count towards the Hacktober Fest, thanks to the procedure put in place by Aleks-Daniel Jakimenko-Aleksejev. Looking forward to see many of you active next Saturday!
- Ticket status of last week and the month of September.
- Timo Paulsen made it possible to have the JIT add comments to the spesh log.
- Bart Wiegmans continued his work on making
forkwork properly in Rakudo Perl 6 on operating systems that have a native
fork()functionality. He also removed support for the JIT-log: this is now incorporated in the spesh-log and implemented support for a
perf mapon Linux.
- Zoffix Znet fixed a small-int / big-int boundary division that occurred when multiplying / dividing two integer values.
- Elizabeth Mattijsen optimized various forms of
foriterating over ranges and sequences, making something like
for 1,3...999999about 150x faster. She also made
[1,2,3], about 1.4x as fast.
- Samantha McVey updated
Rakudoto use the Unicode 11.0.0 semantics and grapheme databases.
- And many other smaller fixes and improvements.
Meanwhile on Twitter
- Copy in the office by Simon Proctor.
- Perl Quick Reference? by Moritz Lenz.
- Showing relationships in RED by Fernando Santagata.
- Qu’on m’a réclamé by doomyflo.
- Copies for everyone! by ryn1x.
- Perl 6 in the browser? by The Perl Shop.
- Structures we don’t use enough by JJ Merelo.
- Why I never learned Perl by twinkus botanicus.
- Great stuff! by Jo Christian Oterhals.
- This was going to happen by Curtis Poe.
- What Perl 6 did for atomic by JF Bastien.
- Even Perl 6! by bytesize eater.
- A natural upgrade? by Nicolas Mendoza.
- Great post about Perl 6 Internals by Stéphane Payrard.
- Hashes to represent data structures by Joelle Maslak.
- Directly from Brian by Christophe Monat.
- Don’t we ♥ Perl 6 by justgitthings.
- Up and running in less than a day by vijayvithal.
- Moose 40x slower by E. Choroba.
- Swag Photo by ryn1x.
- It’s a sign by Zoffix Znet.
- March 32nd by Moritz Lenz.
- Too powerful by うら.
- Evolutionary algorithms and Perl 6 by JJ Merelo.
- All glory! by Wean Irdeh.
- Testing and polishing the next Comma IDE update by Jonathan Worthington.
Meanwhile on StackOverflow
- How to make a
.., but counting down by Patrick Spek.
- How to get all the signatures of multi sub or build-ins? by chenyf.
- Reducing logical operators by Eugene Barsky.
- How to do something functionally with all the elements of a list? by Eugene Barsky.
- How to assign the
Seqto a variable and iterate over it? by Matthias Krull.
- How to reload modules used in the
REPL? by Matthias Krull.
- Filtering elements matching two regexes by Eugene Barsky.
Meanwhile on FaceBook
- Power of the Atom by Zoffix Znet.
- New Record! by Wendy van Dijk.
- Over the years by Wendy van Dijk.
- Faster than Perl 5 by Zoffix Znet.
- Lotsa Camelia’s by Wendy van Dijk.
Meanwhile on perl6-users
- Installing Perl 6 on shared server by Richard Hainsworth.
wordsquestion by Todd Chester.
- Could this be any more obscure? by Todd Chester.
- Just posted a documentation
wordsdocumentation by ToddAndMargo.
- A problem with native
CArraysby Fernando Santagata.
joinquestions by ToddAndMargo.
- Package Compile Question by Richard Hogaboom.
Perl 6 in comments
- Cross Pollination by Ralph Mellor.
- Named arguments similar to Perl 6 by 0rac1e.
CLOSis a nice preview by yellowapple.
- Taken real characters on by Ralph Mellor.
- Compare with Perl 6 by Elizabeth Mattijsen.
- A mammoth project by PegasusAndAcorn.
- Register based by tyingq.
- Don’t use the word “Char” by theindigamer.
- Running in a browser by marto.
- Unique things by Ralph Mellor.
- Containers that point to containers by fresheneez.
- Recursive descent parser generators by Ralph Mellor.
- Years behind by Ralph Mellor.
- Promise is the problem by smurfix.
- A Toy example by Ralph Mellor.
Perl 6 Modules
- Event::Emitter::Inter-Process by Tony O’Dell.
- ECMA262Regex by Edument AB.
- AccountableBagHash by Elizabeth Mattijsen.
- DBIish, Cache::Memcached by Jonathan Stowe.
- Getopt::Advance by araraloren.
- TAP::Harness by Leon Timmermans.
- Cache::Async by Robert Lemmen.
- App::Tasks by Joelle Maslak.
When I said last week:
…a backlog of optimizations will see the spotlight in the week to come. Hopefully giving some really good news next week…
I couldn’t hope for the improvements we’ve actually seen! As Jonathan describes in his blog posts, there is more to come. But probably not in time for the 2018.10 Rakudo compiler / Rakudo Star release. So let’s enjoy the ride and see you next week for more Perl 6 news!