Even though the Rakudo compiler release 2014.02 was just last Thursday, there have already been a few interesting changes.
- for-loops no longer eagerly gobble up all of the list you pass to it before starting to run. This makes for loops properly lazy in all regards.
- in a set of branches called “moar-conc”, jnthn and JimmyZ and I have been abstracting away the JVM specific code from the concurrency classes and partially implemented the corresponding things on MoarVM. Threads, reentrant mutexes, and blocking queues are available already. ThreadPoolScheduler works, but is currently lacking its time-based scheduling functionality. The next step towards having “start” and “await” work is the Promise class itself.
- Mouq and lue have been working on improving Pod6 support both in Rakudo’s parser and Pod::To::HTML. Among other things, lue started work on a POD to Pod6 converter that will at some point convert all the synopses to Pod6 – at least as an experiment.
- Mouq has also contributed a bunch of documentation to doc.perl6.org, namely IO::FileTestable, IO::Handle, Mix, MixHash, Mixy, QuantHash, Set, SetHash, and Setty. moritz started the regexes reference document.
- Coke has triaged a whole bunch of bugs in RT. There are now a bunch of tests tagged “testneeded”, which is a good starting point to get into Perl 6 development. We are aware that you are likely to receive a warning about a possible Cross-Site Request Forgery resulting from this Link. We are looking for a sensible solution to this, but as long as the warning is about “A malicious attacker may be trying to modify or access a search on your behalf.”, you can use the link “click here to resume your request” to get to the search results.
Raiph has pointed out, that there are also IRC summaries of #perl6 and #moarvm. Select a day from the list and click “summary” to find it. Usually the summary for a day is available by the next day. Another thing to look at for finding out what Perl 6ers are up to would be the Perl realm on questhub.io. There are also Perl5ers there, but you can somewhat easily tell which quests belong to Perl 6 and which do to Perl5.
I’ve been distracted over the Weekend, so I didn’t pick up too many hints on what our community members are up to right now, and the freenode netsplits haven’t been helping either.
One thing that I did hear is that jnthn wants to have a look at NativeCall on MoarVM soon.
Additionally, now that the JVM has NativeCall, we are going to be working on the Rakudo * infrastructure to support multiple backends properly. It’s likely, that Rakudo * 2014.03 will be available with Rakudo-JVM. It’s not quite as likely, but still possible that Rakudo * MoarVM will arrive in the same month.
Things you could do
Not only are there now a bunch of “testneeded” bugs in RT right now (see above), but a friend told me about JVM’s “SwitchPoint” functionality, which could be used to strongly hint to the JVM JIT that all the instanceof usages in Ops.java are very likely to succeed and very unlikely to fail. Investigating whether or not this will give a noticable performance improvement and then actually implementing it sanely across the whole Ops.java file would be a nice beginner’s project.
Another thing that’d make a decent beginner’s project would be to come up with some sane benchmarks to contribute to the perl6-bench project. It would be enough to implement the benchmarks in one of NQP or Perl 6, but if you want to port it to Perl5 as well, that would be nice. Making sure the richards benchmark works properly on nqp-moar and porting it to Perl 6 and/or Perl5 would be much appreciated.
Nobody has yet signed up as the release manager for this month’s Rakudo * release, so maybe you’d like to help? The whole process is described step-by-step with mostly copy-paste-able code snippets in that same document, and the people of #perl6 would be eager to answer any questions you come up with.
Something somewhat easier to do is to start a test suite for numeric formatting – things like floats and rats in combination with “say”, “print” and “printf”, as well as the .fmt method. Optionally, you can also fix the bugs in Rakudo, NQP, or MoarVM that you find. An approach that automatically generates either the test file or individual tests may be a good way to tackle this project.