Argentum got a web-based playground.
Playground features:
- It has a prepopulated set of examples (1)
- It allows to edit existing source code or replace it with your own (2).
- When pressed "Run" (3) it compiles and executes your code on a small Raspberry Pi server.
- All compilation/linking errors are posted to the results side-panel (4).
- On success this panel shows the results of program execution.
Limitations
- It's an HTTP site, not HTTPS. Some browsers may be not happy about security.
Well don't type in your credit cards here. - Playground doesn't save your work when page is refreshed. I believe that not-secure HTTP sites have no rights to use client-side storage/cookies etc. So no session data is stored neither on client nor on server side. So please copy your code somewhere else to preserve it on page reloads.
- This site runs on Raspberry Pi at home, so it might be not accessible all the time.
- Because of weak hardware, the size of one source code submission is limited to 4Kb.
- All compiled executables run in the sandbox having 1Mb of RAM.
- As a measure against infinite loops, all executables are automatically terminated after 5 seconds of runtime.
- For now run attempts are limited by 4000 daily.
- Though Raspberry Pi fully supports SQLite, CURL and SDL integration, I disabled these bindings and removed these modules, because they add nothing to Argentum language exploration, but they might create some unneeded breaches at the server side.
Future improvements
With time the playground will be improved in many ways:
- UI - I have plans to make it possible to pass the code snippets in URL,
- Storage and sessions (it requires switching to HTTPS with authorized certificates, which is probably magic without a stable domain name).
- Functionality - add commands to download Windows/Linux X86/ARM executables, LLVM/ASM code, though someone's antivirus software won't be happy.
- Add WASM target and ability to run compiled code in browser (this will allow SDL/SKIA bindings).
All in all, right now this playground allows to play with Argentum online.
Happy hacking!