This week (which includes today) saw the development and merge of asynchronous input/output operations to MoarVM and the introduction of timers to both the JVM and MoarVM backends. Here’s the details on this little piece of the puzzle:
- There now is an extra thread on MoarVM that takes care of sundry eventloopy things. Currently we have asynchronous sockets (both server and client), file modification watchers and signals implemented. If you want to get a feel for the API, here’s a thoroughly simplified web server as well as a thoroughly simplified http client.
- Timers are implemented as a supply that periodically sends a value out to its taps. See this gist for a simple example.
This is not the only thing that’s happened over the week. There’s also been a release of Rakudo, NQP and MoarVM. The corresponding parrot release was sadly not terribly exciting. Pretty much all the things that are new in this release have been covered before on this blog, but you can look at the release announcement to see what we deemed exciting.
There are of course notable changes to Rakudo in general:
- thanks to lue, Pod code blocks are now properly parsed if they are inside formatting codes.
- there is now a :rw adverb you can pass for opening files. Nami-doc was kind enough to fix this.
- Mouq fixed how delimiters inside a quoting construct are handled. Notably, the code q< \< > will now properly generate ” < ” rather than ” \\< “.
- A bunch of multithreading related bugs have been found and fixed over time.
- lizmat implemented a whole bunch of supply features (map, uniq, squish, zip, buffering, …) along with a bunch of tests
Following this week’s Rakudo release, we’ll be releasing a Rakudo Star that supports building all three backends, though only Rakudo-Parrot and Rakudo-Moar are able to pass all tests that come with the modules. This has been a long time coming, and I’m quite happy that we’ve finally reached this point :)
In other news, tadzik blogged about his new game, which is part of an on-going effort to build small games regularly and develop the game framework “Steroids”.
Finally, I’ve saved the coolest thing for last:
The Perl Foundation has been accepted for Google’s Summer of Code with the following projects:
- brrt will be developing a JIT compiler for MoarVM. He’ll be blogging about his progress on a blog he set up for the project.
- Chirag Agrawal will be improving the performance of Parrot’s Method Signatures implementation.
- Filip Sergot will be working on LibWWWPerl for Perl 6 including SSL/TLS support!
And there’s two more projects that are not directly related to Perl 6:
- skullbocks will be working on Google@Home compatibility/libraries for perl5.
- Talina Shrotriya will be improving MetaCPAN by way of bug fixes, Web of Trust functionality and API documentation.
However, I think since Perl 6 modules are going to be on CPAN in the future, the MetaCPAN project could very well benefit us directly as well.
I have to apologize for the timing of this post; since today’s a holiday, I totally forgot it’s actually a monday until very late in the evening.
That’s it for today. I wish you all a pleasant week! :)