Change sioworkers~master~Id28318b2ae7504fde2156bc1768aa98facdfdb67, patchset 9
https://gerrit.sio2project.mimuw.edu.pl/3650
SIO-2055 Add support for output-only tasks
Adds new compiler to sioworkers called "output-only". This compiler moves its
source code argument further as compiled binary, then there is new code in
executors/common.py that treats executables marked as "output-only" in a
special way as those are from "output-only" compiler and should be treated as
program invocation outputs instead of real executables. This means that
instead of running the executable it is being moved as output file.
In every of those steps environ has to be filled with proper key value
pairs used by other parts of code to investigate compilation/execution
result, even though compilation/execution haven't happened.
New code in executors/common.py mentioned before affects only task
solution evaluation. In current version of oioioi checkers and ingens
are being run by blindly executing given executable
(one of the reasons why python and java code doesn't work for those),
which could theoretically create possibility of sending a package with
arbitrary executable called "???ingen.txt".
This doesn't happen either way for current version of "oioioi" as
checkers and ingens sources are being send to compilers prefixed with
"default-", and no such compiler has been introduced for "output-only" sources.
Checkers and ingens should probably be run through FileRunners. This
would both make "output-only" executables fail as there is no FileRunner for
them and would allow interpreted languages ingens and checkers. However
such change is not a topic of this ticket, so it is not introduced with
this commit.
To test the change reinstallation of sioworkers is advisable as changes
to "setup.py" don't propagate upon file modification.
To test with oioioi, every variable in settings that refers to
compilers/programming languages has to be filled with information about
"output-only" language and compiler.
Change-Id: Id28318b2ae7504fde2156bc1768aa98facdfdb67
Feel free to reopen it or create a new one if it's still relevant.