Zoffix Znet really hit the ground running this week! After announcing his IO plan, publishing his progress report for the month of March and waiting for the end of the comment period, he published the IO Upgrade Information, and after some late insights, IO Upgrade Information, Part 2, which contain an up-to-date account how things are progressing. And there’s of course the list of IO issues he’s working on. If you’re interested in these developments, please check these out. And contact Zoffix with any feedback, the sooner the better!
Improving the Robustness of Unicode Support
Samantha McVey put up a grant proposal covering the following deliverables:
- Programmatic determination of Unicode names.
- Implement Unicode collation algorithm.
- Properly support grapheme breaking in Unicode 9.0 and beyond.
- Improvements on Unicode database generation.
- Documentation of deficits in the support.
Check it out and give her your opinion!
Camelia in the Wild
A new section in the Perl 6 weekly where spottings of Camelia in the wild can be reported. This week’s spotting was at a concert of ARW in Brussels.
Try out Perl 6 online
If you would like to try out some Perl 6 code without wanting to install Rakudo, you can now also go to https://tio.run/nexus/perl6! Just type in your code, click the play button and see the result! Too bad it currently runs the 2017.01
release, which is now over 2 months old! Still, if you just want to test some code, that is pretty recent and beats many packages provided by some distributions.
NativeCall Introduction
Naoum Hankache‘s excellent Perl 6 Introduction now has a chapter introducing the NativeCall interface (explaining how you can easily call code from external libraries from your Perl 6 source code). For now that chapter is available in English only, but I have no doubt the other languages (Bulgarian, Chinese, Dutch, French, German, Japanese, Portuguese and Spanish) will follow soon!
Coverage reports
The Rakudo Perl 6 core has up-to-date coverage reports again. And now we also have coverage reports for Moar, thanks to Samantha McVey. So if you’re looking to add some tests to get better coverage, that’s where you can find which parts of the system are not tested yet!
Other Core Developments
- Jan-Olof Hendig fixed a problem with the total number of tests run using the
harness6
(aka the Perl 6 version ofprove
) while doing aspectest
orstresstest
. Which brings us one step closer to running spectest using Perl 6 by default (instead of Perl 5). - Fernando Correa fixed a problem with multi-dimensional hash slices (such as
%h{"foo","bar"; "baz"}
. - Daniel Green and Timo Paulssen fixed a problem with unsigned native
int
s that at some VM level, were not marked as unsigned. - Samantha McVey improved the speed
m:i/ /
regex matching between 1.8x and 3.3x (depending on not finding a match / finding a match at the beginning). - Jonathan Worthington improved error reporting on
Parameter
binding, allowing for a slightly better error message that includes the non-matching value and, where the constraint is a named subset type, that type name. - Apart from all of the work on
IO
, Zoffix also fixed a problem with matching in loops and$/
that affected~~
as well as.subst
,.subst-mutate
,Grammar.parse
andGrammar.parsefile
. - Elizabeth Mattijsen made a lot of set operators, as well as coercions to
Set(Hash)
,Bag(Hash)
orMix(Hash)
from 30% to 25x faster, mostly by avoiding (where possible) potentially expensive calls to.WHICH
. She also made sure thatset()
,bag()
andmix()
(aka the empty immutableSet
,Bag
andMix
) only exist in memory once. Finally, she also improvedTAI
/epoch
conversions, e.g. makingnow
about 20% faster. - And as usual many other smaller fixes and improvements.
Blog Posts
- Worried about these 5 programming languages dying? by Chelsea Babin (Too bad comments by Jeffrey Goff and yours truly are still awaiting moderation 😦 ).
- From Perl To Java by Caleb Cushing.
- But Here’s My Dispatch, So
callwith
Maybe by Zoffix Znet. - Encrypting Passwords in Perl 6 using
crypt
by Gábor Szabó (Reddit comments). - Function Call Milestone by Bart Wiegmans.
- Idiomatic Use of
Inline::Python
by Moritz Lenz. - Rakudo Star on AppVeyor by brian d foy.
- Anyone experienced with Ada? Is there a relation between Ada subtype and Perl 6 subset? by snake_case-kebab-cas.
Meanwhile on Twitter
- Generic
__DATA__
by Zoffix Znet. Hash
has.push
and.append
methods by Zoffix Znet.Perl6::Parser
now does simple indentation by Jeff Goff.with do with
is a thing by Zoffix Znet.- Comparing a bunch of elements with meta-operators by Zoffix Znet.
- Doing stuff in
proto
s by Zoffix Znet. - Pull Request for the chocolatey files for Rakudo Star by brian d foy.
Meanwhile on StackOverflow
- How to use a custom operator by 黃家億.
- Match elements in a list with another list by Anant.
- Specifying a Perl 6 class in a variable by brian d foy.
- When is a Perl 6 array clone not a clone? by brian d foy.
Meanwhile on FaceBook
The ACM has a paper on a new compiler optimization called STOKE. It calls itself “stochastic”, but they seem to mean something other than “random” … more like “capable of working outside the explicit order of operations as given”. It beats gcc -O3 by a significant margin.
Ecosystem Additions
- Sparrowdo::Cpanm::GitHub by Alexey Melezhik.
- Platform by Jarkko Haapalainen.
Winding Down
Wow, what a busy week again. Please check in again next week for more Perl 6 news!