Я нахожусь в чистой среде Lua 5.2, и мне нужно выполнить код Lua 5.1. Этот код является произвольным кодом пользователя, поэтому я не могу выполнить перенос на Lua 5.2 заранее. Насколько я понимаю, это повлечет за собой повторную реализацию getfenv / setfenv, изменение строки _VERSION, сокрытие глобального _ENV и повторную реализацию удаленных устаревших функций. Я что-то пропустил или есть лучший способ сделать это? (Я могу писать код только на чистом Lua, и мне нужно иметь возможность выполнять код 5.1, поскольку это предназначено для обеспечения обратной совместимости.)
Выполнение кода Lua 5.1 в среде Lua 5.2
Ответы (1)
Это может быть сложно сделать в целом, но есть частичные решения, которые могут сработать для вас.
Для уровня совместимости см. lua-compat-env.
Для дальнейшего обсуждения и других решений см. Совместимость версий Lua.
person
lhf
schedule
01.06.2015
load
с байтовым кодом Lua 5.1. Если вы можете обойтись меньшими затратами, см. lua-users.org/wiki/LuaVersionCompatibility; в частности, github.com/davidm/lua-compat-env. - person lhf   schedule 19.08.2014