另一个 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