You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recodex-wiki/Runtime-Environments.md

26 lines
2.2 KiB
Markdown

# Runtime Environments
This page contains notes about using various runtime environments in ReCodEx as well as their internal usage inside Isolate sandbox. Only special cases are noted here.
## Python
Due to a [Python bug](http://bugs.python.org/issue10496), the interpreter
requires the `$HOME` variable to be set to something. Otherwise, it tries to
look up the UID used by Isolate in `/etc/passwd` and fails. Setting `HOME=/box`
seems to work.
5 years ago
We use a wrapper script that translates exceptions to error codes. This script can be found in the [utils](https://github.com/ReCodEx/utils/blob/master/runners/py/runner.py) repository.
## Java
5 years ago
By default, we use a script that looks for a class with a `main` method and executes it for running Java programs. There has to be only one class containing `main` method, otherwise error will be observed. The executed script is named `javarun.java` and can be found in the [utils](https://github.com/ReCodEx/utils/blob/master/runners/java/javarun.java) repository. In tested solutions we use its byte-compiled counterpart `javarun.class`, so be aware of name collisions.
## C#
5 years ago
The C# solutions are executed with the help of [wrapper code](https://github.com/ReCodEx/utils/blob/master/runners/cs/Wrapper.cs). This code searches for `main` method in submitted source codes. There has to be only one class containing `main` method, otherwise error will be thrown. The name of the file containing wrapper code is `ReCodEx_Csharp_Wrapper.cs` and it contains namespace `CodEx` with class `Wrapper`, so be aware of filename and class collisions.
In C# language there are none of the handy functions to operate with textual inputs like `scanf` in C. Therefore for every C# build in ReCodEx there is [Reader.cs](https://github.com/ReCodEx/utils/blob/master/runners/cs/Reader.cs) library included to make life of C# programmers easier. Please note that library is suppose to work only with ASCII files and some difficulties can be observed with modern Unicode (UTF-8) encodings. The `Reader` library contains namespace `CodEx` with class `Reader`, so again, be aware of filename and class collisions.
5 years ago
## Go
Everything has to be in one package (standard `main` executable package). TODO...