DMOJ Judge v2.0.0
This major release contains a number of stability improvements, and drops support for Windows and Python < 3.6. This release is meant to be used with the DMOJ Site v2.0.0 release.
The full changelog is available here.
Features
- Add batching of testcase updates, greatly reducing server load in some cases; #408
- Implement testcase format specifiers, removing the need to specify a
test_cases
block for problems using standard naming conventions; #262 - Enable colored compiler output in all languages that support it (not just GCC/Clang); #543
- Add support for Java 11; #526
- Inform Java users of missing
main(String[] args)
; #366 - Add autoconfig for Kotlin and Turing; #551, #559
- Add autoconfig support for Ruby 2.6
Fixes
- Exit JVM immediately upon denying a class load; fixes #455
- Fix SBCL on Debian 10; #552
- Use bootclasspath in Scala autoconfig; #550
- Switch to displaying
rustc
rather thancargo
version for Rust; fixes #534 - Fix compiler error limiting for Clang; fixes #487
- Fix interactors on binary streams; fixes #485
- Fix compiler TLE reporting broken in 069d183
Miscellaneous
- Give generators 30s to compile by default; #503
- Allow Rust submissions to be compiled in offline mode via a
DMOJ_CARGO_OFFLINE
environment variable; #561 - Disable optimization passes for Brainfuck programs, greatly increasing maximum instruction count before hitting a compiler timeout; #549
- Move ANSI to HTML conversion to site, preventing judges from executing HTML injection; #478
Under the hood
- mypy types have been added throughout the judge code
- Lots of code has been cleaned up as a result of removing Python 2 support
- All supported runtimes are now tested during CI, thanks to a new runtimes-docker Docker image