Skip to content

Commit 6676e58

Browse files
committed
Update documentation on programming languages
1 parent e5a8e44 commit 6676e58

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

docs/Configuring a contest.rst

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -201,33 +201,31 @@ Programming languages
201201

202202
CMS allows to restrict the set of programming languages available to contestants in a certain contest; the configuration is in the contest page in AWS.
203203

204-
CMS offers out of the box the following combination of languages: C, C++, Pascal, Java (in two flavours, either compiled with gcj or using a JDK), Python 2, PHP.
204+
CMS offers out of the box the following combination of languages: C, C++, Pascal, Java (using a JDK), Python 2 and 3, PHP, Haskell, Rust, C#.
205205

206-
C, C++ and Pascal are the default languages, and, together with Java with gcj, have been tested thoroughly in many contests.
206+
C, C++ and Pascal are the default languages, and have been tested thoroughly in many contests.
207207

208208
PHP and Python have only been tested with Batch task types, and have not thoroughly analyzed for potential security and usability issues. Being run under the sandbox, they should be reasonably safe, but, for example, the libraries available to contestants might be hard to control.
209209

210-
Java with JDK works with Batch and Communication task types. Under usual conditions (default submission format) contestants must name their class as the short name of the task.
210+
Java works with Batch and Communication task types. Under usual conditions (default submission format) contestants must name their class as the short name of the task.
211211

212212
.. warning::
213213

214-
Java with JDK uses multithreading even for simple programs. Therefore, if this language is allowed in the contest, multithreading and multiprocessing will be allowed in the sandbox for *all* evaluations (even with other languages).
214+
Java uses multithreading even for simple programs. Therefore, if this language is allowed in the contest, multithreading and multiprocessing will be allowed in the sandbox for *all* evaluations (even with other languages).
215215

216216
If a solution uses multithreading or multiprocessing, the time limit is checked against the sum of the user times of all threads and processes.
217217

218218

219219
Language details
220220
----------------
221221

222-
* C and C++ are supported through the GNU Compiler Collection. Submissions are optimized with ``-O2``, and use the 2011 standards for C and C++.
222+
* C and C++ are supported through the GNU Compiler Collection. Submissions are optimized with ``-O2``. Multiple C and C++ language revisions are supported.
223223

224-
* Java with gcj is also supported through the GNU Compiled Collection. Programs are compiled with ``gcj``, optimized with ``-O3``, and then run as normal executables. Notice that gcj only fully supports Java 1.4.
225-
226-
* Java with JDK uses the system version of the Java compiler and JVM.
224+
* Java uses the system version of the Java compiler and JVM.
227225

228226
* Pascal support is provided by ``fpc``, and submissions are optimized with ``-O2``.
229227

230-
* Python submissions are interpreted using Python 2 (you need to have ``/usr/bin/python2``).
228+
* Python submissions are executed using the system Python interpreter (you need to have ``/usr/bin/python2`` or ``/usr/bin/python3``, respectively).
231229

232230
* PHP submissions are interpreted by ``/usr/bin/php``.
233231

docs/Installation.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ You will also require a Linux kernel with support for control groups and namespa
2828

2929
Then you require the compilation and execution environments for the languages you will use in your contest:
3030

31-
* `GNU compiler collection <https://gcc.gnu.org/>`_ (for C, C++ and Java, respectively with executables ``gcc``, ``g++`` and ``gcj``);
31+
* `GNU compiler collection <https://gcc.gnu.org/>`_ (for C and C++, respectively with executables ``gcc`` and ``g++``);
3232

33-
* alternatively, for Java, your choice of a JDK, for example OpenJDK (but any other JDK behaving similarly is fine, for example Oracle's);
33+
* for Java, your choice of a JDK, for example OpenJDK (but any other JDK behaving similarly is fine, for example Oracle's);
3434

3535
* `Free Pascal <http://www.freepascal.org/>`_ (for Pascal, with executable ``fpc``);
3636

@@ -64,8 +64,7 @@ On Ubuntu 18.04, one will need to run the following script to satisfy all depend
6464

6565
# Optional
6666
sudo apt-get install nginx-full python2.7 php7.2-cli php7.2-fpm \
67-
phppgadmin texlive-latex-base a2ps gcj-jdk haskell-platform rustc \
68-
mono-mcs
67+
phppgadmin texlive-latex-base a2ps haskell-platform rustc mono-mcs
6968

7069
The above commands provide a very essential Pascal environment. Consider installing the following packages for additional units: `fp-units-base`, `fp-units-fcl`, `fp-units-misc`, `fp-units-math` and `fp-units-rtl`.
7170

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
# General information about the project.
4343
project = u'CMS'
44-
copyright = u'2017, The CMS development team'
44+
copyright = u'2020, The CMS development team'
4545

4646
# The version info for the project you're documenting, acts as replacement for
4747
# |version| and |release|, also used in various other places throughout the

0 commit comments

Comments
 (0)