-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Find a way to import compile commands or compilation flags #1241
Comments
I agree that this would be a nice feature, it would also allow us to display these in the team interface. Is there a spec for |
I don't think it's officially spec'ed yet, but problemtools has the ground truth. The comments in the file explain the syntax. BAPCtools also uses it. |
One thing to keep in mind is that currently DOMjudge only has global language settings, so importing this for a contest would necessarily override the global settings, so there needs to be some extra warning/confirmation somewhere. |
The API spec now has fields for compiler flags (and run stuff), which is probably the spec we want to go with. |
Can you please link to the (new?) section in the spec? |
https://ccs-specs.icpc.io/master/contest_api#languages see |
(link moved to https://ccs-specs.icpc.io/draft/contest_api#languages) |
This will be a lot easier when #1238 is implemented. |
I started implementing supporting compiler and runner version commands the first step and discussed the approach with @tuupke yesterday. The idea is that you can define for each language a version command and an optional runner command. The judgehosts can collect the output of these commands and we can create an (optional) languages page for the teams that shows the enabled languages and their versions (later also the command lines). There will be an easy way to mark one of these outputs as canonical and promote it from this table to the language table. Upon registering / judgehost startup, for each enabled language, the judgehost runs the version commands and reports back the output. In the database we need a new table where we store the (most recent) output for each combination of language and judgehost. When handing out judgetasks, the judgetasks get enriched with the version commands. Then, on compilation of a submission, you also run the version commands and report them back with the testcase result. In strict mode, the server compares this output with the canonical output. Then it ignores the result (of this testcase and all other cases in the batch) and disables the judgehost (or judgehost/language combo). In non-strict mode, this could at least be flagged on the submission itself (and perhaps as an internal error which is not disabling anything, but less easy to miss). |
Progress towards DOMjudge#1241 Each language has canonical information while we store the latest info per judgehost in a separate table. The information from the judgehost is currently just informative, a next step would be to actually disable judging from this judgehost in case of a version mismatch. The canonical information can be exposed to the teams via a config option.
Progress towards #1241 Each language has canonical information while we store the latest info per judgehost in a separate table. The information from the judgehost is currently just informative, a next step would be to actually disable judging from this judgehost in case of a version mismatch. The canonical information can be exposed to the teams via a config option.
I think someone else also brought this up last week. It would be nice if there was a way to automatically import compiler flags (or just the full compilation scripts, but compile and run command only as in
languages.yaml
would be preferable).That way we can just re-import a contest/problemset instead of having to manually edit the file each time.
The text was updated successfully, but these errors were encountered: