Breaking
- As announced in the v4.0.0 release, the deprecated
problem_storage_rootconfiguration option has been removed. (#1102) - The generator specification has been simplified, removing some obscure corner cases. (#1240)
Features
- On kernels that support it, input data is fed to submissions via
memfds. This improves grading efficiency, decreases runtime jitter, and allows submissions to seek the input stream. (#990) - Python compile errors are now syntax-highlighted. (#1178)
- New
dmoj-clilocatecommand for resolving the directory of a problem code. (#1126) - Input validator support has been added to the problem specification format. (#1093)
- The judge now exports statistics for Prometheus ingestion. (#1230)
- Added demangling of C++ exceptions names. (#1123)
- Judge credential may now be specified through the environment variabels
DMOJ_JUDGE_NAMEandDMOJ_JUDGE_KEY. (#1125)
Runtimes
- Many sandbox and configuration changes to chase support for newer versions of all supported runtimes.
- New runtimes supported:
- Java
sun.misc.Unsafeis disallowed by default for all submissions. (#1144)
Bugfixes
- Compiler OLE messages now display the actual limit, as opposed to a possibly-wrong, hardcoded "64 kb". (#1236, #1242)
- Interactor compilation errors are now reported as internal errors, as opposed to user compilation errors. (#1115)
- Docker judges shut down properly (#1110) and reap zombies (#1117).
New Contributors
- @Balint-R made their first contribution in #1115
- @cuom1999 made their first contribution in #1130
- @pxpeterxu made their first contribution in #1143
- @injust made their first contribution in #1166
- @JasonLovesDoggo made their first contribution in #1186
- @jozuenoon made their first contribution in #1203
- @Rishiii57 made their first contribution in #1236
Full Changelog: v4.1.0...v5.0.0