2017.21 YAP6B

Or in other words: there’s Yet Another Perl 6 Book in the works! Gábor Szabó has started a crowdfunding campaign to write Web Application Development in Perl 6. Subtitled: “Introduction to web application development using Perl 6. Including several sample applications.” Which would be the 6th Perl 6 book to come out this year! You can already support this effort for as little as 10 US$! I can only agree with Damian Conway in his endorsement: “Take my money, dammit! :-)”. So please support this effort in any way you can!

Unicode Property Names

Samantha McVey is soliciting comments on solving issues with the <:foo> Unicode property syntax that may have overlapping result sets. She’s working on this as part of the Improving the Robustness of Unicode Support grant. In her blog post she describes the issues at hand. Please join in if you think you can help!

Rakudo Compiler Release 2017.05

It’s getting almost as common as landing a rocket on a 10m x 10m spot after delivering a cargo to the edge of space. But it should be kept being mentioned nonetheless! Zoffix Znet and his trusted flock of bots have released the 2017.05 Rakudo compiler last Saturday, with quite an impressive set of changes: more than 300 commits in the rakudo repository alone. If you’re a Docker user: J.J. Merelo already provided a 2017.05 Docker image.

Camelia in the Wild

Well, not entirely in the wild, but a great sight nonetheless (courtesy Lee Johnson)! And here’s a more symbolical sighting (courtesy Nick Logan). But this one takes the cake (courtesy Zoffix Znet)!

Issues with modules of a specific author

If you are a Perl 6 module author, or if you want to find out which modules of an author currently have issues, you can now easily get a list: e.g. the list for Zoffix Znet can be seen at modules.perl6.org/todo/zoffix. Please substitute the name you want at the appropriate place. Or go to modules.perl6.org/todo if you want to see them all!

Perl 6 on Exercism

A Perl 6 track has been opened on Exercism, the place where you can level up your programming skills, especially if you are a (Perl 6) newbie! Personally, I really like the Exercism tagline:

write code like it’s prose

It shows an appreciation for the art of programming that is often seen missing in business.

400 Years of Perl 6 in Oslo

Damian Conway will be giving a freely-accessible presentation of his “400 Years of Perl 6” talk this Wednesday in Oslo, Norway. Highly recommended!

Core Developments

  • Zoffix Znet continued working on the IO Grant, which is now nearing completion: among other things done, IO::Handle.words now accepts a $limit positional parameter. He also made Promise and Promise.then more subclass friendly. Finally, prompt can now be called without any parameters.
  • Elizabeth Mattijsen did a lot of work on Sets, Bags and Mixes and various set operators again, making some operations between 1.1x and 50x faster. She also added support for Setty.pickpairs, which was somehow forgotten so far.
  • In preparation for the release, there were only a few more fixes and improvements this week.

Other Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Ecosystem Additions

Winding Down

Didn’t think after last week’s Perl 6 Weekly that this week’s would be quite this large again. Perhaps I should start to schedule a whole day to write the Perl 6 Weekly in the future. Let’s see. Check in again next week for more Perl 6 news!

2017.20 Crossing The Alps

Four days of continuous hacking on the future of Perl. Whether that be Perl 5 or Perl 6. That was what the Perl Toolchain Summit was about. Thanks to the sponsors, 36 developers worked on the Perl Toolchain: from fixing bugs and security issues on PAUSE, adding features to MetaCPAN and CPAN Testers to integrating the Perl 6 Ecosystem into the Perl toolchain. Yes, you can now upload your Perl 6 module to CPAN using Shoichi Kaji‘s mi6, and install it using Nick Logan‘s zef. And that all without interfering with the indexing and testing of Perl 5 modules. We’re also very close to being able to submit results of Perl 6 module testing as CPAN Testers smoke reports!

Stefan Seifert describes it very well in his first blog post ever. For yours truly it felt that finally the ideas that had circulated almost 5 years before at the Perl Reunification Summit, had finally come to fruition.

By the way, there is also a complete list of results of the 2017 Perl Toolchain Summit. Currently visible changes to Rakudo Perl 6 itself are:

  • perl6 -V output now contains more information and is sorted for better optical searchability. It also includes any information from the new System::Info module if that module is installed.
  • Compiler.verbose-config now returns a two-layer Hash, which allows easy lookup of particular values. This Hash however stringifies to perl6 -V output.
  • $*KERNEL now has an .archname method, for integration with CPAN-Testers.
  • VM.osname is now a quick way to get at the identifier name of the Operating System under which the backend was configured, similar to $^O in Perl 5.

Speeding up Perl 6 Development

Jonathan Worthington is looking for further funding of his excellent work on Rakudo Perl 6 and the MoarVM backend. As he states:

Making MoarVM run Perl 6 faster means working on the dynamic optimizer, which needs a good deal of care to avoid doing the wrong thing really fast. And driving forward the design and implementation of Perl 6’s concurrent and parallel features also requires careful consideration.

Please check out the details of the proposal in his blogpost: if the company you’re working for wants to be serious about supporting Perl 6 development, this is an easy and low-threshold way to do it! Please have a look at his latest grant report to get an idea about the quality and scope of the work that Jonathan does!

Perl Events Photostream

At the Perl Toolchain Summit Lee Johnson started a Perl Events Photostream. It’s good to see the Camel and Camelia living together side by side!

Other Blog Posts

The End Of An Era

For over 6 years, panda has been the de-facto module installer on Rakudo Perl 6. But it seems to be that all good things must come to an end. In the past 2 years, panda started to fall behind the new shiny zef. At the Perl Toolchain Summit, Tadeusz Sośnierz (tadzik) marked the project, that he started in 2011 in the very early days of Rakudo Perl 6 and worked on for so long, as deprecated. We all owe a lot to tadzik and all the other contributors, such as Tobias Leich, Moritz Lenz and Stefan Seifert for their work on panda. So I think a big Thank You! is in order.

It’s at moments like these that it is hardest to realize that many times it is about the journey, not about reaching the goal!

Other Core Developments

  • Zoffix Znet did a tremendous amount of work for the IO grant again. Apart from that he also fixed testing with Junctions.
  • Samantha McVey fixed +> (aka right bit shift) for Ints.
  • Elizabeth Mattijsen worked on Bags and Mixes: some efficiency improvements and some bug fixes needed because of earlier efficiency improvements.
  • First time contributor eater submitted a Pull Request to add a .ready method to Proc::Async, which was accepted after some tuning.

Meanwhile on Twitter

Meanwhile on FaceBook

  • Jeffrey Goff:

    The OSCON Perl 6 tutorial seemed to go well yesterday, now that I’ve had some time to reflect on it, and a bit of unknotting at the party, not to mention a few chances to exercise my rusty Mandarin Chinese. People were actively participating, doing exercises and I caught a few people even typing in code from random slides in disbelief, “does that really work?”

  • H. Merijn Brandt:

    Text::CSV now also successfully uploaded to the Perl 6 section on CPAN!

  • Jonathan Stowe:

    Quick heads-up if you happen to be using, or planning to use, Pg::Notify. I discovered an annoying flaw that prevents it from listening for more than one notification on the same database connection, I’m pretty certain no-one has tried this as I haven’t had a bug report with a rather upsetting memory dump and stacktrace 🙂

    If you need to have more than one instance of Pg::Notify in your application you *must* open a new DBIish connection to the database for each one for the time being. Not doing so cause BOOM!

Ecosystem Additions

I think this is a new record for number of new modules in a week!

Winding Down

It’s hard to wind down after such an intense week. Pretty sure there will be more exciting things to report next week. So, until then!

2017.19 Albatross_I

The past week felt a bit dreary, the weather was meh, and MoarVM had some telemeh issues on ARM processors. And there were some discussions on how to treat non-Int values in situations where Int values are expected (do we floor, fail or throw?). I guess these things came to the front more because there was not a lot else going on this week.

Rakudo on Ubuntu on Windows

Claudio Ramirez tells us that the Ubuntu 16.04 Rakudo packages were made compatible with the Windows 10 Linux Subsystem (AKA bash in Windows 10). Just run /opt/rakudo/fix_windows10 after install.

telemeh

Timo Paulssen has been working on his telemeh for MoarVM project. It basically spits out little status messages at a very high speed and high accuracy. Because instead of asking a clock of some kind, it just reads the “number of cycles elapsed since some point near the beginning of the process” register out of the CPU. It’s also thread-safe, much like the other profiler isn’t really at the moment. The idea is to eventually have a nice GUI-ish frontend that could let you analyze the telemeh-log at a higher level. It’s inspired by a product called “telemetry” by RAD Game Tools.

Core Developments

  • Zoffix Znet fixed another few IO related problems and a number of issues surrounding cached Seqs.
  • Nick Logan fixed a case of premature deletion of bin wrappers.
  • Daniel Green fixed a problem with trying to rotate an empty List. He also improved error messages when a feed operator is used improperly. And he did quite some optimizing work in NQP land.
  • Elizabeth Mattijsen worked a lot on improving the speed when randomly selecting elements from Maps, Hashes, Sets, Bags and Mixes.

Blog Posts

Meanwhile on FaceBook

  • Nadim Khemir:

    I started porting the old DHTML dumper to Data::Dump::Tree. Here is an example you can load in your browser. It seems that google won’t share an html file directly. Just download it and open it in a browser.

Meanwhile on Twitter

Meanwhile on StackOverflow

Ecosystem Additions

Winding Down

Pretty sure we will see some good Perl 6 things coming from the Perl Toolchain Summit! So check in again next week!

2017.18 Starlight, Starbright

Thanks to Steve Mynott, we have another Rakudo Star release: R* 2017.04 is now available for Unix, MacOS and Windows. The announcement has many “too many to list” bullet points. Which is correct, because a lot was improved in Rakudo Perl 6 and the ecosystem in the past 3 months since the last Rakudo Star release.

Perl Developer Survey

The good people of BuiltInPerl published the results of the yearly Perl Developer Survey. Alas, not a lot of useful information about the adoption of Perl 6 yet, but I have a feeling we will see that in next year’s edition!

Unicode Grant

The Unicode improvement Grant Proposal by Samantha McVey has been accepted! Looking forward to seeing more of Samantha McVey‘s excellent work!

Core Developments

  • More than half of the modules in the ecosystem now have a properly specified license field in their meta-information. Check out Samantha McVey‘s blog post to see why that is a good idea.
  • Zoffix continued his work on the IO grant, with many fixes and documentation improvements. He also fixed various issues with andthen and orelse.
  • Paweł Murias fixed the code to check for 32-bitness of the build not only on the MoarVM backend, but also on the Javascript backend!
  • Stefan Seifert speeded up module loading a bit more still. It also appears we’re getting really close to shipping binary packages of modules!
  • Stdin and stdout are now correctly selected for the right type of (error) messages coming from the Perl 6 NQP bootstrap. Thanks to Jan-Olof Hendig!
  • Elizabeth Mattijsen improved the speed of the (+) and (.) set operators by 2.5x upto 60x.
  • Jonathan Worthington made sure that roles with native attributes that have a default value, work with the standard .new object initialization logic.
  • And as usual, many other smaller bugfixes and other improvements.

Blog posts

A Flash from the Past

Ingo Blechschmidt pointed yours truly to a nice set of slides about the history of Pugs. If you’re new to Perl 6, it might give you some perspective on the shoulders of giants on which the currently most active version of Perl 6 has been built.

Meanwhile on the book front

It is now official: the Perl 6 book that Moritz Lenz is working on (previously called Perl 6 By Example), will be published by Apress as Perl 6 Fundamentals – A Primer with Examples, Projects, and Case Studies. This means we now have two mainline publishers publishing Perl 6 books (the other being O’Reilly with Think Perl 6 by Laurent Rosenfeld). Who, incidentally, had an interview about his book with brian d foy. Highly recommended!

Meanwhile on Twitter

Meanwhile on FaceBook

  • Jeffrey Goff:

    The beginnings of Six::Zilla are out – Dist::Zilla for Perl 6, driven pretty much entirely by a plugin directory. Haven’t done much yet but it’s a start. With the main notion that 6zilla upgrade-dist will do things such as check JSON for invalid or missing fields and update those, check README for mentions of outdated tools. I want to be able to release a full Test-Distribution suite along with this so that module authors can run that check and use the upgrader to handle the simple changes.

  • Joe Bukhari:

    Perl 6 has changed the way I write. the colon on method arguments makes me happy. I am person who gets happy about syntax, hello Perl bros and sisters guys, sorry I typed it like that. I am just accustomed to typing out Perl 6 in the command line, a place that is good for using Perl 6

  • Jeffrey Goff again:

    @OSCON 2017 discounts are out! Use SPEXPO for a free Expo Hall pass, or message me for 20% off any other pass! Also don’t forget to come see me live on stage delivering a Perl 6 tutorial, one of ORA’s hottest up-and-coming languages!

Meanwhile in Academia

Damian Conway is busy showing students the best Perl 6 has to offer:

Fortunately, an adapted version of the Parsing Techniques class will also be given as a tutorial after the The Perl Conference US (23 June, Washington DC).

Meanwhile on StackOverflow

Ecosystem Additions

Winding Down

Phew! A lot more to write in the Weekly than I thought. Fortunately, I was only mildly distracted by some crazy rocket science in action. Check in again next week for more crazy action in the Perl 6 world!

2017.17 Interesting Times

Indeed. The past week saw the Rakudo Compiler Release 2017.04 have several point updates. Zoffix Znet explains it all in The Failure Point of a Release. The good news: if you’re waiting for a Rakudo Star Release of 2017.04, a release candidate is now available for testing. So please do!

Distribution License

Samantha McVey found that a lot of distributions in the ecosystem have a poor definition of the license they are released under. So she wrote a call to action in: Camelia Wants YOU to Add License Tags to Your Module! So please do!

The Perl Conference – US

The preliminary schedule for the Perl Conference - US on 19-21 June (formerly known as YAPC::NA) is now available. Please note that Damian Conway will be giving some interesting Perl 6 related tutorials!

Core Developments

  • Stefan Seifert fixed an issue with a packaged Inline::Perl5 trying to access a Proxy‘s FETCH method. A problem with the %?RESOURCES hash and NativeCall library name resolution was also fixed. He also made dependency resolution no longer depend on filesystem timestamps.
  • Zoffix Znet continued his work on the IO Grant apart from teaching his bots new tricks.
  • TimToady made user grammars work more like classes, specifically with regards to .new.
  • dogbert17 found the source of a problem with the HARNESS_TYPE=6 spectesting, which Timo Paulssen then fixed.
  • And some other smaller fixes and optimizations, apart from the ones that Zoffix Znet already mentioned.

Blog Posts

Wow, what a nice bunch of blog posts!

Meanwhile on Twitter

Meanwhile on StackOverflow

Ecosystem Additions

Winding down

Yours truly missed most of the excitement the past week on account of being on the road a lot. In a way, I’m glad I did. On the other hand, feels like I should have been around. Ah well, you can’t have it all. But if you want more, please check in again next week for more Perl 6 news!

2017.16 IO Hits The Road

Zoffiz Znet and his trusted bots just came out with the 2017.04 Rakudo Compiler Release. It contains the culmination of the IO grant work. A Rakudo Star release should be expected within the next few days, based on this compiler release. Apart from the IO work and all of the other optimization work that has been done, one thing to particularly note is the work that Samantha McVey has done on Unicode support and case-insensitive regex matching. Please have the appropriate amount of more efficient fun!

Perl Toolchain Summit

The Perl Toolchain Summit is now less than a month away. Some people actively developing on Perl 6 will also attend. There are even some Perl 6 related entries on the Project List. Hope to see more Perl 6 related items there soon. And to finally be able to make CPAN support for Perl 6 modules an actual thing!

Core Developments

  • Timo Paulssen made it possible for Grammars to precompute their NFAs during precompilation, allowing them to be stored in precompiled modules.
  • TimToady continued working on a refactor of Match objects and cursor, which hasn’t produced much improvement yet because of all scaffolding still needed.
  • Paweł Murias undid the bitrot that broke the Allocations tab in the output of --profile.
  • Stefan Seifert fixed an issue with compilation stores without write access, as well as some issues when using the Staging repo.
  • And many other bug fixes and a lot of work on the IO grant, of course!

Other blog posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

Jonathan Stowe says:

If you have been experiencing difficulty accessing certain https web sites with one of the various HTTP clients, you may want to upgrade to the latest OpenSSL module – I’ve just implemented supported for the TLS server name extension which is required for an increasing number of virtual hosting arrangements. It also fixes Webservice::Soundcloud.

Ecosystem Additions

Winding Down

Unexpectedly brought to you from Copenhagen, Denmark. See you again next week for more Perl 6 news!

2017.15 Kaboom! ⁽¹⁾

Zoffix Znet did a massive amount of work on the IO Grant. Some of the highlights:

  • Clean up &open and IO::Path.open.
  • Clean up and improve all spurt routines.
  • Give $*TMPDIR a container.
  • Implement IO::Path.extension 2.0.
  • Fix ambiguity in empty extension vs no extension.
  • Implement IO::Path.concat-with.
  • Remove IO::Path.abspath.
  • Make IO::Path::* actually instantiate a subclass.
  • Make IO::Path throw when path contains NUL byte.

All in all a very good weekly result!

Other Core Developments

  • Samantha McVey made literal string matching (aka nqp::index) 2x faster, by either using the Knuth-Morris-Pratt algorithm on Linux, or the Crochemore-Perrin algorithm on Windows and MacOS.
  • Jonathan Worthington added support for serialization/deserialization of native hashes, and wondered how we could have done so long without.
  • Elizabeth Mattijsen implemented support for (*-N) for .head and .tail. @a.head(*-5) will now produce all values of @a except the last 5. @a.tail(*-5) will now produce all values of @a except the first 5. And this is all lazy on Sequences.
  • Zoffix Znet also awesomified the unhandled Failure in DESTROY message, as well as implemented a skip-all option to Test‘s plan.
  • Lloyd Fournier fixed an issue with Code.ACCEPTS.
  • TimToady made sure that for $x() will no longer be a Perl 5 confusion type error. Instead, it will now only die if there is a space before the ().
  • Elizabeth Mattijsen also continued her work on set operators and coercions to / from Sets, Bags and Mixes. Some improvements are like 250x faster, others just a few % (but those were generally done to really hot code paths and/or to reduce memory pressure).
  • And many more improvements and smaller bug fixes.

Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Ecosystem Additions

Winding Down

Apart from these visible results, a lot of work is being done by TimToady, Bart Wiegmans and Paweł Murias that hasn’t come to full fruition just yet. Yours truly is very anxious to tell about them in the (near) future! So check in again next week!

⁽¹⁾ With apologies to Jonathan Stowe.