Appendix: Installing the example languages

DOMjudge ships with some default languages with a default configuration. As you might set up contests with those languages we provide how those languages were installed in the past as guideline. Use dj_run_chroot for most of those packages, and see the section Creating a chroot environment for more information.

Most of the languages can be installed from the table below as there is a package available to install inside the judging chroot. Given that you can install your own chroot we only provide the packages for Ubuntu as that is the most used at the moment of writing.

Packages for languages

Language

Ubuntu package

Remarks

Ada

gnat

AWK

mawk/gawk

mawk is default installed

Bash

bash

Default installed in the chroot

C

gcc

Default installed in the chroot

C++

g++

Default installed in the chroot

C#

mono-mcs

Fortran

gfortran

Haskell

ghc

After installing you need to move these files /{usr->var}/lib/ghc/package.conf.d as /var is not mounted during compilation.

Java

default-jdk-headless

Default installed in the chroot

Javascript

nodejs

Kotlin

kotlin

Lua

lua5.4

Ubuntu does not ship a generic meta package (yet).

Pascal

fp-compiler

Perl

perl-base

Default installed in the chroot

POSIX shell

dash

Default installed in the chroot

Prolog

swi-prolog-core-packages

Python3

pypy3/python3

Default installed in the chroot. DOMjudge assumes pypy3 as it runs faster in general. Consider the PyPy3 PPA if you need the latest python3 features. PyPy3 does not have 100% compatibility with all non-standard libraries. In case this is needed you should reconsider the default CPython implementation.

OCaml

ocaml

R

r-base-core

Ruby

ruby

Rust

rustc

Scala

scala

Swift

See the Swift instructions, unpack the directory in the chroot and install libncurses6. Depending on where you install the directory you might need to extend the PATH in the run script.