X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=doc%2Findex.html;h=bcc0e60dcf9ffe6483eaa59e42bc3f8070e2f914;hb=HEAD;hp=61a501b035c057f21cb1af5747f605ca6fff2ea1;hpb=0070c7b0968cfcc243038dc8d23e8537fdb16433;p=eval.git diff --git a/doc/index.html b/doc/index.html index 61a501b..bcc0e60 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,58 +1,170 @@
-The MO Contest Environment a.k.a. MO-Eval is a simple system for conducting programming competitions similar to the -International Olympiad in Informatics – a contest -where the participants solve programming tasks, which are then evaluated off-line after the end of the -competition. It's built in a modular way, so extending to other types of programming contests -(e.g., to on-line contests like the ACM ICPC) should be -pretty easy, but it hasn't been done yet. +
The Moe Contest Environment (formerly MO-Eval) is a system for conducting +programming competitions similar in spirit to the +International Olympiad in Informatics – +contestants solve programming tasks, submit the source code of their solutions, +which is then automatically tested on a set of test inputs. -
We use this environment at the Czech Olympiad in programming -(officially a part of the Mathematical Olympiad) since 2002 and also at the CPSPC -(Czech-Polish-Slovak Preparation Camp) when it's held in the Czech Republic. +
Moe is built in a modular way, making it easy to adapt it to the specifics +of a particular contest, to other types of tasks, or other programming languages. + +
A brief description of the system and of the ideas behind it can be found in the following series +of papers published in Olympiads in Informatics: + +
At this moment (2015-07-26), most parts of Moe are obsolete, but many +of its ideas still live in other contest systems, most notably CMS. + +
The Isolate sandbox now lives in its +own repository at GitHub. + +
Other useful parts will hopefully find their new home soon. + +
module + | description + | status + |
---|---|---|
sandbox + | Runs the contestant's solution in a controlled and secure environment,
+ limiting its execution time, memory consumption and system calls.
+ We have a stable implementation (box ) based on ptrace
+ and a new one (isolate ) based on Linux kernel containers.
+ | works + |
judges + | A set of utilities for comparing the solution's output with the correct + answer at a given level of strictness. + | works + |
evaluator (a.k.a. grader) + | This module controls the whole process of grading the solution. It runs + the compilers, the sandbox and the judges as described in configuration + files. + | works + |
evaluator v2 + | We have decided to rewrite the evaluator from scratch in Python for greater + flexibility. It will however need some more time to finish. + | in progress + |
queue manager + | Distributes grading between a cluster of computers, each of them running + the evaluator. + | works, but needs revision + |
submitter + | Handles submitting of solutions by contestants and passing them to the + evaluation system. Contains a server daemon and a front-end for contestants. + (If your contest uses a web-based contestant interface, you probably do not + need this, although it can serve as a clean interface between your web services + and the evaluator.) + | works, but needs revision + |
You can download the current release eval-1.0 -or browse the archive of past releases. +
Moe is still under heavy development, so the best way to obtain the latest +version is directly from our Git repository at git://git.ucw.cz/moe.git. +The master branch of the repository is kept in a stable state, new development +is done on other branches and then merged to the master. You can also browse +the repository online. + +
We occasionally publish snapshot tarballs in our FTP archive.
Warning: Most parts of this documentation are outdated. Please consult the papers above +to get a more up-to-date picture. +
Moe (or some of its modules) are used at the following contests: + +
Moe is known to work with these programming languages: + +
Adding a new language should be easy, as long as the language behaves in a sane +way (e.g., if it does not need to use a zillion threads for a trivial program +as Java does). +
The environment runs under Linux. We currently use a slightly modified installation of Debian -GNU/Linux, but it will happily work with any other Linux distribution with a 2.4 or newer kernel. Everything except the sandbox -module (which heavily depends on the Linux kernel) should be easily portable to other UNIX systems, although you will probably -need to install some of the GNU utilities (especially bash) and Perl. Porting to Windows is out of question. +
Moe is developed and tested on Linux, but all modules except the sandbox should +happily work on any UNIX-like system providing a reasonable set of GNU +utilities (especially bash) and Perl. This probably includes MinGW or Cygwin +on Windows, but we have not tested that. -
The sandbox heavily depends on the target OS. The current version works +only on Linux with kernel version 2.6 or newer and only on the i386 and amd64 +architectures. Porting to other architectures should require only minor changes, +porting to other systems is likely to be hard. + +
The isolate
sandbox does not depend on CPU architecture,
+but it requires a recent Linux kernel in a configuration which might be different
+from your distribution's default.
+
+
Moe has been written by the following people: + +
isolate
)
+MO-Eval has been written by Martin Mares. -Great thanks go to Jan Kara and Milan Straka for their help and for many fine ideas. +
We are also thankful to Jan Kára and Milan Straka for their help and for +many fine ideas.
The MO-Eval package can be used and distributed under the terms of the GNU General -Public License version 2. +
Moe can be used and distributed under the terms of the GNU General Public License version 2.
All bug reports, suggestions and patches are welcome. Please mail them to mj@ucw.cz. +
All bug reports, suggestions and patches are welcome. Please mail them to our mailing +list moe@ucw.cz. You can ask +the list server to subscribe to this list.