Skip to content

Commit

Permalink
Merge pull request #35 from WISVCH/systems_fpc_2022
Browse files Browse the repository at this point in the history
Systems fpc 2023
  • Loading branch information
robertdijk committed Apr 16, 2023
2 parents 54ad890 + d3e382a commit a6a6f38
Showing 1 changed file with 73 additions and 71 deletions.
144 changes: 73 additions & 71 deletions content/systems.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ weight: 20
menu: main
---

This page describes current plans for the Programming Environment which will be available to each DAPC 2022 team.
This page describes current plans for the Programming Environment which will be available to each FPC 2023 team.
**Please note that these plans are subject to change.**

Each team will be provided with one workstation, shared between team members.
Expand All @@ -17,91 +17,92 @@ The configuration of each workstation will be as follows:

The software configuration will consist of the following:
- OS:
- Ubuntu 22.04 LTS Linux (64-bit)
- Ubuntu 22.04 LTS Linux (64-bit)
- Desktop:
- Xfce
- Xfce
- Editors:
- vim
- gvim
- nano
- neovim
- emacs
- gedit
- geany
- kate
- atom
- vim
- gvim
- nano
- neovim
- emacs
- gedit
- geany
- kate
- IDEs:
- IntelliJ Community
- Version: 2021.3.2
- Workspace is already set up
- Plugins:
- IdeaVim
- CLion
- Version: 2021.3.3
- Workspace is already set up
- Plugins:
- IdeaVim
- PyCharm Community
- Version: 2021.3.2
- Workspace is already set up
- Plugins:
- IdeaVim
- Eclipse
- Version: 2021-12
- Plugins:
- PyDev
- Visual Studio Code
- Version: 1.71.1
- Plugins:
- C/C++ - Microsoft
- C# - Microsoft
- Code Runner - Jun Han
- Debugger for Java - Microsoft
- ESLint - Dirk Baeumer
- Language Support for Java - Red Hat
- Python - Microsoft
- TSLint - Microsoft
- Code::Blocks
- Version: 20.03
- IntelliJ Community
- Version: 2021.3.2
- Workspace is already set up
- Plugins:
- IdeaVim
- CLion
- Version: 2021.3.3
- Workspace is already set up
- Plugins:
- IdeaVim
- PyCharm Community
- Version: 2021.3.2
- Workspace is already set up
- Plugins:
- IdeaVim
- Eclipse
- Version: 2021-12
- Plugins:
- PyDev
- Visual Studio Code
- Version: 1.71.1
- Plugins:
- C/C++ - Microsoft
- C# - Microsoft
- Code Runner - Jun Han
- Debugger for Java - Microsoft
- ESLint - Dirk Baeumer
- Language Support for Java - Red Hat
- Python - Microsoft
- TSLint - Microsoft
- Code::Blocks
- Version: 20.03


## Languages

The following languages are allowed during the contest:

- Java
- Version: 17.0.4
- C
- Version: 11.2.0
- Compiler version: 11.3.0
- Standard: gnu17
- C++
- Version: 11.2.0
- Compiler version: 11.3.0
- Standard: gnu++20
- Python
- Version: PyPy 7.3.9 (Python 3.8.13)
- Version: PyPy 7.3.9 (Python 3.8.13)
- Java
- Version: 17.0.6
- Kotlin
- Version: 1.6.0
- Version: 1.6.0

Note that Python 2 is no longer supported.

## Compilation of Submissions

During the contest, teams will submit proposed solutions to the contest problems to the Judges using the [DOMjudge](https://www.domjudge.org) contest control system (version 8.1.2).
During the contest, teams will submit proposed solutions to the contest problems to the Judges using the [DOMjudge](https://www.domjudge.org) contest control system (version 8.2). This can be done through the [web interface](https://www.domjudge.org/docs/manual/8.2/team.html#web-interface), or using the [submit client](https://www.domjudge.org/docs/manual/8.2/team.html#command-line-submit).
Source files submitted to the Judges will be compiled using the following command line arguments for the respective language:

- C:
- `gcc -x c -Wall -O2 -static -pipe -o $1 "$1.c" -lm`
- Available as `mygcc`
- `gcc -std=gnu17 -x c -Wall -O2 -static -pipe -o $1 "$1.c" -lm`
- Available as `mygcc`
- C++:
- `gcc -x c++ -Wall -O2 -static -pipe -o $1 "$1.cpp" -lm`
- Available as `mygpp`
- Java:
- `javac -encoding UTF-8 -sourcepath . -d . $@`
- Available as `myjavac`
- `g++ -std=gnu++20 -x c++ -Wall -O2 -static -pipe -o $1 "$1.cpp" -lm`
- Available as `mygpp`
- Python 3:
- `pypy3 $@`
- Available as `mypython`
- `pypy3 $@`
- Available as `mypython`
- Java:
- `javac -encoding UTF-8 -sourcepath . -d . $@`
- Available as `myjavac`
- Kotlin:
- `kotlinc -d . $@`
- Available as `mykotlinc`
- `kotlinc -d . $@`
- Available as `mykotlinc`


## Execution of Submissions
Expand All @@ -110,25 +111,26 @@ Source files submitted to the Judges will be compiled using the following comman
- For C/C++: the executable file generated by the compiler will be executed to generate the output of the submission.
- For Python 3: the main source file will be executed by the PyPy3 Python3 interpreter to generate the output of the submission.
- For Java: the compiled main class will be executed using the following command:
- java `-java -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss65536k -Xms1572864k -Xmx1572864k $@`
- Available as `myjava`
- `java -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss65536k -Xms1966080k -Xmx1966080k $@`
- Available as `myjava`
- For Kotlin: the compiled main class will be executed using the following command:
- java `kotlin -Dfile.encoding=UTF-8 -J-XX:+UseSerialGC -J-Xss65536k -J-Xms1572864k -J-Xmx1572864k $@`
- Available as `mykotlin`
- `kotlin -Dfile.encoding=UTF-8 -J-XX:+UseSerialGC -J-Xss65536k -J-Xms1966080k -J-Xmx1966080k $@`
- Available as `mykotlin`

Compilation and execution as described above will take place in a “sandbox” on a dedicated judging machine.
The judging machine will be as identical as possible to, and at least as powerful as, the machines used by teams.
The judging machine will be identical to the machines used by teams.

[//]: # (The sandbox will allocate 2GB of memory; the entire program, including its runtime environment, must execute within this memory limit.)
For interpreted languages (Java, Python, and Kotlin) the runtime environment includes the interpreter (that is, the JVM for Java/Kotlin and the Python interpreter for Python).
The sandbox memory allocation size will be the same for all languages and all contest problems. For Java and Kotlin, the above commands show the stack size and heap size settings that will be used when the program is run in the sandbox.
The sandbox will allocate 2 GiB of memory; the entire program, including its runtime environment, must execute within this memory limit.
For interpreted languages (Python, Java, and Kotlin) the runtime environment includes the interpreter (that is, the PyPy3 interpreter for Python and the JVM for Java/Kotlin).
The sandbox memory allocation size will be the same for all languages and all contest problems.
For Java and Kotlin, the above commands show the stack size and heap size settings that will be used when the program is run in the sandbox.

## Documentation / Specification / Reference material
The following reference materials will be available on the teams' workstations through the browser:

- [C reference from cppreference.com](https://en.cppreference.com/w/c)
- [C++ reference from cppreference.com](https://en.cppreference.com/w/cpp)
- [Python 3.8.13 documentation](https://docs.python.org/3.8/)
- [Python 3.8.13 documentation](https://docs.python.domainunion.de/release/3.8.13/)
- [Java® Platform, Standard Edition & Java Development Kit Version 17 API Specification](https://docs.oracle.com/en/java/javase/17/docs/api/)
- [Kotlin Language Documentation 1.6.20 (As PDF)](http://web.archive.org/web/20220610202819if_/https://kotlinlang.org/docs/kotlin-reference.pdf)
- [DOMjudge Team Manual (As PDF)](https://www.domjudge.org/docs/manual/8.1/team.html)

0 comments on commit a6a6f38

Please sign in to comment.