Skip to content

DMOJ Judge v2.0.0

Compare
Choose a tag to compare
@Xyene Xyene released this 15 Sep 20:07
· 892 commits to master since this release
00900f8

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 than cargo 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