We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
https://oi-wiki.org/tools/judger/arbiter/
2ab997f 这个 commit 引入了
由于Linux运行时栈限制,如果要开无限栈,应在终端先输入ulimit -s unlimited后执行arbiter打开测评器。
ulimit -s unlimited
arbiter
但是最近我使用 Arbiter 2.0,设置内存限制为 256M 递归 $10^6$ 层,没有出现 RE 的问题。可能是 1.x 版本的 bug,但是在 2.0 修复了?
cc @ranwen
The text was updated successfully, but these errors were encountered:
感谢您的反馈,但是我现在已经AFO了😇。
我这个commit确实是在上古版本的NOI Linux下做的,当时评测如果不这么跑的话确实是会RE的。但现在NOI Linux更新了,我也不清楚他是怎么搞的,我也不想再下一个NOI Linux去检查这个问题了。
方便的话,欢迎您自己提交一个PR来修改这个描述。
关于如何验证这个情况,您可以做一下这些测试:
在终端中直接运行这个程序,观测是否会segmentation fault。确定这个程序是否本身就是会使用大量栈的。注意保持编译选项一致,避免编译器优化影响结果(例如可能进行的尾递归优化)。(我不清楚能不能直接使用arbiter编译出来的程序,可以的话直接用是更好的)
在终端中输入 ulimit -s,程序会输出当前环境下允许使用的栈大小。用这个命令可以检查一下NOI Linux是否是改了默认栈设置,使得所有程序都可以直接跑而不会爆栈。我本地WSL会返回8192,对应8M的默认值。
ulimit -s
Sorry, something went wrong.
今天重新测试了一下,不用 Arbiter 的情况如下:
Arbiter 的配置如下:
直接在 GUI 下启动的情况下挂掉了
result 文件如下
可能之前写了尾递归,但是之前测试我没有开 -O2,看了一下汇编不会优化,挺怪的。但是这个测试应该比较有代表性。
-O2
开了栈之后就 OK 了
No branches or pull requests
请选择:
我正在访问这个页面
https://oi-wiki.org/tools/judger/arbiter/
我发现页面有这样的问题
2ab997f 这个 commit 引入了
但是最近我使用 Arbiter 2.0,设置内存限制为 256M 递归$10^6$ 层,没有出现 RE 的问题。可能是 1.x 版本的 bug,但是在 2.0 修复了?
cc @ranwen
The text was updated successfully, but these errors were encountered: