Size: a a a

2021 July 21

VM

Vadim Misbakh-Solovi... in pro.lua
вот только там речь немного про разный байткод
источник

VM

Vadim Misbakh-Solovi... in pro.lua
одно дело байткод luavm
источник

VM

Vadim Misbakh-Solovi... in pro.lua
который генерируют luac и luajit -c
источник

VM

Vadim Misbakh-Solovi... in pro.lua
а другое дело - то, во что Luajit транслирует код при включенном JIT
источник

VM

Vadim Misbakh-Solovi... in pro.lua
по сути, он компилирует программу по аналогии с llvm/clang
источник

AD

Aleksandr Deriabin in pro.lua
Ага. Вот мы и вернулись к первоначальному вопросу: а в чем тогда принципиальная разница между Lua и LuaJIT, если они оба транслируют синтаксис Lua в нечто исполняемое каждый свой запуск на выполнение. Неужели в том, что Lua сразу выполняет,  но со средней скоростью, а LuaJIT долго стартует (так как компилирует в машинный код) а потом быстро работает?
источник

CP

Companion Philipp in pro.lua
https://www.youtube.com/watch?v=SeGK_NxmWOk

@igelhaus прости, не мог не вспомнить твой доклад :-)
источник

AD

Aleksandr Deriabin in pro.lua
Благодарю, ознакомлюсь.
источник

CP

Companion Philipp in pro.lua
источник

CP

Companion Philipp in pro.lua
Вот тут, емнип, еще проще
источник

AD

Aleksandr Deriabin in pro.lua
Угу гляну оба.
Благодарю всех. Здоровья вам.
источник

AD

Aleksandr Deriabin in pro.lua
На все свои вопросы ответы получил. Благодарю.
источник
2021 July 22

S

Snusmumriken in pro.lua
Есть два типа ошибок (вне зависимости от интерпретатора) — логические и синтаксические.

Перед тем как любой интерпретатор запускает кусочек кода, он проверяет его синтаксическую часть, например function foo() ... eMd ругнётся, мол, ожидается end.

В процессе исполнения кода могут вылезти логические ошибки, например

function foo(a, b)
 return a + b
end

foo("привет", 20)

Синтаксически тут всё верно, но ошибка неправильных типов может произойти только в рантайме, в конкретном месте.

Опять таки, это не зависит от интерпретатора.
источник

S

Snusmumriken in pro.lua
Единственное (для тебя) различие lua и luajit это то, что luajit гораздо быстрее, особенно в простых циклах без особого ветвления. Это всё.
источник

S

Snusmumriken in pro.lua
Если что, luajit НЕ стартует дольше обычного интерпретатора. Просто когда выполняются инструкции, он подсчитывает итерации, и если вдруг количество итераций некоторой последовательности команд превысила N раз — он берёт и компилирует их, прямо в промежутке между исполнением. Он не компилирует всё подряд, только частовыполняемые последовательности, и делает это прямо в середине процесса исполнения (и делает это очень быстро).
источник

AD

Aleksandr Deriabin in pro.lua
источник

RA

R A in pro.lua
А int64 в luajit ещё не сделали?
источник

I

Igor725 in pro.lua
"Еще"? LuaJIT как таковой с 2017 года не обновлялся. Последняя вышедшая версия 2.1-beta3 (в которой, к слову, я спокойно работаю с 64битными указателями, библиотеками и прочей нечистью). Есть всякие сторонние форки, которые сами развивают jit на основе кода LuaJIT, например LuaVela, но я их особо не трогал.
источник

I

Igor725 in pro.lua
Ну а Майк Полл оставил тонны ассемблерного кода, в котором чёрт ногу сломит и ушел в закат. Больше его никто не видел. Вот люди и начали свои форки пилить.
источник

U

UsernameAK in pro.lua
а есть JIT которые работают не так?
источник