Skip to content

Instantly share code, notes, and snippets.

@gerdr
Last active December 14, 2015 15:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gerdr/5107342 to your computer and use it in GitHub Desktop.
Save gerdr/5107342 to your computer and use it in GitHub Desktop.

Rakudo: Not production ready

There's been some discussion on #perl6 as to what's missing from Rakudo to make it 'production-ready'.

I recently started my first moderately-sized Perl6 project, which currently clocks in with 1021 lines of Perl6 code (without documentation).

This translates to a parsing stage of 11.5s, which makes it very painful to use without module precompilation.

As there's no automatic precompilation yet, it needs to be done manually, which is tricky as compilation needs to happen in dependency order.

The problem is similar to (but actually worse than) tracking header inclusion in C projects.

With C, there are well-established workarounds like gcc -MMD and ccache. For Rakudo, there's ufo, which wasn't flexible enough for my particular use case.

Not that big a deal, though: The script I hacked up to track dependencies is just 26 lines long and was straight-forward to write.

Sadly, while this should have fixed my issues, it did not as there's apparently a bug with code generation: While everything works fine without it, with precompilation only 1 out of 3 backend modules gets registered - the other packages get dropped silently.

So what's necessary to make Rakudo less production-unready for me: The code generation bug needs to be fixed and automatic precompilation implemented.

The abysmally slow parsing speed would still be an issue, but as it can be worked around by moving code from scripts into modules (which can be precompiled), I could live with that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment