<html><head>
<title>The Moe Contest Environment</title>
<link rev=made href="mailto:mj@ucw.cz">
-<link rel=stylesheet title=Default href="mo-eval.css" type="text/css" media=all>
+<link rel=stylesheet title=Default href="moe.css" type="text/css" media=all>
</head><body>
<h1>The Moe Contest Environment</h1>
of a particular contest, to other types of tasks, or other programming languages.
<p>A brief description of the system and of the ideas behind it can be found in the following two papers
-published in <a href="http://www.i-journals.org/olympiads_in_informatics/">Olympiads in Informatics</a>:
+published in <a href="http://www.mii.lt/olympiads_in_informatics/">Olympiads in Informatics</a>:
<ul>
-<li><a href="http://mj.ucw.cz/papers/eval.pdf">Perspectives on automatic grading systems</a>
+<li><a href="http://mj.ucw.cz/papers/eval.pdf">Perspectives on grading systems</a>
<li><a href="http://mj.ucw.cz/papers/eval2.pdf">Moe – Design of a Modular Grading System</a>
</ul>
-<h2>Contests</h2>
-
-<p>Moe (or some of its modules) are used at the following contests:
-
-<ul>
-<li><a href="http://mo.mff.cuni.cz/p/index.html.en">Czech Olympiad in programming</a> since 2002
-<li><a href="http://mo.mff.cuni.cz/cpspc/">CPSPC</a> (Czech-Polish-Slovak Preparation Camp) on some years
-<li><a href="http://www.fi.muni.cz/ceoi/">CEOI 2007</a> (Central-European Olympiad in Informatics)
-<li><a href="http://www.ioi2009.org/">IOI 2009<a> (used the sandbox module)
-<li><a href="http://codex2.ms.mff.cuni.cz/project/">CodEx</a> (a web-based system, originally
- designed for evaluation of students' homeworks, but also used for several programming
- contests)
-</ul>
+<h2>Modules</h2>
+
+<table class=modules>
+<tr><th>module
+ <th>description
+ <th>status
+<tr><td>sandbox
+ <td>Runs the contestant's solution in a controlled and secure environment,
+ limiting its execution time, memory consumption and system calls.
+ <td class=statedone>works
+<tr><td>judges
+ <td>A set of utilities for comparing the solution's output with the correct
+ answer at a given level of strictness.
+ <td class=statedone>works
+<tr><td>evaluator<br>(a.k.a. grader)
+ <td>This module controls the whole process of grading the solution. It runs
+ the compilers, the sandbox and the judges as described in configuration
+ files.
+ <td class=statedone>works
+<tr><td>evaluator v2
+ <td>We have decided to rewrite the evaluator from scratch in Python for greater
+ flexibility. It will however need some more time to finish.
+ <td class=statewip>in progress
+<tr><td>queue manager
+ <td>Distributes grading between a cluster of computers, each of them running
+ the evaluator.
+ <td class=statepart>works, but needs revision
+<tr><td>submitter
+ <td>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.)
+ <td class=statepart>works, but needs revision
+</table>
<h2>Download</h2>
<p>Moe is still under heavy development, so the best way to obtain the latest
version is directly from our <a href="http://git.or.cz/">Git</a> repository at git://git.ucw.cz/eval.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.
+is done on other branches and then merged to the master. You can also <a href="http://www.ucw.cz/gitweb/?p=moe.git;a=summary">browse
+the repository online</a>.
-<p>We also occasionally publish snapshot tarballs in our <a href="ftp://ftp.ucw.cz/pub/mj/eval/">FTP archive</a>.
+<p>We occasionally publish snapshot tarballs in our <a href="ftp://ftp.ucw.cz/pub/mj/eval/">FTP archive</a>.
<h2>Documentation</h2>
-<p>Warning: Most parts of this documentation are outdated. Please consult the papers above
+<p><span class="statewip">Warning:</span> Most parts of this documentation are outdated. Please consult the papers above
to get a more up-to-date picture.
<ul>
<li><a href="public.html">Utilities for contestants</a>
</ul>
+<h2>Contests</h2>
+
+<p>Moe (or some of its modules) are used at the following contests:
+
+<ul>
+<li><a href="http://mo.mff.cuni.cz/p/index.html.en">Czech Olympiad in programming</a> since 2002
+<li><a href="http://mo.mff.cuni.cz/cpspc/">CPSPC</a> (Czech-Polish-Slovak Preparation Camp) on some years
+<li><a href="http://www.fi.muni.cz/ceoi/">CEOI 2007</a> (Central-European Olympiad in Informatics)
+<li><a href="http://www.ioi2009.org/">IOI 2009<a> (used the sandbox module)
+<li><a href="http://codex2.ms.mff.cuni.cz/project/">CodEx</a> (a web-based system, originally
+ designed for evaluation of students' homeworks, but also used for several programming
+ contests)
+</ul>
+
+<h2>Languages</h2>
+
+<p>Moe is known to work with these programming languages:
+
+<ul>
+<li>Pascal (<a href="http://www.freepascal.org">Free Pascal Compiler</a>)
+<li>C and C++ (<a href="http://gcc.gnu.org/">GCC</a>)
+<li>C# (<a href="http://www.mono-project.com/">Mono</a> with some hacks)
+<li>Haskell (<a href="http://www.haskell.org/ghc/">GHC</a>)
+</ul>
+
+<p>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).
+
<h2>Portability</h2>
-<p>The environment runs under Linux on the i386 architecture. We currently use
-a slightly modified installation of <a href="http://www.debian.org/">Debian
-GNU/Linux</a>, but it will happily work with any other Linux distribution with
-a 2.6 or newer kernel. The only dependecies on Linux and on i386 are in the
-sandbox module; porting to other architectures requires just minor changes,
-porting to other UNIX systems is probably hard. Outside of that, everything
-should run happily on almost any system providing a reasonable set of GNU
-utilities (especially bash) and Perl, possibly including MinGW or Cygwin on
-Windows.
+<p>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.
+
+<p>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.
<h2>Authors</h2>
<p>Moe has been written by the following people:
<ul>
-<li><a href="http://mj.ucw.cz/">Martin Mares</a>
-<li>Tomas Gavenciak (the queue manager module)
+<li><a href="http://mj.ucw.cz/">Martin Mareš</a>, <a href="mailto:mj@ucw.cz">mj@ucw.cz</a>
+<li>Tomáš Gavenčiak (the queue manager module and parts of the new evaluator)
</ul>
-<p>We are also thankful to Jan Kara and Milan Straka for their help and for
+<p>We are also thankful to Jan Kára and Milan Straka for their help and for
many fine ideas.
<h2>License</h2>
<h2>Feedback</h2>
-<p>All bug reports, suggestions and patches are welcome. Please mail them to <a href="mailto:mj@ucw.cz">mj@ucw.cz</a>.
+<p>All bug reports, suggestions and patches are welcome. Please mail them to our mailing
+list <a href="mailto:moe@ucw.cz">moe@ucw.cz</a>. You can <a href="http://www.ucw.cz/mailman/listinfo/moe">ask
+the list server</a> to subscribe to this list.
</body></html>