在 Lua 5.2 环境中执行 Lua 5.1 代码。

我处于一个纯Lua 5.2环境中,需要执行Lua 5.1代码。这段代码是用户任意的代码,因此我无法提前将其移植到Lua 5.2。据我所知,这将涉及重新实现getfenv/setfenv,更改_VERSION字符串,隐藏全局_ENV并重新实现已删除的弃用功能。我错过了什么,或者有更好的方法来处理这个问题吗?(我只能使用纯Lua编写代码,并且需要能够执行5.1代码,因为这是为了向后兼容。)

点赞
用户107090
用户107090

这可能在完整的普遍情况下很难做到,但有些部分解决方案可能适合您。

对于兼容性层,请参见lua-compat-env

有关进一步讨论和其他解决方案,请参见Lua版本兼容性

2015-06-01 11:34:57