I’ve recently launched an experimental service called RakuPlay. It allows users to run Raku code snippets against different version of Rakudos including Rakudo developers SHA commits.
It also supports automatic Raku modules installation using Rakufile syntax.
A common user page looks like that:
Rakudo developer page allows to run a code against certain Rakudo commits:
Once a user hit a “submit” button RakuPlay will run a code on a respected docker container ( you can also choose an OS image ).
It takes awhile when runs first, as RakuPlay environment is not set up, but next runs should be pretty fast (as RakuPlay will reuse existing environments ).
Once code is executed a user might find a code execution report through available reports:
Reports are kept in a system for awhile ( 10K maximum ), so you can share a build with others via http link – see for example HTTP::Tiny report or Initial set of tests one dim native shaped str arrays report
The future of the project
I started the project just for fun and because 99% of a code was already there as a part of Rakudist project.
If Raku community finds the project promising maybe I could invest more time in it.
Some benefits from my point view:
For Rakudo developers:
* Rakudo Commits. Rakudo developers could easy run any code (including usage of Raku modules) and share results. One don’t need to have a Rakudo compiled to a certain version to run a code against, all you need is a browser.
* Common Platform. Rakuplay could be a common platform for all devs to share results, discuss, etc. Rakuplay could contain code examples, user scenarios, use cases and test results. It could be a good addition to the irc channel.
* Quick Tests. Sometimes people forget or don’t want to write test cases for their commits, maybe because it’ll take a bit more efforts in comparison with code changes ( Somehow I’ve found quite a number of “tests needed” issues in Rakudo repo ), RakuPlay could be a “draft” where an author of commit or issue could reproduces their idea in a code and give a link to others. Later one can pick up an existing RakuPlay build and “replay” it against another commits. The build is always complete and informative as it contains a Rakudo version and code snippet, as wel as an output. Later on a dev could convert a draft into real Roast test.
For Raku community as a whole
* The same idea would apply for the whole community just with a slight variation. People could easily run any code to give examples how to use their code ( Raku modules authors ) or to express problems they’ve encountered running someone else’s code (F.e. referencing RP builds from GH issue ).
In the long run, the service could facilitate Raku language grow and will make it easier for newbies to learn the language.
Thank you for reading. Please share your feedback in Reddit.