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.