Rakudo rocks, it has many cool and convenient features - but it also has its rough edges. Some things really need improvements.

The Rakudo developers know about these, but by shedding a light on these edges I hope that I motivate people to work on them, as well as giving fellow Rakudo users the feeling that they are not alone with their woes.

Here they are:

Missing line numbers in error messages

Can't initialize attributes in BUILD methods

Performance

The first one is pretty obvious: While parse errors show a line number in the error message, other compile time errors and parse errors don't. When debugging a larger application that's really a pain. I've been told that this is very close to being implemented, and maybe it is at the time I get this blog post published, so here is hope.

If you've only toyed around with Rakudo a bit, you might not have hit the second item on my list. Perl 6 has a rather sophisticated object model, and Rakudo implements large parts of it. But in larger applications it still feels a bit hacky because you can't use the BUILD submethod to set up attributes, it dies with a Null PMC access . Therefore one has to revert to custom init methods, and is always in danger of forgetting to call it.

Performance again is very obvious: Rakudo has a startup time of nearly a second, and both execution and compilation is very slow. Thanks to module precompilation it is somewhat manageable in bigger projects, but it's still something that needs improvement. Thankfully Allison Randal is reworking the calling conventions in Parrot, and we can hope for some speedup there.

There are other things that could use some polishing, but which seem of somewhat lower priority to me: