2011-12-24 1 views
5

Я пытался декомпилировать файл байт-кода LuaJIT. Мне удалось разобрать его (но не могу найти способ его собрать). Поэтому я рассматриваю возможность написания некоторого программного обеспечения для преобразования из байт-кода LuaJIT в стандартный байт-код Lua, который затем будет работать через LuaDec.Различия между стандартным байт-кодом Lua и байт-кодом LuaJIT

Но каковы различия между байт-кодом LuaJIT и стандартным байт-кодом Lua?

ответ

1

Для точного ответа вам нужно только сравнить генераторы BC от обоих проектов, однако, зачем беспокоиться о конвертере, LuaJIT - с открытым исходным кодом, а IIRC - LuaDec, должно быть довольно просто преобразовать его в LuaJIT байткод.

Тем не менее, вы должны ознакомиться с самим command-line options of LuaJIT, использовать для сброса списка байт-кода или сбрасывать файлы байт-кода C/h/obj/o, оба из которых могут быть использованы для выполнения вы хотите.

+0

Я пробовал все флаги для сброса байт-кода, ни один из них не возвращает формат, который я могу собрать или передать в LuaDec. – R4000

10

Различия довольно существенные. LuaJIT использует намного больше опкоды, чем стандартный Lua, потому что она специализируется на некоторых операциях, как и возвращения из функции по сравнению с вернувшимися с 1 возвращаемого значения и т.д.

Лучшее, что вы можете сделать, это сравнить определения Lua opcodes и LuaJIT opcodes и посмотрите, можете ли вы перевести между ними, но это не будет тривиально ...

+0

Я боялся этого :(Спасибо за помощь, я загляну. – R4000