In the past week, Samantha McVey has landed emoji support in Rakudo Perl 6 on the MoarVM backend. The code of the title of this week:
say "\c[woman gesturing OK] (woman gesturing OK)";
If you see some strange characters in the title before the parenthesis open, your system doesn’t support Unicode 9 emojis yet. Oh, and should you wonder, all emojis are still only 1 character, thanks to NFG!
say "\c[woman gesturing OK]".chars; # 1
Javascript Backend Milestone
Paweł Murias has reached another milestone in the development of the Javascript backend for Rakudo Perl 6. Again, a step closer to being able to run Perl 6 code in the browser. And for those of you remembering when Jonathan Worthington reached a similar milestone for the JVM backend: from here on out, it’s going to be a lot easier. I can only wish more power to Paweł!
Perl 6 – The Musical
JJ Merelo has made his latest Perl 6 project public. The introduction:
This book is about learning programming using a promising, and almost completely new, language: Perl 6. But it is only Perl 6 specific in a minority of the content. Most chapters that deal with Perl 6 could be rewritten using any other language, preferably a new, cool language such as Go or Rust. I, or someone, might do it some day. But for the time being, let us be content with Perl 6. Which is also new and cool.
He, and his family, will also talk about it at FOSDEM.
Blog Posts
- Stateful Silent Cron by Moritz Lenz.
- Where can I start looking to speed up regular expressions in Rakudo/NQP/MoarVM? by tektektektektek.
- 6 More Things About 6, at Boston Perl mongers by brian d foy.
- Which languages abstract parallelism like Perl 6 and JS? by Curtis ‘Ovid’ Poe.
- I just don’t get it, why is DevOps going Python? by tektektektektek.
- On using smileys and Type objects. And are Type objects the same thing as classes? by analogphototaker.
- Keeping track of state by analogphototaker.
- Sparrow Plugin Revolution by Alexey Melezhik.
Meanwhile on FaceBook
I’m adding strong typing to
Perl6::Parserin order to help catch some stubborn bugs, and noticing runtimes *apparently* decreasing as I add moreArray[Perl6::Element]return types. Yay team! ~10 seconds offPerl6::Parser‘s test suite. Incidentally I’m going to add some ‘find’ methods and start threading elements to have parents and siblings as well as children to make the structure easier to walk. And it pays off within 20 minutes of adding the last ‘returns‘ clauses by uncovering a hidden test-suite bug.
Jeffrey Goff
Meanwhile on StackOverflow
People are starting to ask more and more Perl 6 questions (and get answers!). The past week saw:
- How do I find the index of the maximum value in a list?
- How can I tell if something is a container?
- Does .parse anchor or :sigspace first in a rule?
- How can I completely flatten a list (of lists (of lists) … )
- How can I use a non-caching infinite lazy list
Core Developments
- Incompatible change: previously, so called non-associative operators (such as
cmp) could be used with more than two iterables, like so:@a Xcmp @b Xcmp @cSince this does not make sense, such code will now
die: you can now only use 2 iterables with these types of operators. - Zoffix Znet tweaked the
Gethbot in such a way that it will automatically list all of the associatedNQPandMoarVMcommits whenever anNQPorMoarVMversion bump is done. This will help yours truly with reporting on core developments a lot! Zoffix Znet also fixed an issue withTap::Harnessin the way full file skips were (not) handled. - Jonathan Worthington fixed various race conditions with inlining of code in MoarVM and a case of unwanted Garbage Collection in spesh. He also made memory management of call frames much more efficient, resulting in a reduction of memory usage by 10% and making
CORE.settingbuild times being 20% shorter. Finally, he fixed a bug in>>.dispatch (which was probably a main source of instability when runningmake spectestwith a Perl 6 harness) and improved compilation of||=,//=and&&=. - Samantha McVey removed several Unicode 1 names and added Unicode Name Aliases. And of course added emoji support 🦋.
- Daniel Green made groups in
<before>and<after>non-capturing. - Paweł Murias reduced the creation of unnecessary containers by reusing them better, only needing half as many as before: this mostly affects the JVM and Javascript backends.
- Elizabeth Mattijsen made
Zwith a specific operator (e.g. likezip(:with(&[~])akaZ~) about 12x faster,X(cross, either with or without a specific operator) about 7x faster,roundrobin()about 4x faster,combinations()about 2x andpermutations()about 15x faster. - And many other improvements and bug fixes, at about 120 commits the past week.
Ecosystem Additions
- Informative – Provide a dialog box by Richard Hainsworth.
- DateTime::Extended by Fernando Correa de Oliveira.
- Webservice::Gitter – An interface to Gitter REST API by faraco.
- License::Software – provides templated software licenses by Bahtiar Gadimov.
- Ddt – Distribution Development Tool a replacement for mi6 by Bahtiar Gadimov.
- Odoo::Client – A simple Odoo ERP client that uses JSON RPC by Ahmad M. Zawawi.
- Data::TextOrBinary by Jonathan Worthington.
Winding Down
This needed quite a lot of tea. See you next week!