设置远程编译和运行的正确工具是什么(例如 ideone)?

设置远程编译和运行的正确工具是什么(例如 ideone)?

我正在尝试在社区编程的服务器中实现类似的功能,并且我起草了这个来总结对 oneide 功能的另一种看法:从 Perl CGI 我构建了一个像这样的脚本(甚至不是伪代码):

compiler_response = timeout (params) compiler (params)
result = timeout compiledprogram (params)
save result in database

我认为超时是我需要限制程序执行或编译超过 X 秒的工具,我遇到的问题是我需要限制编译后的程序写入 STDOUT 以外的任何内容或从 STDIN 以外的任何内容读取。另外,我需要将程序的大小限制在一定的范围内,例如 128KB,以及它可以使用的 RAM 量,例如 64 MB。

从 bash 中执行此操作的正确工具是什么?提前致谢。

答案1

LibreOffice 和 KDE 使用冰淇淋&缓存更快地构建他们庞大的代码源。

  • Ccache 保留了许多可供 gcc/g++ 下一个使用的编译信息。
  • Icecream 允许使用经典的主/从方法进行远程编译

它们工作得非常好,易于设置并且已经集成在许多 Linux 发行版中。在 libreoffice 上,构建时间从 4 小时缩短到 30 分钟。

如果您不打算使用 gcc 进行编译,也许您可​​以增强这些工具之一。

答案2

我们用构建机器人在我们公司。

答案3

我以前没有尝试过这个,但是你可以尝试使用 FedoraProject 的 Koji,这个从代码 tarball 构建 RPM。

https://fedorahosted.org/koji/wiki

它使用模拟

http://fedoraproject.org/wiki/Projects/Mock

如果你的代码都是关于 Java/.NET 企业的东西,Hudson 真的很酷http://wiki.hudson-ci.org/display/HUDSON/Home

相关内容