Различия между стандартным байт-кодом Lua и байт-кодом LuaJIT - PullRequest
5 голосов
/ 24 декабря 2011

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

Но чем отличаются байт-код LuaJIT от стандартного байт-кода Lua?

Ответы [ 2 ]

10 голосов
/ 24 декабря 2011

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

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

1 голос
/ 24 декабря 2011

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

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

...