https://github.com/chgen/ejudge-riscv-rars-support
RARS RISC-V emulator support for EJudge contest management system
https://github.com/chgen/ejudge-riscv-rars-support
ejudge rars risc-v
Last synced: about 1 year ago
JSON representation
RARS RISC-V emulator support for EJudge contest management system
- Host: GitHub
- URL: https://github.com/chgen/ejudge-riscv-rars-support
- Owner: ChGen
- License: mit
- Created: 2021-03-07T07:44:15.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-02-08T11:43:51.000Z (over 3 years ago)
- Last Synced: 2025-04-01T20:31:42.450Z (about 1 year ago)
- Topics: ejudge, rars, risc-v
- Language: Shell
- Homepage:
- Size: 13.7 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ejudge-riscv-rars-support
RARS RISC-V CPU Simulator support for EJudge contest management system
1. Preparations:
1. Download RARS Simulator .jar file and install java runtime
2. Create rars symlink (rars-simulator) for EJudge, e.g.: `sudo ln -s '/home/ejudge/rars_1.5.jar' /usr/local/bin/rars-simulator`
2. EJudge integration:
* Put both `*.in` files in `$EJUDGE_PREFIX/libexec/ejudge/lang` in (e.g. /home/ejudge/inst-ejudge/libexec/ejudge/lang/in) and run `ejudge-setup`
* Or put both `*.in` files in `/home/ejudge/compile/scripts/in` and run `ejudge-configure-compilers`.
3. Update EJudge limits (because RARS is java-based simulator), e.g. for `/home/judges/000001/conf/serve.cfg` set:
```
[problem]
max_vm_size = 64G
max_stack_size = 64G
max_file_size = 64G
time_limit = 10
```
4. References:
* RARS RISC-V CPU Simulator: https://github.com/TheThirdOne/rars
* EJudge contest management system: https://github.com/blackav/ejudge
* EJudge wiki: https://ejudge.ru/wiki/index.php/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_ejudge
5. Some known issues:
* RARS executes .asm files without this extention incorrectly (e.g. no user input). Maybe they are treated as binary/compiled files?
* No built-in way in RARS to disable 1st (copyright) & last (exit type) output lines to stdio. Workround is used for now.
* RARS syscall for reading int's (and other numbers) - no EOF handling