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!

Advertisements

2017.52 When it is no more

Leon Timmerman notified the community about upcoming changes in Pumpking Perl 5 with regards to the removal of when (blogs.perl.org, reddit, Hacker News comments). brian d foy reacted with a blog post of his own (Reddit comments).

Looking at these events (sort of) from the outside, yours truly can’t help but think that Pumpking Perl 5 is about to make a mistake similar to one that Rakudo Perl 6 has made: breaking compatibility. But without the advantages that Rakudo Perl 6 brings now. In other words: the proposed changes to Pumpking Perl 5 will only turn people away from Perl, rather than pulling in new users. Yours truly feels that would be detrimental to all languages in the Perl family. And that it is always better to make new mistakes.

Parsing with Perl 6 Regexes and Grammars

Nikos Vaggalis extensively reviewed Moritz Lenz‘s excellent Parsing with Perl 6 Regexes and Grammars book. Some quotes from the review:

You can easily infer that Mortiz is the definitive authority to talk to about the subject, and this book is his attempt to impart this knowledge accumulated throughout the years

Perl 6 is a magnificent language whose depth is only starting to emerge and the more you look the more you find something new

So get it, read it, get it and use it! 🙂

White Camel Awards 2017

brian d foy has announced the White Camel Award winners of 2017 (blogs.perl.org comments). Yours truly would hereby like to congratulate Laurent Boivin, Rob Masic and Kurt Demaagd on behalf of the Perl 6 Weekly readers!

Rebirth of Perl.com

Jim Brandt and David Farrell describe how Perl.com came to be and how it will evolve again in the future. Kudos to both, hoping to see good new content there in the not too distant future!

The Last of Adventing

Compiler Release 2017.12

Aleks-Daniel Jakimenko-Aleksejev released yet another Rakudo Compiler Release, in close coordination with Samantha McVey and Zoffix Znet.

Other Core Developments

  • Zoffix Znet was very busy again this week. He fixed an issue with zeroing out elements of Buf and native arrays. He also fixed a problem with IO::CatHandle switching handles too early. And fixed various issues with the slightly changed semantics of the bool-only and count-only Iterator optimization. And he introduced uniparse as the 6.d equivalent of parse-names.
  • Elizabeth Mattijsen introduced a new .WHICH type: ValueObjAt. If an object has a .WHICH of this type, it indicates that the object is a value type. Which means that different objects with the same value should be considered interchangeable. She also made sure that lists are considered value types if they consist of value types only. This makes List more DWIM in the light of things likes Set, object hashes and .unique.
  • Ben Davies made sure that Configure.pl uses gmake on BSD‘s.
  • Timo Paulssen made sure that is-prime is JITted.
  • And many other smaller fixes and error message improvements.

Other Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Winding Down

Writing the Perl 6 Weekly on Christmas Day is a bit weird. Yours truly hopes that everybody enjoys their days off (if any) and hopes this will only be read a few days from now. And also hopes to see you all again in the New Year with many more Perl 6 goodies to report on!

2017.51 🎂 Thirty Years 🎂

It was 30 years ago today. Larry Wall released the very first version of Perl to the world. Lee Johnson gives his interpretation of the 30 years that followed that first release in an excellent blog post TPC and The End of Language Dominance:

…the commit logs for the perl git repository read like a book, so they’re a pleasure to look through.

Yours truly is glad that he’s done that, so she doesn’t have to. In any case, a well written and researched blog post, and thus well recommended!

Adventing Along

Final Batch of TPCiA Videos

Amanda Crow has finished the immense job of making all of the videos shot at The Perl Conference available for viewing. For the fans of Damian Conway, there’s a treat:

Ticket Overview

Aleks-Daniel Jakimenko-Aleksejev has created a semi-automatically maintained wiki page that keeps track of the state of Rakudo Perl 6 tickets (both in RT as well as GitHub Issues). It e.g. shows that in the past week, 60 tickets were resolved! A great place to see how Rakudo Perl 6 is doing, and a source of inspiration for those of you willing to do some bug hunting!

Core Developments

  • Zoffix Znet fixed a crash when using allomorphs as enum values. He also implemented TR///, the non-destructive version of tr/// (analogous to S/// and s///).
  • Zoffix Znet also fixed make test on Windows. And WhateverCode currying with respect to respecting use fatal.
  • Christian Bartolomäus removed some no-longer needed JVM backend specific workarounds.
  • Zoffix Znet and Elizabeth Mattijsen fixed various issues of Junctions with respect to say, put, note, warn and their counterparts in IO::Handle.
  • Elizabeth Mattijsen made using substr instead of an intended subst give a much better error message.
  • Tim Smith fixed various whitespace related issues with tables in pod.
  • And some other smaller fixes and improvements.

Other Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Winding Down

Yours truly will get something nice to drink now to celebrate 30 years of Perl. Regardless of whether you prefer to work with Perl 5, Perl 6 and/or rperl, cperl, perlito, or SPVM, it’s all from the same mindset made with a love for Perl. And that’s always something to celebrate!

2017.50 Of Quasi and Injectile

Carl Mäsak reports on the progress of 007, the toy language he is developing as a proving ground for full-blown Rakudo Perl 6 macro support. Check it out if you want to keep abreast of developments in this area. Or even better, want to help Carl and his compatriots in this effort!

Adventing Along

The following advent blog posts flocked our way this week:

Core Developments

  • Bart Wiegmans fixed a problem in the JIT expression compiler that was tickled by multi-dimensional array slices.
  • Samantha McVey improved the Unicode database compiler, aka ucd2c.pl.
  • Alex Chen and Paweł Murias worked on fixing an incorrect optimization of || in nqp.
  • Zoffix Znet made some meta-operations on Rats 30%-50% faster. He also fixed a generic issue with .tail and the count-only and bool-only optimizations.
  • Elizabeth Mattijsen improved the inlinability of several internal methods. She also fixed List.new, which would not decontainerize values when it should, and a bug in multidimensional slices that would not allow Cool values as indices.
  • Tom Browder fixed some more issues with regards to tables in pod.
  • And a lot of other smaller fixes and documentation and test additions.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Winding Down

Feels like the dark days before Christmas. With a lot of snow, at least for yours truly. Hoping to see everybody again next week for another scoop of Rakudo Perl 6 goodies!

2017.49 Mischieventing

Zoffix Znet wrote the first of the Rakudo Perl 6 Advent posts and hit the Jackpot on Hacker News. Mischief achieved indeed! The Grinch would be so proud! And then there were also some Reddit comments.

Other Rakudo Perl 6 Advent posts so far:

Squashathon

Last weekend saw yet another Squashathon (yes, there is one on every first Saturday of the month). The goal of this squashathon was to go through tickets that were not updated in two or more years (these tickets are automatically labeled with MOLD tag). As a result, 121 out of 224 tickets (more than half) were updated. Most of the updates were simply about reproducing the issue with the current version of Rakudo Perl 6, but some tickets got more attention and received tests and fixes. A fuller overview of all Squashatons is also available. Kudos to Aleks-Daniel Jakimenko-Aleksejev for organizing and everybody else for participating!

Other Blog Posts

Core Developments

  • Jonathan Worthington enabled inlining on a number of exception related constructs, that were previously barred from being inlined. This resulted in the test-t canary code to run about 12% faster. And it shaved off about 12 seconds off of make spectest for yours truly. I must say this bodes well for future inlinings!
  • Samantha McVey fixed a problem with the Unicode database that showed up in the handling of the character class.
  • Timo Paulssen made the setup of a multi-needle split a lot cheaper for up to 20% speed improvement.
  • Elizabeth Mattijsen fixed :exists on Telemetry objects, as well as several mouldy old tickets.
  • And some more smaller fixes and improvements.

Meanwhile on FaceBook

  • Peter Evans:

    Since last year we had some issues with WordPress messing up code examples in Perl 6 Advent articles, Zoffix hacked up a little helper tool: You write your Advent article in Markdown, run the tool, and out it spits WordPress-friendly HTML. It does syntax highlights too, which is pretty sweet.

  • Andrew Shitov:

    The funny thing I learned today is that the atom character can also be italic 😀 (well, probably just slanted, not proper italic)

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Winding Down

Yours truly spent most of the past week on the road, and recovering from a bad cold, and a bumpy overnight ferry. On the plus side, it was good to get out and see new stuff and meet old friends in faraway places. A bit like Rakudo Perl 6 and Pumpking Perl 5 really. See you next week for more Rakudo Perl 6 news!

2017.48 Community First

People visiting the London Perl Workshop this year know what this means: it was an excellent event with a lot of high quality Rakudo Perl 6 and Pumpking Perl 5 talks and workshops. Please check out the resulting blog posts about 2 days after the event:

Yours truly was touched by the many high quality conversations about the future of Perl, and how the importance of community was expressed by so many.

The Perl 6 Recipes Book

Andrew Shitov may be at it again. He intends to write a Perl 6 Recipes Book with the help of a Kickstarter Campaign. On FaceBook he explained:

Hi, let this year be a year of the Perl 6 books. I want to make a big addition to it and publish the Perl 6 Recipes book next year. Its structure will be based on the content of Perl (5) Cookbook and Using Perl 6 and of course will include all the new cool things available in Perl 6, from Unicode to ⚛ operations.

An effort well worth supporting!

A Guide To Parsing

raiph started a discussion on Reddit about Tomassetti‘s A Guide to Parsing: Algorithms and Terminology and how Rakudo Perl 6 parsing was distinctive relative to the landscape as outlined by that guide. He would like to get feedback from the Perl 6 community about his suggestions for inclusion in Tomassetti‘s guide. Please help him get the unique grammar features of Rakudo Perl 6 better known to the world!

A unified Supply concurrency model

Jonathan Worthington describes the work that has been sponsored by Vienna Perl Mongers: how it has replaced the two concurrency models that previously backed Supply with a single unified model, and so enabled new use cases of supply and react. As usual, highly recommended reading if you want to get a deeper grasp of some of Rakudo Perl 6 inner workings.

Let’s Go!

Ahmad M. Zawawi took a hint from Jonathan Worthington: it seems that an Inline::Go project is born! I’m assuming Ahmad can use all the help you all can give him!

Other Blog Posts

Core Developments

  • Aleks-Daniel Jakimenko-Aleksejev did the Rakudo 2017.11 Compiler Release.
  • Samantha McVey fixed several issues in generating the internal Unicode database and improved error message on problems involving synthetic codepoints.
  • Fernando Correa de Oliveira fixed various issues with (not) closing the source Supply of .zip, .zip-latest and .throttle.
  • Elizabeth Mattijsen fixed a bug when doing a set difference “(-)” with a Map on the left side.
  • Christian Bartolomäus continued his quest to keep the JVM backend in working order.
  • Zoffix Znet fixed some error reporting Socket::Async, which unfortunately did not make the underlying error clearer.
  • Elizabeth Mattijsen also prototyped a new functionality in the Iterable/Seq universe: .toggle, a bit like .grep, but with a twist. For now, it is being played with by interested people, while deciding on a final API.
  • And some other smaller fixes and improvements.

Meanwhile in an alternate universe

Off-topic Alert! Yours truly has been using email for 40 years now, as well as being able to chat with other people online. Or read discussion forums. Or visit “websites”. How was this possible? It’s all discussed in The Internet that wasn’t by Sharon Weinberger. Which is a review of The Friendly Orange Glow by Brian Dear: the Untold Story of the PLATO System and the Dawn of Cyberculture. Wow, what a trip down memory lane. We will now continue with our regular Rakudo Perl 6 related news.

Meanwhile on FaceBook

  • Jeff Goff:

    Ah, the joys of conference-driven development. Test All The Things is now out, probably going to be a series, maybe even a book. It’s just a quick take on refactoring test suites in Perl 6. Maybe it goes too far, but at least it goes somewhere.

  • JJ Merelo:

    We’re starting to prepare Love Of Perl 2018, a Perl (& friends) workshop in Granada next February 14th. Interested? Want to help? DM or email or Telegram me.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Meanwhile on PerlMonks

Winding Down

Wow. What a week! Perhaps not too many core developments. But plenty of development around it. Hope to be able to top that again next week. So check in again then!

2017.47 More TPCiA Videos

In the past weeks, more videos from the The Perl Conference in Amsterdam have become available. Rakudo Perl 6 related videos that have been added:

Kudos to all behind the scenes who made the recording, processing and uploading of these videos happen!

Blog Posts

Core Developments

  • Samantha McVey made collapsing of MoarVM strands (the parts of a concatenated string that hasn’t been turned into a single string yet) about 4x faster in most cases. She also fixed a bug with the utf8-c8 encoding that would combine a synthetic code point with other code points when they shouldn’t. Finally she fixed a bug in the Unicode properties database (uppercase letters not returning the Lu General_Category).
  • Jonathan Worthington fixed a race condition related to cancellations and an optimizer issue regarding improper inlining of blocks.
  • Bart Wiegmans fixed an off-by-one error that would cause try/catch to sometimes fail on jitted frames.
  • Elizabeth Mattijsen fixed the RAKUDO_EXCEPTIONS_HANDLER=JSON feature (which outputs execution errors in JSON format) for those exceptions that contain other exceptions. She also made sure that a Proxy will no longer leak out of a Lock.protect block. Finally she made sure that an execution error in an END will not stop any other END blocks from being run. Oh, and she made concatenation of Buf and Blob objects between 1.8x and 7x faster.
  • And many other fixes and improvements.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

Format::Lisp is on the ecosystem. Not *quite* fully featured, but it handles some of the recursive directives, and the test suite will tell what it can currently handle.

Meanwhile on perl6-users

Winding Down

We’re still waiting for the 2017.11 release of the Rakudo Compiler. There have been a few blockers that turned up at the last moment, which appear to have been vanquished, at least temporarily. But not in time for the deadline for this Perl 6 Weekly. So please check in again for next week’s Perl 6 Weekly for the continuing story!