Зачем конвертировать LUA в LUAC?
Распространение скриптов в виде байт-кода устраняет накладные расходы на парсинг при каждой загрузке и предотвращает простое чтение исходного кода. Формат .luac - это родное представление скомпилированного байт-кода Lua, создаваемое непосредственно стандартным инструментарием Lua, который входит в каждую установку Lua.
Способы конвертации LUA в LUAC
luac FREE
Запустите luac -o script.luac script.lua в терминале. Добавьте -s, чтобы удалить отладочную информацию для уменьшения размера файла, или перечислите несколько файлов .lua, чтобы скомпилировать их в один блок байт-кода.
LuaJIT FREE
Запустите luajit -b script.lua script.luac, чтобы скомпилировать в собственный формат байт-кода LuaJIT. Обратите внимание, что байт-код LuaJIT несовместим со стандартной виртуальной машиной Lua.
Об этих форматах
Файл LUA - это исходный код, написанный на Lua, легковесном языке сценариев, созданном в 1993 году. Любой редактор кода (VS Code, Notepad++) открывает его для чтения или редактирования.…
Открыть детали .LUA →Файл .LUAC связан с Lua Compiled Source Code, это файл категории developer.
Открыть детали .LUAC →Качество и на что обратить внимание
- Файл
.luacпривязан к конкретной версии Lua, в которой он был скомпилирован; байт-код отluac 5.4будет отклонен Lua 5.3 или более ранними версиями. - Байт-код не зашифрован - такие инструменты, как
unluac, могут частично декомпилировать файлы.luac. Не полагайтесь на него для защиты конфиденциальной логики. - Формат байт-кода зависит от платформы;
.luac, скомпилированный на 64-битной машине, может не заработать на 32-битном устройстве. Компилируйте на той же платформе, где он будет запускаться.
Часто задаваемые вопросы
Установлен ли luac, если у меня есть Lua?
luac поставляется вместе с официальным дистрибутивом Lua и не требует отдельной загрузки.Будет ли файл .luac работать быстрее, чем оригинальный .lua?
Можно ли восстановить исходный код .lua из файла .luac?
-s в luac удаляет даже номера строк и имена функций, что усложняет восстановление.Использует ли LuaJIT тот же формат байт-кода, что и стандартный Lua?
luajit -b только в том случае, если целевая среда также использует LuaJIT.