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
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
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!
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).
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
libuvlibrary 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
- Elizabeth Mattijsen also made some error reporting more awesome apart from her work on the set operators.
- Stefan Seifert made
RAKUDO_MODULE_DEBUGoutput more useful by not suffering from buffering.
- And many other smaller fixes and improvements.
Meanwhile in Books
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!
- Perlito – 4 Years On by Nikos Vaggalis.
- Playing Satoshi – Our kickstarters on a Perl 6 self-written Blockchain by Eduardo Capanema.
- The phases of a crowdfunding campaign: launching by Gábor Szabó.
- Function call return values by Bart Wiegmans.
- Perl Toolchain Summit 2017 – CPAN and Perl 6 by Nick Logan.
- Perl 6 Interactive Shell – values in
$variables by Gábor Szabó (Reddit comments).
- What’s wrong? by FuzzyBear2017.
- Let’s learn Merkle Trees! – Why they are intelligent and useful for Bitcoin by Eduardo Capanema.
- So, what about (Perl 6) dependencies? by Claudio Ramirez.
- The phases of a crowdfunding campaign: first week by Gábor Szabó.
- Try this awesome trick to make your language toolchain better by Philippe Bruhat.
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:
- Having Unicode sorted out
if 'foo' ∈ <bar foo baz>
- Consider 6 year old kids
- The Afflighem Affair
- IO::CatHandle landed in doc
$.not in core
Meanwhile on StackOverflow
- Why doesn’t Perl 6’s colon pair and name interpolation work together? by brian d foy.
- Is there a Perl 6 canonical form? by user3673.
- Can I ask Perl 6’s LWP::Simple to handle malformed UTF-8? by brian d foy.
- How to be aware of missing values during multi-value iteration in Perl 6? by hwding.
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!