Programming, Software and Code

Parrot: The Final Countdown

Okay, so it's not quite final, but we are one week away from the next release, and I'm the release manager. I'm already starting my preparation for it. We only have a week left, and I requested that major changes not land into trunk after Saturday, but I have high hopes that a lot of cool new things will happen soon.

I asked on the list that people try to focus on a few major tasks for the release:
  1. Update the NEWS and PLATFORMS files. Specifically, there are several platforms that haven't been updated since 2008, and it would be awesome to get them updated.
  2. Priorities: HLL interop is on the roadmap for this release as being a high-priority item. Also, several developers have asked for better profiling tools. I have offered a bounty of one batch of brownies (chocolate or blonde, by request) for the first person to deliver good PIR-level profiling tools, before Saturday (when I requested big changes not be made any more). Write a good code profiler, get free brownies. Can't beat that.
  3. There are some items in Deprecated that were eligible in 1.1. If some of those could disappear, awesome.
  4. Documentation.
  5. Close tickets.
  6. Blog! Coke requested at #ps today that people blog about their progress on Parrot to help spread the message and build some interest in the progress.
The io_rewiring branch landed in trunk today and appears to have exposed a transient heisenbug. chromatic found a reliable way to reproduce it, so now it's just a matter of time before one of the great Parrot minds finds the cause and resolves it. Next on the IO agenda is another branch to do some more cleanup and optimizations, and to do more integrating of Socket and Pipe PMC types into the IO API. Following that, I want to kick off the AIO work I've been planning.

Allison committed her remaining local changes to the pcc_rewiring branch, and I'm hoping that a few eyes looking over it will help resolve the remaining problems. I doubt we'll get the branch merged into trunk before the Tuesday release, but I do hope we can get it committed not long thereafter. Once that branch finally lands, I'll be ready to start on Garbage Collectable Contexts, which I've been planning for a long time too.

Cotto sent me a link today to a cool GC-related research paper that I have already gotten some fun ideas from. I don't know when I'll have time to do any GC work, but I can't wait too long: It's on my task list for 2.0.

So thats the pre-1.3 release recap, plus a little extra information too. Here's hoping things go smoothly from here on out.


Who is responsible for having a proper threads implementation in Perl6 ? Parrot or Rakudo ?

Good question Stefan. Parrot is supposed to provide all the basic functionality that languages will need, but the compiler itself is responsible for the particular implmentation. Parrot provides a threading API, Rakudo uses that API to produce it's own threading commands and primitives.

So in short, it's 50/50. Parrot has a threading system in place now, but it needs some cleaning and various improvements. I think it provides enough now to implement a basic threading system, but I don't know what all is necessary to completely support Rakudo's needs.

This entry was originally posted on Blogger and was automatically converted. There may be some broken links and other errors due to the conversion. Please let me know about any serious problems.