2018.08 Perl 6’ya Giriş

Yalın Pala has created a Turkish translation of Naoum Hankache‘s Perl 6 Introduction, which gives you a quick overview of the Perl 6 programming language, enough to get you up and running. This now brings the total of translations to 10: Bulgarian, Chinese, Dutch, French, German, Italian, Japanese, Portuguese, Spanish and now Turkish. A fine body of work!

German Perl Workshop

The German Perl Workshop 2018 will be happening on 4-6 April, at the Campus Gummersbach of the Technische Hochschule Köln, followed by a Perl 6 Hackathon on the 7th of April. Although not yet on the program officially yet, there will be a full day Perl 6 workshop given as well. And the Call for Papers has been extended to the 10th of March! So this is the moment to propose your Perl 6 related presentations! Please check it out!

Granada Perl Workshop

It appears yours truly completely missed the Granada Perl Workshop last weekend. JJ Merelo had this to say about it on FaceBook:

We have had a fine day in front of the Alhambra loving Perl. Several talks on Perl and Perl 6, including great introductions, history, Perl for Windows and programming IRC bots, concurrency in Perl 6, all in all, a great experience. It’s been the second conference we’ve had in Granada, won’t be the last one. Here’s the album I have created, you can also check the #love4perl hashtag in social networks.

Curating and Improving Perl 6 Documentation

JJ Merelo has submitted a grant proposal for the improvement of the Perl 6 documentation. Please check out the discussion about the pro and cons of this proposal.

More Perl 6 Performance and Reliability

The grant that Jonathan Worthington requested has been approved by the Board of Directors of the Perl Foundation. So expect some really cool things to happen in the coming weeks/months on top of the excellent work that so many others are already contributing to Rakudo Perl 6.

UDP Datagram API, an RFC

Timo Paulssen would like to see comments on his proposal for an API providing source address and port of UDP datagrams. If you’d like to say anything about that, now is the time!

Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

  • Open files by given name and extension and ask for deletion by mimosinnet.
  • Swiss Perl Workshop 2018 Call for Perl 6 Keynotes/Talks/Tutorials by Lee Johnson.
  • Perl 6 in comments

    Winding Down

    Unfortunately, yours truly is still recovering from a bad cold. Enough to have a woolly head that is incapable of handling complex information. So no core developments section from me this week, will cover this week’s core developments next week. See you then!


    2018.07 A Quick One from Apopka

    While recovering from the long-planned PR&R, yours truly got a bad cold. I guess heat, alcohol and air-conditioning don’t mix too well 😦 So a short Perl 6 Weekly this time, from the town of Apopka, although it feels a bit like being in Pawnee.

    New Bots

    Aleks-Daniel Jakimenko-Aleksejev created two new IRC bots: Notable (for noting things, which is helping yours truly writing this already) and Shareable (for making builds of the Whateverable bot publicly available). By the way, the Whateverable repo saw its 500th commit!

    Better documentation

    JJ Merelo has worked hard on the doc repository which, by the way, has now surpassed the 8000 commits mark! On Facebook, he said:

    We are past the mark of the 800 issues closed in the perl6/doc repository. There’s still a lot of work to do, with 290 outstanding issues. Full disclosure here: I have applied for a Perl6 core grant to deal with this documentation.

    Cro Release 0.7.3

    Cro released version 0.7.3, with as most notable changes:

    • Support for HTTP/2.0 push promises (server and client side)
    • HTTP session support
    • body parser/serialization support in WebSockets
    • a UI for manipulating inter-service links in cro web

    It’s exciting to see these new developments making Cro the place to go to for implementing all sorts of web services.

    Blog Posts

  • push-all optimisation of List.roll by Andrew Shitov.
  • How does 0 but True work by Andrew Shitov.
  • Dumping 0 but True by Andrew Shitov.
  • Perl 6 is better CoffeeScript than CoffeeScript by ktown007.
  • Colonpair in Perl 6’s Grammar, part 1 by Andrew Shitov.
  • Colonpair in Perl 6’s Grammar, part 2 by Andrew Shitov.
  • An attempt to understand how [*] works by Andrew Shitov.
  • Other core developments

    • After having done the Perl 6 Weekly last week, Zoffix Znet continued to be very busy: among many other things, he fixed the use of slurpies in if statements (aka if 42,43,44 -> *@a { }, sprintf on type objects, optimization on native pre/post increment/decrement, implemented support for .= to initialize sigilless variables, allow for parameterized constraints when initializing attributes with .= and generally optimized the dispatch of .=.
    • Jeremy Studer removed an extranous push in code object creation.
    • Jan-Olof Hendig spotted some missing deconts in cmp handling.
    • Fernando Correa de Oliveira fixed Parameter.usage-name in the case that the name had a twigil.
    • Stefan Seifert fixed an issue in multi-threaded pre-compilation of modules.
    • And many other smaller changes and improvements.

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Perl 6 in comments

    Winding Down

    A bit shorter than usual, maybe. Please check again next week when yours truly has returned to her regularly scheduled programming. See you then!

    2018.05 Mille Plus Modules

    In the past week, the number of modules on modules.perl6.org has reached a 1000 (actually, 1024 at the moment of this writing). This appears to be mostly caused by re-implementations of Perl 5 built-ins, core and CPAN modules (35 so far, among which tie, caller, pack, unpack and -X file test operators) that have an API as close as possible to their original Perl 5 counterparts.

    Of sisters, stacks and CPAN

    Jonathan Worthington gave his thoughts (Reddit comments) on the open letter by yours truly and the following outcry on Reddit. I would like to stress that I fully agree with his takeaway:

    And, last but not least, it has been clear that – while it has in the last days often been expressed in raw and heated ways – we, as the Perl community, have two languages we’re passionate about and are keen to drive forward. Let’s do that together, in peace, not in pieces.


    Zoffix Znet describes his journey of the past weeks in Rakudo Perl 6’s QAST (aka “Q” Abstract Syntax Tree) land, how he landed a number of optimizations, created a utility to inspect QAST nodes in a browser and killed a 10-headed dragon in one fell swoop. All in all it reads like a novel and it provides a tutorial so you can have your own adventures in QAST land and survive to tell!

    Rakudo 2018.01 Compiler / Star Released

    Aleks-Daniel Jakimenko-Aleksejev did all of the grunt work again to get the Rakudo Compiler 2018.01 release out of the door. Claudio Ramirez took the hint and created Linux packages for it, which now also include packages for OpenSuse! And to make it a sum of three, Steve Mynott put together Rakudo Star 2018.01, a useful and usable production distribution of Rakudo Perl 6. All available for download and your perusal now.

    Rakudo on Javascript Update

    Paweł Murias tells us about the progression of Rakudo Perl 6 on the Javascript backend. Having 73% of the official Perl 6 test-suite pass is no small feat!

    He also implemented the Unicode Collation Algorithm as a separate Javascript module, so that Javascript developers can now also use this functionality. The power of Open Source at work!

    Grant Extension Request for Comments

    Jonathan Worthington has requested an extension of $10,000 for his Perl 6 Performance and Reliability Engineering grant. This will allow him to dedicate another 200 hours to this work. If you feel you have any comment to make on this request, please do so! Personally, I’m already looking forward to all of the goodies he will be delivering.

    London Perl Workshop 2017

    At least 2 Perl 6 videos have become available:

    Meanwhile, Barbie made the London Perl Workshop 2017 Survey Results available. Alas, Perl 6 is only mentioned in the “Are there any topics you would specifically like to see featured?” section.

    Other Core Developments

    From the past 2 weeks:

    • Daniel Green supplied many JIT templates for nqp ops in MoarVM, allowing the test-t canary to drop under 2.5 seconds (a 10% improvement). Which will most definitely also show in other benchmarks and production code.
    • Stefan Seifert speeded up module loading quite significantly by reducing the overhead of repository searching. The result is that a full spectest runs more than 10% faster (down to 300 seconds from 339 for yours truly). He also worked on better JITting of the nqp ops used in the Perl 5 / Perl 6 bridge code of Inline::Perl5, resulting in another 10% improvement on top of the work of Daniel Green.
    • Jonathan Worthington made react blocks with a single whenever significantly faster.
    • Zoffix Znet made sure post-constraints on my now work (such as my Int $a where * < 20), apart from the work he’s done in QAST land. And he made foo.&var, aka calling a sub as a method, between 2.6x and 43x faster (depending on number of multi candidates involved).
    • Samantha McVey fixed various issues in the generation of the Unicode database that underlies all codepoint property checking.
    • Tom Browder continued his work in nqp and fixed a lot of issues with Perl 6 pod.
    • Jeremy Studer fixed a number of issues on the JVM backend.
    • And many, many, many other improvements, bug and documentation fixes.

    Other Blog Posts

    Perl 6 in comments

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Meanwhile on perl6-users

    Winding Down

    Yours truly will be taking a week off, enjoying some long-planned PR&R (as in Prog Rock & Roll) in the Caribbean. And some vacation afterwards to recover. After which I will be back to be part of moving Perl forward.

    Next week, Zoffix Znet will be taking the helm of the Perl 6 Weekly. Be kind to him and to each other. Catch you on the flipside!

    2018.04 It’s time for Optimism!

    Andrew Shitov made my day with his It’s time for optimism blog post, in which he talks about some random things related to Perl 6 and its future. Well, not entirely random: the impetus for this blog post was the Open Letter to the Perl Community by yours truly (🔥🔥🔥Reddit🔥🔥🔥, Hacker News and p5p comments). But more about that later.

    Zoffix Znet also made my day. He wrote another very sensible followup blog post called Long Live Perl 5! in which he basically did a Synopsis of the Open Letter (🔥Reddit🔥 comments). I think he did a great thing there! And I am not alone.

    The Perl Conference in North America

    Are you ready to get high on Perl? Well, about a mile high, that is. The Perl Conference 2018 will be held in Salt Lake City, Utah from 17 June to 22 June. Registration is not yet available, but you can already submit a talk! So let’s get some cool Perl presentations, be they Perl 5 or Perl 6, submitted. The first round for submissions is until 28 January, so that’s only a week to go!

    Rakudo Perl 6 in production

    Following the Open Letter blog post, the question “Is Rakudo Perl 6 used in production?” was asked again. These are some of the reactions when the question morphed to: Do you use Rakudo Perl 6 in production and can you tell us about it?:

    • Fritz Zaucker

      Not yet, but I will port the backend of the web application described at www.agrammon.ch from Perl5/Mojolicious to Perl6/Cro with the help of a Perl 6 expert (name to be published if he agrees). Not a high-volume WebApplication, but certainly one used in production by various scientists and governmental agencies in Switzerland. I will let you know when it is finished. And yes, the code will be public on GitHub. This will be the first Perl 6 application of www.oetiker.chagrammon.ch

    • Solomon Foster

      I write short Perl 6 scripts for work / personal stuff all the time. For instance, this week I wrote one script to parse Parasolid schema files looking for the highest type number in each, producing a quick report of how the set of types grew over time. Then I wrote another script which found every Parasolid file in my file collection, called a C++ program to translate the file to a simple human-readable format, scanned that to determine which types the file used, and used that to build a list of which files use each type. It feels a bit weird talking about them, because, say, the second one is only 38 lines long, and that’s with no golfing, a simple user interface, error handling, etc. It’s a utility script, doubt I will ever need it again, but it was super handy for what I was working in this week.

    • Jonathan Worthington

      Here’s an (incomplete) list of some of the Perl 6 usage at Edument (the company where I work) for external customers. Names of those and details of the problem domains excluded, because of NDAs and similar.

      • Rapid prototyping to explore solutions in a source-to-source translation problem. Grammars were, obviously, very useful for this, as was just being able to get something together very quickly: we needed to get something we could show our customer as soon as possible to help figure out if we were all on the right track.
      • The core of a remote build/debug tool (which made heavy use of Perl 6’s concurrency features).
      • Various scripts at multiple other clients, some throw-away for solving one-off problems, others that live on and are run now and then.

      I’ve another job that will be delivered using Perl 6 coming up soon too. Of course, we built the Cro website as a Cro application. 🙂 And, while I can’t say what it is yet, one product we’re building at Edument and expecting to announce in the spring involves a small compiler implemented in Perl 6 in its development.

    • Zoffix Znet

      I use it at $work for throw-away one-liners and find it a lot simpler to use than Perl 5 for the same purpose.

    • JJ Merelo

      I use it for my own pipeline for producing the books I work on. Granted, it’s a set of small scripts, but it’s in production and it’s working to create, for instance, the Perl 6 book as well as the Git, Python and other books.

    • Eugene Barsky

      I’m only a recent newcomer, but I already use Perl 6 to analyze linguistic data (collecting stats while matching different patterns, making interactive console dictionaries, morphological parsing, finding orthographic variants of the same word etc.). For me it’s the best choice because of its thorough grapheme-level Unicode support, very consistent syntax, marvelous regex and grammar features and great docs. Also, I more and more use Perl 6 for small shell scripts instead of bash.

    • Simon Proctor

      Not yet, but I’ve got permission to do new projects in it and I’m working on some coding clubs to get other people at the company involved. When we have something in production I’ll tell people.

    CPAN Butterfly Plan

    The main part of the Open Letter blog post is about porting as many up river Perl 5 CPAN modules to Perl 6 as possible. In the coming week this will start to get fleshed out a lot more. Meanwhile, I’m happy to say that the past week saw the arrival of quite a few new Perl 6 modules on modules.perl6.org, making that a total count of 997 modules at the moment of this writing.

    The past week saw the arrival of Rakudo Perl 6 support for the each, times, tie, pack and unpack Perl 5 commands. The following Perl 5 core modules were also ported: Tie::Array, Tie::StdArray, Tie::Hash, Tie::StdHash, Sys::Hostname, List::Util, Scalar::Util, Sub::Util and Sub::Name. Some of these are re-imaginations in pure Perl 6 from XS only modules, some are ports of Perl 5 to Perl 6 source code. For the CPAN Butterfly Plan it doesn’t really matter what the inside of a module looks like, as long as the API is as close as possible to the one from the Perl 5 version. All these modules will be tagged with the CPAN5 tag.

    Core developments

    In preparation for the next Rakudo compiler release, which will also be a Rakudo Star release, most of the effort the past week was aimed at fixing outstanding bug reports prior to the release. So more about that next week!

    Other Blog Posts

    Perl 6 in comments

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Meanwhile on perl6-users

    Winding Down

    And what a week it was. Even though yours truly worked on her Open Letter blogpost for close to a month, with reviews and comments from about 20 people in the Perl Community (which instigated two rewrites and many, many changes in wording), many of the comments on reddit showed that I hadn’t made myself clear enough. So, to be clear, let me try explain the blog post:

    • The blog post is my personal opinion.
    • My radical idea is just that: an idea suggested by me as an amicus curiae. What the Perl 5 Porters decide to do with that idea, is entirely up to them.
    • The most important thing to take away from my blog post, is the CPAN Butterfly Plan: porting as many up river Perl 5 modules to Rakudo Perl 6 to lower the threshold for Perl 5 programmers to start using Rakudo Perl 6 and possibly provide relief for the implementation of a Butterfly Perl 5 Project.

    Please check in again next week for less drama and more advances in the world of Rakudo Perl 6!

    2018.03 Blue Note

    On the Blue Monday of 2018, it is my solemn duty to inform you that things are not blue in the world of Rakudo Perl 6 at all. The only thing missing is a good main article for the Perl 6 Weekly. So that gives it a bit of a blue note. Plenty of good stuff going on otherwise. So read on!

    Core Developments

    • Zoffix Znet was very busy again:
      • Several inappropriate useless use warnings were fixed
      • Sped up several parts of Perl 6 Actions
      • Fixed a problem with incrementing/decrementing RatStr allomorphs
      • Meta-operators (such as =~) got some improvements, with the R meta-operator (such as [R~]= for prepending a string) gaining the most: 160x faster!
      • Fixed issues with regards to the (incorrect) specification of traits
      • Made dd more resilient to handling low-level (NQP) values.
    • Jonathan Worthington added a lot of optimizations, specifically making :U in signatures faster. He also made several core methods smaller so that they would fall within the inline limit: so when used a lot, they will now be inlined, resulting in much better performance in some situations. Finally, he reworked a lot of the Supply, react and whenever internals: this made a Cro benchmark handle 12% more requests/second.
    • Jeremy Studer fixed an issue with .rotor pulling one too many times after the underlying iterator was exhausted.
    • Itsuki Toyota added better error messages for Perl 5-style pragmas and issues with versioning of use and need.
    • Ben Davies made sure that MoarVM can compile on OpenBSD.
    • Elizabeth Mattijsen added Bool candidates for x and xx operators, making x 2x faster, and xx 16x faster when given False, and made |(1,2,3) xx 42 about 3x as fast. She also made having a single LEAVE in a block about 5% faster, which will improve performance of Supply and whenever.
    • And many other smaller fixes and improvements.

    Blog posts

    Perl 6 in comments

    Sometimes Rakudo Perl 6 is mentioned in comments on blog posts that do not directly relate to Perl 6 necessarily. Yours truly will attempt to collect these and present them here for your perusal. In this first edition, Perl 6 comments from Hacker News of the past month.

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Meanwhile on perl6-users

    Winding Down

    Pseudoscientifically speaking it was the most depressing day of the year. So from now on, things can only get less depressing. And that’s a positive thought that yours truly would like to give you this week. See you next week for more news about Rakudo Perl 6!

    2018.02 FOSDEM Nearing

    With only a few weeks to go, the schedule of the Perl Programming Languages devroom at FOSDEM 2018 (on 3 and 4 February) has been finalized. These are the Rakudo Perl 6 related presentations:

    Of course, there will also be a Perl booth at FOSDEM 2018 with all sorts of free goodies such as stickers, tuits and promo leaflets. And Perl books, both Perl 5 and Perl 6, available to you at cost. Please come and visit FOSDEM, it’s big, it’s crowded, it’s in Brussels and it’s free!

    Core Developments

    • Zoffix Znet has been doing a lot in the past week. He made coercers of the type Int:D() (aka type-smileys) parse correctly, so they now work. He also fixed issues when hypering over a Blob or Buf, and made chainable operators 2.6x faster (42 < $a < 666 used to be slower than 42 < $a && $a < 666).
    • Itsuki Toyota made sure that the type-smileys were immediately used in a lot of the Rakudo Perl 6 source code to improve error messaging on faulty input with type objects.
    • Bart Wiegmans fixed some memory leaks in MoarVM.
    • Nick Logan improved the .perl of CompUnit::Repository::FileSystem (aka CURFS) and CompUnit::Repository::Installation (aka CURI) objects.
    • Moritz Lenz made Proc.status a read-only attribute, which it should have been from the beginning. He also improved the LTA error message when trying to interpolate a hash into a Regex.
    • Jeremy Studer made sure that negated chained operators work correctly.
    • Elizabeth Mattijsen made creation of Date and DateTime objects 1.6x faster. She also fixed .skip(*-3), which was documented to work, but didn’t.
    • And many other smaller fixes and improvements.

    Blog Posts

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Meanwhile on FaceBook

    Winding Down

    It was a week with a lot of people on well deserved holidays. But still a lot happened in the Rakudo Perl 6 world. So this is promising for the coming week. See you then again? And be safe!

    2018.01 Perl 6 Alerts

    Zoffix Znet announced (Reddit comments) a new way for the Rakudo Perl 6 core development team to communicate with its users, using all of the current ways of dispatching alerts in the social media world we live in: Perl 6 Alerts, with an associated RSS and Twitter feed. And if that’s not enough, you can write your own alerter using the API with the WWW:P6lert module. All of this put together in a few days using Cro and the Rakudo Perl 6 Programming Language. So please make sure you subscribe to the desired means of alerting if you want to keep abreast of Rakudo Perl 6 core developments.

    Yours truly wonders whether the publication of yet another Perl 6 Weekly would warrant an info level alert or not. Probably not.

    Keeping on Adventing

    It appears that Andrew Shitov can’t be stopped either: Perl 6 Inside Out is his new daily (yup, daily) blog about reading the Rakudo Perl 6 source code. As he stated on Facebook:

    It was so nice to write something for this year’s Advent calendar that I decided to continue. It was a surprise to me that the sources of Rakudo are so interesting material to explore and read, and I want to share that feeling 🙂 Hopefully, daily.

    So far, he has posted:

    Guess what? Even yours truly learned a few tidbits from these posts, so please keep them coming!

    But that’s not all: he also re-started his Russian language Вечерний Perl 6 (Evening Perl 6) daily blog posts with an overview of Rakudo Perl 6: Что где про Perl 6 (What about Perl 6?). So check it out, if you can!

    Yearly Statistics

    In 2017 the Perl 6 Facebook Group has gained 127 new members (from 340 to 467 members, so an increase of 35%). On the commit front: well over 10000 commits of which 2272 documentation, 1669 roast, 1829 MoarVM, 1258 NQP and 3507 Rakudo commits (and 370 Rakudo Pull Requests). On the release front: 14 MoarVM, 15 Rakudo compiler and 4 Rakudo Star releases. 842 lines in the MoarVM ChangeLog and 1368 lines of ChangeLog in Rakudo. 768 Tweets on the Perl 6 News Feed, 266 Questions on StackOverflow and at least 123 questions on the perl6-users mailinglist that got mentioned in 52 issues of the Perl 6 Weekly. 238 tickets got resolved and 241 new tickets got added in the 20 week period in 2017 when these statistics were centrally kept. Seven Perl 6 books got published. And 3 new core developers got their Rakudo commit bit. Let’s try to top these numbers in 2018!

    Other Blog Posts

    Core Developments

    • Zoffix Znet was very busy again: among other things, he fixed some dispatch issues with .is-prime and fixed Whatever.ACCEPTS handling of type objects. IEEE-style Rationals for ±Inf/NaN Num conversions got overhauled, fixing 3 tickets in one blow. And he improved the USAGE message of MAIN quite a bit. And he fixed an issue with the flushing of TTYs on Win10.
    • Zoffix Znet also did some performance enhancements: Blob.subbuf is now 1.8x faster, and an if in sink context that evaluates to False, is now 3.4x faster.
    • Jeremy Studer made sure that interpolated quotewords (qqww or « ») don’t produce a Slip if they only consist of a single word, and that assigning to an element of a Range produces a better error.
    • Christian Bartolomäus continued his quest to keep the JVM backend, and the testing of it, in working order.
    • Dan Zwell made sure the %zu printf format is not used on Windows, as it’s unsupported there.
    • Timo Paulssen made sure the nqp::isprime op gets JITted. This removes any unnecessary overhead of determining primality on a large set of numbers. He also made adding an Int to a Rat 22% faster, and fixed a problem with Buf.subbuf‘s handling of degenerate Ranges such as 10..2.
    • Elizabeth Mattijsen sanitized the behaviour of Range.pick and Range.roll on degenerate Ranges.
    • And many other smaller fixes and improvements.

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Meanwhile on perl6-users

    Meanwhile on Perl Monks

    Winding Down

    It’s always weird in the first Perl 6 Weekly of the new year to be reporting about things in the previous year. Especially when the first Perl 6 Weekly of the year is published on the first day of the new year. To yours truly it feels that all of this is a bit of old news, in preparation for some pretty amazing things that will come to the world of Rakudo Perl 6. So, please check in again next week for some serious new stuff of 2018!