-
Notifications
You must be signed in to change notification settings - Fork 38
评测系统使用与实验提交说明
wufeng15226 edited this page Jun 1, 2023
·
10 revisions
在打包前需要将验报告按照要求放在对应目录下一起打包,需要使用以下命令得到tar.gz文件
cd SYsU-lang
cmake --build $HOME/sysu/build -t package_source打包好的源码包在 $HOME/sysu/build 目录下,在打包完成后请尝试使用以下命令是否可以完成解包
python3 -m tarfile -e SYsU-lang-*-Source.tar.gz最终提交到超算习堂
lexer 实验与 parser 实验不需要在线评测。如需检查学生提交作业的正确性,可通过如下脚本自动批改。
import glob
import sys
import subprocess
import tarfile
def main(*argv):
files = glob.glob("*.gz")
files.sort()
for filename in files:
print(filename)
tar = tarfile.open(filename)
filename = filename[0:8] # 提取前八个字符,通常不包含全角字符
tar.extractall(path=filename)
tar.close()
source = glob.glob(filename+"/SYsU-lang-*-Source")[0]
# extract parser.y
# subprocess.run(["cp", source+"/parser/parser.y", "[YOUR PATH]"+filename+".y"])
# customized test
# subprocess.run(["cp", "[YOUR PATH]"+"sysu-compiler", source+"/compiler/sysu-compiler"])
# unify the test set
subprocess.run(["cp", "-r", "../SYsU-lang/tester", source+"/"])
llvm_prefix_path = subprocess.run(
["llvm-config", "--cmakedir"], stdout=subprocess.PIPE).stdout
subprocess.run(["cmake", "-GNinja", "-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DCMAKE_C_COMPILER=clang",
"-DCMAKE_CXX_COMPILER=clang++",
"-DCMAKE_INSTALL_PREFIX="+filename+'/sysu',
"-DCMAKE_PREFIX_PATH="+str(llvm_prefix_path),
"-DCPACK_SOURCE_IGNORE_FILES=.git/;tester/third_party/",
"-S"+source,
"-B"+filename+'/sysu/build'])
subprocess.run(["cmake", "--build", filename+'/sysu/build'])
subprocess.run(["cmake", "--build", filename +
'/sysu/build', "-t", "test"])
return 0
if __name__ == '__main__':
sys.exit(main(*sys.argv))只需检查对应学生目录下 sysu/build/Testing/Temporary 中的 LastTestsFailed.log 文件和 LastTest.log 两个日志即可。
除超算习堂上的提交页面外,generator 实验和 optimizer 实验还要求通过在线评测。本页面将介绍如何使用我们搭建的基于 Docker 的评测系统.
访问评测系统, 使用 GitHub 授权登陆, 将会使用你的 GitHub 用户名以及邮箱作为系统的用户信息.
登陆后, 点击右上角账户设置, 添加你的学号.