Version 2.1.38 (20050607) ========================= libchecker ---------- The checker programs do not terminate with the "Check Failed" error, if they are given more command line parameters, than are required. The extra parameters are ignored. This enables use of the standard checkers (for example, cmp_int) for checking problems, which have tests with .inf files. run,serve --------- The interface between the `run' and the `serve' programs is reworked again. The `run' program always generates the testing protocol in the XML-based format. Generation of the HTML-representation of the testing protocol is now performed by the `serve' contest server. Because of this there is no need in two separate protocols: master's and team's. Both may be generated from the XML testing protocol. The XML testing protocols are stored in the subdirectories of the "${contest_root}/var/archive/xmlreport" directory. Backward compatibility with previous versions of the ejudge is provided: if for some submit there is no XML testing protocol, the plain text or HTML testing protocols are used (generated by the previous versions of the ejudge tools). Because the `run' program always generate the testing protocol in the XML format, the `html_report' global configuration variable is no longer meaningful. This variable is preserved for compatibility with previous versions, but its value is ignored. Added possibility of storing the full program's output in the contest archive. By default the input test data, the program's output, the checker's output for each test are added directly to the testing protocol. However, the maximal file size and the maximal string length of such file are limited (see the max_file_length and max_line_length global configuration variables). If the actual file size is greater than the file size limit, the file content is not added to the protocol, but a short diagnostic message is added instead. This version of the ejudge system supports `enable_full_archive' global configuration variable. If this variable is set to 1, the output of the program being tested is not limited. The output is stored in a separate file rather than in the testing protocol. The testing protocol does not contain neither input, nor output data of the program being tested, with the exception of the command line parameters, if such are provided. The program output and the checker program output are stored in a separate file in a special archive format, which is currently a custom format, not compatible with any existing archiver. The archive contains some file information and the file data compressed with the gzip algorithm. The archive files are stored in subdirectories of the "${contest_root}/var/archive/output" directory. serve,master,judge,team ----------------------- Since in the full archive mode the testing protocol does not contain the input data and the output data, added the possibility of viewing archive input and output files. The output file, the standard error stream, the checker output for each test are taken from the archive file. The input file, the correct answer file (if provided for a problem), the info file (if provided) are taken from the test directories for the problem. It is possible, that the test directories contain different tests from those used for actual testing (for example, if the tests were updated from the time of testing). The current version of the ejudge does not check correspondence between file versions. serve ----- An audit log is kept for each submit. The audit log contains the information about all operations with the current run. The audit log is never overwritten or edited, new entries are only appended to the end of the log. The audit log files are kept in subdirectories of the "${contest_root}/var/archive/audit" directory. serve,master ------------ Viewing of the audit log is supported. In order for a user to view audit log, the user must have the CONTROL_CONTEST bit set for the current contest. serve,master,judge,team ----------------------- Support for the obsoleted session modes is removed. The obsoleted session modes are login/password in the HTML form, cookie, session id in the HTML form. These session modes are not used for a long time, but were supported in the code. Their removal considerably simplified the source code. The URLs are also simplified, because the sid_mode CGI parameter is no longer required. userlist-server --------------- The program does not crash on login of a user, which has no password set (i.e. the `register_password' entry is completely missing).