另一个 Lua 机器人 |
|
%
与其他机器人不同,它可以执行多个版本的 Lua:从 3.2 到 5.3,甚至 LuaJIT。
命令格式如下:%<version> <code>
<version> 例如是 5.3 或 luajit。可以留空,则使用默认版本 (5.3)。
除了 Lua,还有其他几个沙箱,例如 py、bc,甚至 c。请查看 %list 获取完整列表。
要运行一大块代码,可以将其发布到 [tcp.st] 或 [qp.mniip.com] 上,然后使用 dofile 加载 URL,例如 % dofile("http://tcp.st/foo")。
如果将 % 符号加倍,即 %%<version> <code>,则输出将重定向到 yalb 自己的粘贴板环,从而可以避免在频道中发送大量输出。
另一个命令是 %?<version> <title>,它在手册中查找标题(例如 math.sin、lua_pcall 或 6.4.1)。
最后但并非最不重要的是,有 3 个特殊命令
%help 打印一条略有帮助的消息。
%list 打印沙箱列表。
%cleanup 将文件系统恢复到原始状态。
有一个名为 pp 的函数,它可以进行漂亮打印。它接受零个或多个值作为参数,并返回一个字符串。它不会对表格进行深度检查,但会相应地显示相同的表格/函数/用户数据。
沙箱会对从代码中返回的任何内容进行漂亮打印。
执行时间限制为 3 秒,内存限制约为 500 MiB。
允许读取一些特定位置的文件,例如 /dev/ 或 /usr/include/。还提供了一个(非 chroot)类 Unix 环境,可以通过 os.execute 使用。可以在当前目录内操作文件系统,但可以放置的数据量有限。
是的,它确实接受私信。
来源: 后端是一个 ptrace 混乱,可以在 [这里] 获取(以前版本使用 [这个])。前端是一个 100 行的 Lua 脚本,在 15 分钟内拼凑而成。
作者: mniip