2017.22 Up Handle Encoding

Jonathan Worthington‘s work on the IO::Handle encoding refactor has landed in Rakudo. It moves up all streaming encoding logic of reading / writing file handles to the Perl 6 level: this will make it easier to add yet unsupported encodings (like UTF-16be), and allow custom encodings to be easily added by an ecosystem module. This also simplifies what a VM backend should support regarding the encoding of data read or written using an IO::Handle: the backend only needs to support binary reading/writing (which should help on both the JVM as well as the JavaScript backends).

Short-term this may cause some performance degradation when reading / writing encoded file handles, which shall be regained when the Perl 6 encoding code gets better optimized.

Bag semantics for subset operators

The family of subset operators:(<) ⊂ ⊄ (proper subset), (<=) ⊆ ⊈ (subset), (>) ⊃ ⊅ (proper superset) and (>=) ⊇ ⊉ (superset) have gotten a lot faster and have gained Baggy semantics for Bags and Mixes. This means that the weight of an object in the Bag on the left side must be less (for (<)) or less than or equal (for (<=)) than that of an object in the Bag on the right side of the operator. Absence of an object in a Bag means it has a virtual weight of 0. The same logic is applied to Mixes. This change did not break any spectests (it even made some TODO tests pass). However, there may be some ecosystem fallout. So if you’re using these set operators in your code, you may want to verify they’re still doing the right thing.

Grep the Ecosystem

Anyone wishing to look in the ecosystem modules can now use the greppable6 bot on the #perl6 channel (on FreeNode). For example, if you would like to know which modules use the pack() command, you can do:

<lizmat> greppable6: pack\(
<+greppable6> lizmat, https://gist.github.com/0450cd99cf5bb95d70234687d457c0b7

For core developers and end-users alike it’s very nice that we have this capability, courtesy of Aleks-Daniel Jakimenko-Aleksejev!


The conference season is almost upon us in full strength: David Oswald describes the perks of The Perl Conference (North-America), to be held from 18 to 23 June near Washington D.C. (talks).

But before that, we have another fine set of Perl workshops lined up: the Madrid Perl Workshop 2017 on 3 June 2017 (presentations en Español), and the French Perl Workshop on 9/10 June in Paris (presentations en Français). And then there’s also the German Perl Workshop on 26, 27 and 28 June in Hamburg) presentations auf Deutsch as well as in English).

Then fast forward to August with The Perl Conference in Amsterdam on 9, 10 and 11 August in Amsterdam, The Netherlands. Followed by the Swiss Perl Workshop on 25 and 26 August in Villars-sur-Ollon.

Believe it or not, but almost all of these conferences still accept talk proposals:

So please submit your Perl 6 related talk proposals now!

The Perl Conference (Europe) 2018

There are only a few days left to submit your letter of intent to organize next year’s Perl Conference in Europe. If you are involved with a local Perl Monger group, get together quickly and see whether you want to do this. Having been involved in the ones from 2001 and 2017, yours truly can confirm it will be a lot of work. But the satisfaction at the end of the conference is unbeatable!

Other Core Developments

  • Jonathan Worthington also made synchronous sockets not use the underlying libuv library on MoarVM anymore. This fixed various issues when sockets were being shared between threads.
  • cono had a Pull Request merged that allows looking up the port number of an already open socket on MoarVM.
  • Zoffix Znet continued his work on the last 10% of the IO Grant, with some remarkable speedups. He also made a warning much more awesome and fixed a number of issues with smartmatching Numeric values.
  • Elizabeth Mattijsen also made some error reporting more awesome apart from her work on the set operators.
  • Stefan Seifert made RAKUDO_MODULE_DEBUG output more useful by not suffering from buffering.
  • And many other smaller fixes and improvements.

Meanwhile in Books

Laurent Rosenfeld‘s book Think Perl 6 is now for sale. The first reviews are pretty fantastic!

If you want to become proficient in Perl 6 in the minimum amount of time, and enjoy the process, this is the book for you.

In true Open Source tradition, you can also download a PDF of the book.

Andrew Shitov‘s Perl 6 At A Glance is now also available as an e-book! So if you want to save on trees, this is now also an option!

Blog Posts

Meanwhile on Twitter

All tweets this week that didn’t mention anything already mentioned in this Perl 6 Weekly are by courtesy of Zoffix Znet:

Meanwhile on StackOverflow

Ecosystem Additions

Winding Down

Wow, again, not a small Perl 6 Weekly this week. And there are so many other goodies in process of becoming available. But more about that next week. So please check in again then!


Got something to note?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s