-
Notifications
You must be signed in to change notification settings - Fork 256
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
.NET 6 support #1064
base: master
Are you sure you want to change the base?
.NET 6 support #1064
Conversation
first attempt
Can one of the admins verify this patch? |
Seeing that you fail lint, can you look at the errors and fix them? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code doesn't look egregious. Did you setup a copy of the modified docker image and test this locally?
dmoj/executors/NETCS.py
Outdated
""" | ||
|
||
HELLO_WORLD_PROGRAM = """\ | ||
Console.WriteLine("Hello, World!"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This program should echo input to output, not just write out "Hello, World!". See e.g. https://github.com/DMOJ/judge-server/blob/master/dmoj/executors/C.py#L11
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is Rust's program wrong then? https://github.com/DMOJ/judge-server/blob/master/dmoj/executors/RUST.py#L78
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not "wrong" because it so happens the string we pass as input is "Hello, World!". But not testing input means it might be broken (for syscall whitelist reasons) and CI wouldn't catch it. Rust should be switched to echoing, but it seems more likely that .NET would have wacky syscalls during input than Rust.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll update it sometime later then.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 will change the behavior
@Riolku tbh I'm struggling a bit with this. locking at the docker files in |
I'd say:
|
thanks the
how would this work, given the running the container yields some errors that seem to be related to some access protection mechanism:
any suggestions? |
The code causing this error is... kind of wrong. I'm honestly a bit confused because a different PR will handle I guess the TL;DR is congratulations, Also, note that we don't support Windows anymore (how did you even test on Windows...). Did you use WSL or something? |
based on the
so is there a way to resolve this?
well, let's say it has been a journey:
(I guess I'm just writing this all down so I can remember how to do this again at some point 🤣 ) |
relates to #1060
requires .NET 6 available on the runtimes image: DMOJ/runtimes-docker#40
A first attempt at adding .NET 6 support. This is what I cobbled together based on the some other executor implementations.
Given my lack of detailed understanding of the judge server and python, there are most likely issues with the implementation. Still, it is somewhat complicated to test the behavior locally (especially without the updated runtime image). I'd appreciate some help/guidance on how to test the implementation locally/on docker.