Compile
Stage for language-agnostic compilation to ready execuable for grading.
This does not apply to all languages, e.g. interpreted languages do not need to use this stage.
Config
compile:
input: [String] # full set of files needed for compilation
output: String? # name of the compiled target executable
flags: [String]? # flags used for compilation. These will be fed into specific compilation commands of the language. [default: <according to specific langauges>]
additional_packages: [String]? # any additional package to install as dependency to the container [default: []]
output
:cpp
:[default: a.out]
java
: Output does not need to be specified;javac
will compile theinput
file(s) and all dependent files automatically
flags
:cpp
:[default: ["-std=c++11", "-pedantic", "-Wall", "-Wextra", "-g"]]
java
:[default: ["-d", "."]]
additionalPackages
mostly work with Debian-based images.The available language (distros) are also limited currently. This will be extended in the future.
Report
compile:
- isSuccess: Boolean # whether the execution was successful, i.e. zero exit code
stderr: [String] # the standard errors generated during execution
toolName: String? # optional compilation tool used to generate the stderr, for potential UI parsing, categorizing into info/warn/error, and rendering